FreeBSD

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

The FreeBSD Project

Семейство ОС

BSD UNIX

Основана на

BSD

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

8.4,
9.3,
10.0 (20 января 2014)[1],
10.1 (14 ноября 2014)[2],
9.1[3],
9.2[3],
9.3 (15 июля 2014)[4],
10.2 (13 августа 2015)[5]

Тип ядра

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

Лицензия

BSD

Состояние

Актуальное

Репозиторий исходного кода

svnweb.freebsd.org

Веб-сайт

freebsd.org

Commons-logo.svg FreeBSD на Викискладе

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

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

Помимо своей стабильности, FreeBSD популярна и благодаря своей лицензии, которая существенно отличается от широко известной лицензии GNU GPL. Лицензия BSD позволяет использовать код не только в свободном ПО, но и в проприетарном. В отличие от GNU LGPL, которая тоже позволяет использовать свободный код в закрытой программе[7], лицензия 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 содержит более подробную историческую информацию о происхождении системы[8].

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

На 13 августа 2015 года последний релиз FreeBSD имеет номер 10.2

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, оптимизированный для параллельных вычислений[9],
  • большие изменения и оптимизации подсистем работы с сетями, аудиоустройствами и SMP-системами[10],

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

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 для этой ветки почти завершена[12].

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

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

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

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

  • экспериментальная поддержка 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[14] 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 года.[15]

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

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

FreeBSD 10.1

FreeBSD 10.1 выпущена 14 ноября 2014 года[20].

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

  • Начальная поддержка загрузки FreeBSD/amd64 на системах с UEFI;
  • Расширены возможности инсталлятора (bsdinstall), в котором появилась поддержка создания зашифрованных (geli) и отзеркалированных (gmirror) разделов подкачки при установке на ZFS;
  • В загрузчике реализовано меню для выбора используемого для загрузки ядра;
  • Существенно улучшена производительность кода RPC;
  • Обновлена реализация ZFS, в которой появилась возможность установки закладок на снапшоты;
  • Из FreeBSD-CURRENT перенесена реализация файловой системы autofs и связанного с ней демона automountd для организации автоматического монтирования ФС;
  • В GEOM_MULTIPATH обеспечена поддержка автоматического изменения размера разделов на лету;
  • Многочисленные обновления драйверов с поддержкой сетевых устройств и систем хранения.

FreeBSD 10.2

FreeBSD 10.2 выпущена 13 августа 2015 года[источник?].

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

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

Участники проекта разрабатывают ветку 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 и бинарные пакеты с программным обеспечением. Любая из этих систем может быть использована для установки самых последних версий приложений с локальных носителей или прямо из сети.

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

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

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

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

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

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

  • BSDeviant — LiveCD.
  • 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 и свои разработки.
  • ULBSD — русифицированный десктоп-ориентированный дистрибутив для домашних и корпоративных пользователей.
  • ИКС Server.

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

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

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

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

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

  1. ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/10.0-RELEASE/
  2. http://lists.freebsd.org/pipermail/freebsd-announce/2014-November/001603.html
  3. 1 2 http://lists.freebsd.org/pipermail/freebsd-announce/2014-December/001615.html
  4. https://www.freebsd.org/releases/9.3R/announce.html
  5. https://www.freebsd.org/releases/10.2R/announce.html
  6. см. Пространство пользователя
  7. Why you shouldn’t use the Lesser GPL for your next library — GNU Project — Free Software Foundation (FSF)
  8. О Проекте FreeBSD
  9. Jason Evans. A Scalable Concurrent malloc(3) Implementation for FreeBSD (16 апреля 2006). Проверено 13 февраля 2008. Архивировано из первоисточника 22 августа 2011.
  10. Federico Biancuzzi. What’s New in FreeBSD 7.0 26 февраля 2008
  11. Introducing FreeBSD 7.0
  12. The arrow of time — ZFS v13 in 7-STABLE
  13. FreeBSD 8.0-RELEASE Announcement
  14. David Chisnall, LLVM in the FreeBSD Toolchain, 2013  (англ.)
  15. FreeBSD 10.0-RELEASE Announcement
  16. FreeBSD 10.0-RELEASE Release Notes
  17. Revision 240868
  18. quick start guide
  19. WhatsNew/FreeBSD10 — FreeBSD Wiki
  20. FreeBSD 10.1 Release Process.
  21. МакКузик. FreeBSD. Архитектура и реализация.
  22. Самая свежая информация о портах
  23. Брайн Таймэн. FreeBSD 6. Полное руководство. С. 30
  24. Panasonic G20 review
  25. view