FreeBSD

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
FreeBSD
Логотип FreeBSD
Снимок терминала FreeBSD
Приветствие в терминале FreeBSD
Разработчик

The FreeBSD Project

Семейство ОС

BSD UNIX

Последняя версия

9.3, 10.0 и 8.4

Тип ядра

Модульное ядро

Лицензия

BSD

Состояние

Актуальное

Веб-сайт

freebsd.org

FreeBSD — свободная Unix-подобная операционная система, потомок AT&T Unix по линии BSD, созданной в университете Беркли. FreeBSD работает на PC-совместимых системах семейства x86, включая Microsoft Xbox, а также на DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC, NEC PC-98, ARM. Готовится поддержка архитектуры MIPS.

FreeBSD разрабатывается как целостная операционная система. Исходный код ядра, драйверов устройств и базовых пользовательских программ (т. н. userland)[1], таких как командные оболочки и т. п., содержится в одном дереве системы управления версиями (до 31 мая 2008 — CVS, сейчас — SVN). Это отличает FreeBSD от GNU/Linux — другой свободной UNIX-подобной операционной системы, в которой ядро разрабатывается одной группой разработчиков, набор пользовательских программ — другими (например, проект GNU). А многочисленные группы собирают это всё в единое целое и выпускают в виде различных дистрибутивов Linux.

FreeBSD хорошо зарекомендовала себя как система для построения интранет и интернет-сетей и серверов. Она предоставляет надёжные сетевые службы и эффективное управление памятью.

Помимо своей стабильности, FreeBSD популярна и благодаря своей лицензии, которая существенно отличается от широко известной лицензии GNU GPL. Лицензия BSD позволяет использовать код не только в свободном ПО, но и в проприетарном. В отличие от GNU LGPL, которая тоже позволяет использовать свободный код в закрытой программе[2], лицензия BSD более простая и короткая.

История[править | править вики-текст]

Разработка FreeBSD началась в 1993 году с быстрорастущего набора патчей пользователей системы 386BSD. Этот набор позже вырос и отделился от 386BSD в отдельную операционную систему, включив в себя код от Free Software Foundation. Первая официальная версия FreeBSD 1.0 вышла в декабре 1993 года. Walnut Creek CDROM согласилась распространять FreeBSD на компакт-диске и также предоставила для работы проекту отдельный компьютер с интернет-соединением. Затем, в мае 1994 года, последовал успешный выпуск FreeBSD 1.1.

Однако, из соображений законности использования исходных кодов BSD Net/2 в 386BSD, команда разработчиков FreeBSD переработала большую часть системы ко времени выпуска FreeBSD 2.0 в январе 1995 года, используя 4.4BSD-Lite. Руководство к FreeBSD содержит более подробную историческую информацию о происхождении системы[3].

Версии системы[править | править вики-текст]

На 20 января 2014 года последний релиз FreeBSD имеет номер 10.0[4].

FreeBSD 3[править | править вики-текст]

3.0-RELEASE анонсирована 13 октября 1998 года. Основное отличие от 2.2 — переход на ELF исполняемые файлы. Последний 3.5-RELEASE вышел 23 июня 2000 года.

FreeBSD 4[править | править вики-текст]

4.0-RELEASE появилась в марте 2000 года и последняя версия 4.11 была выпущена в январе 2005 года. FreeBSD 4 была очень популярной у интернет-провайдеров и хостеров времён первого «пузыря доткомов» и считалась одной из самых стабильных и высокопроизводительных систем класса Unix.

Одним из главных недостатков FreeBSD 4 считается плохая поддержка многопроцессорных систем, особенно в режиме многопоточности.

FreeBSD 4 поставила своеобразный рекорд по продолжительности разработки одной ветки операционной системы — за пять лет было устранено большое количество ошибок и получена на редкость стабильная система.

В середине разработки FreeBSD 4 от неё отпочковался проект DragonFlyBSD, основатели которого поставили своей целью серьёзную оптимизацию ядра для высоконагруженных систем, в частности лучшую поддержку многопроцессорности (уменьшение времени, необходимого для переключения потоков и пр.).

FreeBSD 5[править | править вики-текст]

Через 3 года разработки, в январе 2003 года, была выпущена долгожданная версия 5.0-RELEASE. Эта версия предоставляла расширенную поддержку многопроцессорности и многопоточности, а также поддержку платформ UltraSPARC и IA-64.

Наибольшие архитектурные изменения в FreeBSD 5 — это изменение механизма блокировки на нижнем уровне ядра, чтобы улучшить поддержку многопроцессорных SMP-систем. Это освободило большую часть ядра от так называемой «гигантской блокировки» (Giant lock). Теперь в ядре появилась возможность выполнять более одной задачи одновременно. Другим важным изменением была реализация «родной» поддержки многопоточности типа M:N под названием Kernel Scheduled Entities (KSE). Начиная с FreeBSD 5.3, эта реализация потоков была установлена по умолчанию, пока не была заменена на реализацию модели 1:1 во FreeBSD 7.

Во FreeBSD 5 была серьёзно изменена система блочного ввода-вывода посредством введения модульной структурной системы преобразования запросов ввода-вывода GEOM (внесённой Poul-Henning Kamp). GEOM даёт возможность создавать различную функциональность, такую как зеркалирование (mirroring) или шифрование (модули GBDE и GELI).

Версии 5.4 и 5.5 были признаны стабильными и высокопроизводительными, но более ранние версии не годились для использования в рабочих условиях.

FreeBSD 6[править | править вики-текст]

FreeBSD 6.0 была выпущена 4 ноября 2005 года. 11 ноября 2008 года была выпущена версия 6.4. Эти версии являются продолжением оптимизации поддержки SMP и многопоточности вкупе с расширенной поддержкой стандарта 802.11, записью событий безопасности проекта TrustedBSD, серьёзными улучшениями производительности сетевой подсистемы. Основное достижение этого релиза — исключение «гигантской блокировки» (Giant lock) из виртуальной файловой подсистемы (VFS), реализация дополнительной, более производительной поддержки многопоточности (libthr) с моделью 1:1, и добавление OpenBSM — первичного модуля безопасности, который был создан проектом TrustedBSD.

FreeBSD 7[править | править вики-текст]

FreeBSD 7.0 выпущена 27 февраля 2008 года. 5 января 2009 года вышла версия 7.1. Новое в этой ветке включает в себя:

  • оптимизированный сетевой протокол транспортного уровня SCTP,
  • экспериментальная адаптированная версия файловой системы ZFS (разработанной компанией Sun),
  • компилятор GCC4.2,
  • базовая поддержка платформы ARM,
  • новый менеджер памяти jemalloc, оптимизированный для параллельных вычислений[5],
  • большие изменения и оптимизации подсистем работы с сетями, аудиоустройствами и SMP-системами[6],

Новая система показала значительные улучшения в скорости по сравнению с предыдущими версиями и системой Linux[7].

4 мая 2009 года вышла версия 7.2. Нововведения в этой версии:

  • поддержка семейства процессоров UltraSPARC III (Cheetah) и SPARC64;
  • возможность назначения нескольких IPv4- и IPv6-адресов каждой клетке — виртуальной машине Jail;
  • реализация техники Superpages, прозрачного объединения страниц памяти для приложений;
  • увеличенное до 6 Гб адресное пространство ядра для 64-разрядных процессоров;
  • включена поддержка множественных таблиц маршрутизации, в том числе для клеток;
  • улучшена совместимость в работе 32-разрядных клеток в 64-разрядном окружении;
  • из NetBSD портирован демон btpand с реализацией поддержки профилей Bluetooth Network Access Point (NAP), Group Ad-hoc Network (GN) и Personal Area Network User (PANU);
  • добавлен новый драйвер sdhci с поддержкой PCI-SD хост-контроллеров (кард-ридеров);
  • обновлен модуль ядра DRM (Direct Rendering Manager) в котором улучшена поддержка графических процессоров (GPU) AMD/ATI, XGI, Intel;
  • обновлены драйверы сетевых и дисковых устройств.

На сегодняшний день уже разработаны видеодрайверы NVIDIA для 64-разрядной архитектуры AMD64. Окончательная адаптация файловой системы ZFS v.13 для этой ветки почти завершена[8].

24 января 2011 года вышла версия 7.4.

Поддержка ветки FreeBSD 7 истекла 28 февраля 2013 года

FreeBSD 8[править | править вики-текст]

О выходе релиза FreeBSD 8.0 было объявлено 25 ноября 2009 года[9]. Среди нововведений в этой версии можно отметить:

  • экспериментальная поддержка MIPS, основанная на разработках Juniper Networks.
  • практически неограниченная масштабируемость SMP значительно способствует быстродействию на 16-ядерных системах.
  • масштабируемость файловой системы как результат использования блокировки виртуальной файловой системы (VFS).
  • работа расширяемой системы безопасности ядра (MAC Framework) из коробки.
  • переписанную подсистему USB с улучшенным быстродействием и поддержкой новых устройств. Добавлена поддержка USB-target.
  • ZFS более не находится в экспериментальном статусе.

Кроме того, следует отметить:

  • Реализован новый контейнер виртуализации, названный «vimage». vimage — это jail с виртуализированным сетевым стеком и может быть создан с помощью команды jail(8)
  • Подсистема ipsec(4) теперь поддерживает NAT-Traversal (RFC 3948).
  • Поддерживаемые версии GNOME desktop environment (x11/gnome2) и KDE desktop environment (x11/kde4) были обновлены до 2.26.3 и 4.3.1 соответственно.

Стабильная ветка разработки 8-STABLE постоянно развивается, в неё постепенно вливается проверенный и отлаженный код из экспериментальной ветки разработки. Продолжается улучшение надёжности и быстродействия файловых систем UFS2 и ZFS, перерабатывается код протокола сетевого доступа NFS с целью реализации всех возможностей NFSv4.


FreeBSD 9[править | править вики-текст]

FreeBSD 9.0 выпущена 12 января 2012 года. Основные изменения:

  • Переход на новый модульный инсталлятор BSDInstall
  • Интеграция в систему LLVM 3.0/Clang 3.0 для постепенной замены устаревшей версии GCC 4.2.2 в базовой системе
  • В DTrace реализованы модули для трассировки 32-разрядных системных вызовов linux32 и freebsd32 на 64-разрядной платформе FreeBSD [amd64]
  • Новая реализация программного RAID graid для замены устаревшей подсистемы ataraid
  • Дисковая подсистема ATA/SATA по умолчанию заменена на реализацию на базе CAM (Common Access Method)
  • Интеграция системы репликации устройств хранения данных HAST
  • Для UFS2 техника мягких обновлений (Soft Updates) дополнена технологией журналирования для быстрого восстановления файловой системы после сбоев
  • Файловая система UFS2 стала поддерживать операцию TRIM для SSD
  • Обновление ZFS до версии 28
  • Начальная поддержка архитектуры NUMA в подсистемах управления памятью
  • Интеграция в базовую систему Infiniband-стека OFED (OpenFabrics Enterprise Distribution)
  • Добавлены новые 10Gb Ethernet-драйверы
  • Универсальный USB-драйвер с поддержкой протоколов USB 3.0/2.0/1.1/1.0
  • Обеспечена поддержка пяти новых алгоритмов для контроля перегрузки в TCP-стеке
  • Обеспечена возможность использования только IPv6 в TCP-стеке базовой системы и в портированных приложениях
  • Поддержка сетевого протокола NFSv4
  • Новый механизм изоляции выполнения приложений Capsicum
  • Реализация интерфейса управления ресурсами RCTL (Hierarchical Resource Limits) в том числе и для Jail
  • Графические среды GNOME версии 2.32.1, KDE версии 4.7.3
  • Возможен запуск и работа FreeBSD на игровых приставках Sony PlayStation 3

FreeBSD 9.1 выпущена 31 декабря 2012 года. Основные отличия от FreeBSD 9.0:

  • новые драйвера Intel GPU с поддержкой GEM/KMS
  • netmap(4) быстрое пользовательское пространство пакетов системы ввода-вывода
  • в ZFS улучшения от проекта illumos
  • CAM Target Layer (CTL), диск и процессор эмулируются подсистемой
  • выборочный новый C++11 стек включающий LLVM libc++ и libcxxrt
  • Jail devfs, nullfs, zfs поддержка монтирования и конфигурации файлов
  • POSIX2008 расширение локальной поддержки, включающие совместимость с расширениями Darwin
  • oce(4) драйвера для Emulex OneConnect 10Gbit сетевых карт
  • sfxge(4) драйвера для 10Gb сетевых адаптеров построенных на контроллере Solarflare SFC9000
  • улучшение Xen Paravirtualized Backend Ethernet Driver (netback)
  • hpt27xx(4) драйвера для HighPoint RocketRAID 27xx-based SAS 6Gb/s HBA
  • улучшение многоцелевого класса GEOM
  • класс raid в GEOM включен по умолчания для поддержки программного RAID в замен устаревшего ataraid(8)
  • поддержка ядром AVX FPU расширений
  • многочисленные улучшения в аппаратной поддержке разгрузки IPv6

FreeBSD 9.2 выпущена 27 сентября 2013 года. Основные нововведения:

  • файловая система ZFS теперь поддерживает TRIM когда используется на твердотельных дисках.
  • драйвер virtio(4) был добавлен в GENERIC kernel конфигурации для архитектур amd64 и i386.
  • файловая система ZFS теперь поддерживает lz4 сжатие.
  • OpenSSL был обновлен до 0.9.8y.
  • DTrace hooks терерь доступен в GENERIC kernel.
  • DTrace был обновлен до 1.9.0.
  • Sendmail был обновлен до 8.14.7.
  • OpenSSH был обновлен до 6.2p2.
  • Import unmapped I/O support from head/.

FreeBSD 10[править | править вики-текст]

FreeBSD 10.0 выпущена 20 января 2014 года. [10]

Основные изменения:

  • Заменён компилятор по умолчанию с GCC на Clang 3.3; [11]
  • Драйвера Microsoft Hyper-V добавлены в состав GENERIC-ядра;
  • Возможность установки программой BSDInstall на раздел ZFS;
  • Поддержка TRIM для SSD в ZFS; [12]
  • Unbound в составе базовой системы в качестве локального кэширующего DNS резолвера;
  • BIND удалён из состава базовой системы;
  • Драйвера для полной поддержки видеокарт Radeon, вплоть до серии HD 6000 (частичная поддержка серии HD 7000);
  • Реализована начальная поддержка демона auditdistd, что позволяет организовать ведение полного лога событий, который, в частности, может быть полезен для анализа причин и последствий инцидентов, связанных с нарушением безопасности. В настоящее время ядро передаёт события аудита напрямую в файл или через устройство /dev/auditpip;
  • GEOM_LABEL начал поддерживать в имени спецзнаки % и ";
  • Поддержка Raspberry Pi; [13]
  • Полноценная поддержка USB Audio 2.0. [14]

Модель разработки FreeBSD[править | править вики-текст]

Существует около 4000 разработчиков, которые работают над системой на добровольной основе. Все они могут читать дерево репозитория, но не могут вносить изменения. Вместо этого разработчик обращается к коммитеру, который имеет право вносить изменение в код. Существует около 400 коммитеров. Разработчик может вырасти по социальной лестнице проекта и стать коммитером. Кандидатуру нового коммитера предлагает к рассмотрению ментор будущего коммитера. В зависимости от основной области деятельности, новый коммитер утверждается основной командой, portmgr@ или docmgr@. Основная команда является административным ядром проекта и состоит из 9 человек, которые выбираются на 2 года коммитерами из своего состава. Основная команда решает конфликты между коммитерами[15].

Участники проекта разрабатывают ветку CURRENT («текущая» версия) и несколько STABLE («стабильная», стабильность означает гарантию неизменности интерфейсов, как то API, ABI и так далее).

Новый код помещают в ветку CURRENT, где он получает более широкое тестирование. Новые функции, добавленные в CURRENT, могут остаться в системе или от них могут отказаться, если реализация окажется неудачной. Иногда эта версия может оказаться в непригодном для использования состоянии. С началом использования perforce как вспомогательного репозитория, и с выделением projects/ области в svn, проект стремится гарантировать постоянную работоспособность CURRENT.

STABLE-версия содержит только те нововведения, которые прошли проверку в CURRENT. Тем не менее, эта версия тоже предназначена, в основном, для разработчиков. Не рекомендуется обновлять ответственные рабочие серверы до STABLE, предварительно её не протестировав. На основе STABLE регулярно создаются тщательно протестированные разработчиками, группой release-инженеров и более широким кругом пользователей RELEASE-версии.

После выпуска релизов создаются дополнительные ветви разработки для поддержки релизов, но в них вносятся лишь самые необходимые изменения, исправляющие серьёзные ошибки или проблемы с безопасностью системы. До четвёртой версии FreeBSD у стабильной и текущей веток был один и тот же старший номер версии. Затем текущей ветви был присвоен номер 5, а у стабильной остался номер 4.

В настоящее время поддерживаются стабильные ветви разработки 8-STABLE, 9-STABLE и 10-STABLE. На данный момент, группа разработчиков активно работает над версией 11.0-CURRENT.

Варианты установки[править | править вики-текст]

Операционная система FreeBSD может быть установлена с различных носителей, таких как:

Порты и пакеты[править | править вики-текст]

В настоящее время FreeBSD предоставляет пользователю две взаимодополняющие технологии установки программного обеспечения сторонних разработчиков: коллекция портов FreeBSD и бинарные пакеты с программным обеспечением. Любая из этих систем может быть использована для установки самых последних версий приложений с локальных носителей или прямо из сети.

Коллекция портов, как подсистема сборки и сопровождения устанавливаемых программ, периодически обновляется. Сейчас она насчитывает порядка 22 тысячи портированных на FreeBSD программ[16], среди которых: графические среды GNOME, KDE4, Xfce, Enlightenment, офисные приложения и пакеты Apache OpenOffice, LibreOffice, система поддержки печати CUPS, программы доступа в интернет Mozilla Firefox и Thunderbird, Google Chromium, системы управления базами данных PostgreSQL, MySQL, комплекты Java-разработки OpenJDK, среды разработки Eclipse и NetBeans, мультимедийные плееры MPlayer и VLC. Инфраструктура интерпретирующих языков представлена Perl, Python, Ruby, Lua и другими ЯП.

Талисманы-логотипы[править | править вики-текст]

Основным талисманом системы является красный демонёнок, известный также как Beastie. Кроме него, талисманом также считается Devilette, девушка в красном костюме демона.

Производные системы[править | править вики-текст]

BSD-лицензия позволяет сохранять коммерческую тайну при модификации FreeBSD для встраиваемых систем и производить другие производные проприетарные системы, что делает FreeBSD привлекательной для промышленности[17]. FreeBSD нашла себе применение в маршрутизаторах Juniper и ТВ-панелях[18].

Ниже приведены свободные производные операционные системы:

  • BSDeviantLiveCD.
  • BSD Router Project (BSDRP) — компактный программный роутер на базе FreeBSD.
  • Darwin — ядро Mac OS X, многие команды взяты от FreeBSD 4/5, разрабатывается компанией Apple, весьма дальний родственник FreeBSD, так как использует ядро Mach.
  • Debian GNU/kFreeBSD — производная версия, базирующаяся на наборе инструментов GNU, разрабатывается группой пользователей Debian.
  • DesktopBSD — дистрибутив для домашнего использования.
  • DragonFly BSD — ответвление от FreeBSD 4.8, созданное как логическое продолжение 4-й ветви. Она включает систему потоковой обработки сообщений, похожую на ту, которая используется в системах с микроядром.
  • FreeNAS — основанное на m0n0wall сетевое хранилище NAS.
  • FreeSBIE — LiveCD-дистрибутив FreeBSD, похожий на дистрибутив Linux под названием Knoppix.
  • Frenzy — другой проект по созданию LiveCD на основе FreeBSD, ориентированный в первую очередь на русскоязычных системных администраторов.
  • GhostBSD — LiveCD с настольной средой GNOME по умолчанию.
  • MidnightBSD
  • MiniBSD — компактный дистрибутив FreeBSD.
  • NanoBSD — ещё один компактный дистрибутив FreeBSD.
  • NAS4Free — свободная операционная система для сетевого хранилища.
  • m0n0wall — встраиваемый межсетевой экран, основанный на FreeBSD.
  • mfsBSD — миниатюрный загрузочный LiveCD на базе FreeBSD, загружаемой полностью в

оперативную память компьютера.

  • PC-BSD — дистрибутив с графическим инсталлятором и настольной средой KDE по умолчанию.
  • pfSense — ответвление от проекта m0n0wall, отличающееся большей функциональностью.
  • PicoBSD — версия FreeBSD на одной дискете.
  • RoFreeSBIE - Румынский дистрибутив основан на FreeBSD.
  • TrueBSD — белорусский LiveDVD-дистрибутив на основе FreeBSD.
  • zRouter — дистрибутив направленный на работу в роутерах Asus, Buffalo, D-Link, NorthQ, Soekris, TPLink, Ubiquiti [1]
  • РУС-BSD — русифицированный дистрибутив для пользователей стран СНГ, опирается на Frenzy и свои разработки.
  • ИКС Server.

См. также[править | править вики-текст]

Пасхальные яйца[править | править вики-текст]

  • Если запустить make c целью love, система выдаст на stdout сообщение Not war. (Работает только на версиях 7.0 и выше)[19].

См. также[править | править вики-текст]

Литература[править | править вики-текст]

Книги[править | править вики-текст]

Журналы[править | править вики-текст]

Ссылки[править | править вики-текст]

Примечания[править | править вики-текст]