FreeBSD
FreeBSD — свободная операционная система семейства UNIX, потомок AT&T Unix по линии BSD, созданной в университете Беркли[5].
FreeBSD | |
---|---|
Разработчик | The FreeBSD Project |
Основана на | BSD[1] и 386BSD[2] |
Последняя версия | 13.0[3] (13 апреля 2021) |
Менеджеры пакетов | Pkgcore |
Поддерживаемые платформы | x86, x86_64, SPARC, DEC Alpha, PowerPC, ARM, MIPS и RISC-V |
Тип ядра | Модульное ядро |
Лицензия | 2-пунктная лицензия BSD[4] |
Репозиторий исходного кода | cgit.freebsd.org |
Веб-сайт | freebsd.org (англ.) |
Медиафайлы на Викискладе |
FreeBSD разрабатывается как целостная операционная система. Исходный код ядра, драйвера устройств и базовых пользовательских программ, таких как командные оболочки и т. п., содержатся в одном дереве системы контроля версиями (до 31 мая 2008 — CVS, позже — SVN, а сейчас — Git[6]). Это отличает FreeBSD от GNU/Linux — другой свободной UNIX-подобной операционной системы, в которой ядро разрабатывается одной группой разработчиков, набор пользовательских программ — другими (например, проект GNU). А многочисленные группы собирают это всё в единое целое и выпускают в виде различных дистрибутивов Linux.
FreeBSD хорошо зарекомендовала себя как система для построения интранет- и интернет-сетей и серверов. Она предоставляет надёжные сетевые службы и эффективное управление памятью[7].
Помимо своей стабильности, FreeBSD популярна и благодаря своей лицензии, которая существенно отличается от широко известной лицензии GNU GPL. Лицензия BSD позволяет использовать код не только в свободном ПО, но и в проприетарном. В отличие от GNU LGPL, которая требует раскрытия исходных кодов, лицензия BSD является более простой и непритязательной, требуя лишь упоминания заимствования, авторства и отказ от навязывания ответственности (нельзя отсылать пользователей своего продукта к авторам заимствованного кода).
История
Разработка FreeBSD началась в 1993 году с быстрорастущего набора патчей пользователей системы 386BSD[8]. Этот набор позже вырос и отделился от 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 содержит более подробную историческую информацию о происхождении системы[9].
Версии системы
Версия | Дата выпуска | Окончание поддержки |
---|---|---|
1.0 | Ноябрь 1993 | |
1.1 | Май 1994 | |
2.0 | 22 ноября 1994 | |
2.1.5 | 16 июля 1996 | |
2.1.7 | 17 февраля 1997 | |
2.2 | Март 1997 | |
2.2.8 | 29 ноября 1998 | |
3.0 | 16 октября 1998 | |
3.1 | 15 февраля 1999 | |
3.2 | 17 мая 1999 | |
3.3 | 15 сентября 1999 | |
3.4 | 20 декабря 1999 | |
3.5 | 25 июня 2000 | |
3.5.1 | 27 июля 2000 | |
[10][11] | 4.014 марта 2000 | |
4.1 | 27 июля 2000 | |
4.1.1 | 7 ноября 2000 | |
4.2 | 21 ноября 2000 | |
4.3 | ||
4.4 | ||
4.5 | ||
4.6 | ||
4.7 | ||
4.8 | 3 апреля 2003 | 31 марта 2004 |
4.9 | ||
4.10 | 27 мая 2004 | Май 2006 |
4.11 | 25 января 2005 | 31 января 2007 |
5.0 | 14 января 2003 | 30 июня 2003 |
5.1 | 9 июня 2003 | Февраль 2004 |
5.3 | 6 ноября 2004 | 31 октября 2006 |
5.4 | 9 мая 2005 | 31 октября 2006 |
6.0 | 1 ноября 2005 | |
6.1 | 8 мая 2006 | |
6.2 | 15 января 2007 | 31 мая 2008 |
7.0 | 27 февраля 2008 | 30 апреля 2009 |
7.1 | 4 января 2009 | 28 февраля 2011 |
8.0 | 26 ноября 2009 | |
8.1 | 23 июля 2010 | 31 июля 2012 |
8.2 | 24 февраля 2011 | |
8.3 | 9 апреля 2012 | 30 апреля 2014 |
8.4 | 9 июня 2013 | 1 августа 2015 |
9.0 | 12 января 2012 | 31 марта 2013 |
9.1 | 30 декабря 2012 | 31 декабря 2014 |
9.2 | 30 сентября 2013 | 31 декабря 2014 |
9.3 | 16 июля 2014 | 31 декабря 2016 |
10.0 | 20 января 2014 | 28 февраля 2015 |
10.1 | 14 ноября 2014 | 31 декабря 2016[12] |
10.2 | 13 августа 2015 | 31 декабря 2016[12] |
10.3 | 4 апреля 2016 | 30 апреля 2018[12] |
10.4 | 3 октября 2017[13] | 31 октября 2018[14] |
11.0 | 10 октября 2016[15] | 31 октября 2017 |
11.1 | 26 июля 2017[16] | 30 Сентября 2018[17] |
[18][19] | 11.227 июня 2018[20] | 31 октября 2019[21] |
11.3 | 9 июля 2019[22] | 30 сентября 2020[21] |
11.4 | 16 июня 2020[23] | 30 сентября 2021[24] |
12.0 | 10 декабря 2018[25] | 29 февраля 2020[21] |
12.1 | 4 ноября 2019 | 31 января 2021[21] |
12.2 | 27 октября 2020[26] | |
13.0 | 13 апреля 2021[27] | |
Версия | Дата релиза | Окончание поддержки |
Старая поддерживаемая версия
Текущая версия
Будущая версия
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 были признаны стабильными и высокопроизводительными, но более ранние версии не годились для использования в рабочих условиях. Более новые версии 3BSD не поддерживают оригинальный процессор Intel 80386, они поддерживаются только во FreeBSD 5.X и более ранних версиях (FreeBSD 5.2-RELEASE и более поздние не поддерживают процессор 80386SX). Следует заметить, что ядро GENERIC поддерживает процессоры 80386 только во FreeBSD 4.X и более ранних версиях.
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, оптимизированный для параллельных вычислений[28],
- большие изменения и оптимизации подсистем работы с сетями, аудиоустройствами и SMP-системами[29],
Новая система показала значительные улучшения в скорости по сравнению с предыдущими версиями и системой Linux[30].
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 для этой ветки почти завершена[31].
24 января 2011 года вышла версия 7.4.
Поддержка ветки FreeBSD 7 истекла 28 февраля 2013 года
FreeBSD 8
О выходе релиза FreeBSD 8.0 было объявлено 25 ноября 2009 года[32]. Среди нововведений в этой версии можно отметить:
- экспериментальная поддержка 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[33] 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 года.[34]
Основные изменения:
- Заменён компилятор по умолчанию с GCC на Clang 3.3;[35]
- Драйверы Microsoft Hyper-V добавлены в состав GENERIC-ядра;
- Возможность установки программой BSDInstall на раздел ZFS;
- Поддержка TRIM для SSD в ZFS;[36]
- Unbound в составе базовой системы в качестве локального кэширующего DNS резолвера;
- BIND удалён из состава базовой системы;
- Драйверы для полной поддержки видеокарт Radeon, вплоть до серии HD 6000 (частичная поддержка серии HD 7000);
- Реализована начальная поддержка демона auditdistd, что позволяет организовать ведение полного лога событий, который, в частности, может быть полезен для анализа причин и последствий инцидентов, связанных с нарушением безопасности. В настоящее время ядро передаёт события аудита напрямую в файл или через устройство /dev/auditpip;
- GEOM_LABEL начал поддерживать в имени спецзнаки % и ";
- Поддержка Raspberry Pi;[37]
- Полноценная поддержка USB Audio 2.0.[38]
FreeBSD 10.1
FreeBSD 10.1 выпущена 14 ноября 2014 года[39].
Основные изменения:
- Начальная поддержка загрузки FreeBSD/amd64 на системах с UEFI;
- Расширены возможности инсталлятора (bsdinstall), в котором появилась поддержка создания зашифрованных (geli) и отзеркалированных (gmirror) разделов подкачки при установке на ZFS;
- В загрузчике реализовано меню для выбора используемого для загрузки ядра;
- Существенно улучшена производительность кода RPC;
- Обновлена реализация ZFS, в которой появилась возможность установки закладок на снапшоты;
- Из FreeBSD-CURRENT перенесена реализация файловой системы autofs и связанного с ней демона automountd для организации автоматического монтирования ФС;
- В GEOM_MULTIPATH обеспечена поддержка автоматического изменения размера разделов на лету;
- Многочисленные обновления драйверов с поддержкой сетевых устройств и систем хранения.
FreeBSD 10.2
FreeBSD 10.2 выпущена 13 августа 2015 года.[40]
FreeBSD 11
FreeBSD 11.0 выпущена 10 октября 2016 года.[41]
Основные изменения:
- Новая система автоматического монтирования ФС (automounter), унифицированная с реализациями из других Unix-систем (macOS, Solaris), использующая совместимый с Solaris формат сопоставления точек монтирования и поддерживающая интеграцию с LDAP. В auto_master добавлен новый тип сопоставления «-media», позволяющий автоматизировать подключение внешних накопителей CD и USB, а также тип «-noauto» для обработки записей noauto в fstab;
- Добавлена возможность загрузки с временным rootfs, вместо которого затем монтируется реальный корневой раздел. Процесс смены корневого раздела реализован в форме частичного завершения работы с удалением всех процессов, отмонтированием rootfs, монтированием нового rootfs, запуском процесса init и переходом к выполнению скриптов инициализации;
- Новая высокопроизводительная реализация системного вызова sendfile, предназначенного для организации прямой передачи данных между файловым дескриптором и сокетом, поддерживающая отправку файла в сокет в асинхронном режиме без ожидания завершения чтения файла.
- Новая версия подсистемы NetMap c поддержкой двунаправленных потоков, поддержкой kqueue, улучшенной пользовательской библиотекой, возможностью эмуляции netmap для любых адаптеров без родной поддержки netmap, интеграцией со стеком VALE (используется в системе виртуализации bhyve);
- Усовершенствован гипервизор bhyve, в котором добавлена поддержка новых типов гостевых систем. В настоящее время поддерживается создание хост-систем на базе платформы FreeBSD/AMD64 и запуск гостевых систем c FreeBSD 8+, Linux i386/x64, OpenBSD i386/amd64, NetBSD/amd64, Illumos и Windows Vista/7/8/10/2008r2/2012r2/2016 x64. Отдельно отмечается возможность запуска гостевых систем FreeBSD/i386 на 64-разрядных хост-системах, поддержка процессоров AMD c аппаратными расширениями SVM и AMD-V, поддержка команды DSM TRIM для виртуальных дисков AHCI, поддержка графического режима (эмуляция VGA, framebuffer, мыши, клавиатуры, XHCI USB с применением сервера VNC для доступа к экрану гостевой системы);
- В Xen добавлена поддержка запуска гостевых систем FreeBSD/amd64 в режиме PVH, который комбинирует элементы режимов паравиртуализации (PV) и полной виртуализации (HVM). Проведена оптимизация производительности драйвера netfront и добавлена поддержка unmapped IO в драйверы blkfront, virtio_blk и virtio_scsi;
- В механизм управления ресурсами RCTL добавлена возможность ограничения пропускной способности операций с файловой системой. Поддерживается ограничение полосы пропускания чтения/записи (байт в секунду) и интенсивности операций ввода/вывода (число операций чтения/записи в секунду). Также представлен новый механизм придерживания запуска процессов в условиях превышения лимита;
- Добавлена поддержка стандарта 802.11n для сетей Wi-Fi, позволяющего добиться скорости передачи данных в беспроводной сети до 600 Мбит/с в конфигурации адаптера с четырьмя антеннами (для одной антенны до 150 Мбит/с).
- Из NetBSD бэкпортирована библиотека libblacklist и связанное с ней приложение Blacklistd, которые можно использовать для реализации динамического межсетевого экрана для защиты от попыток взлома локальных сервисов, таких как ssh, named и ftpd, или для блокирования IP-адресов, участвующих в DDoS-атаках;
- Добавлена поддержка архитектуры AArch64 (arm64).
FreeBSD 12
FreeBSD 12 выпущена 11 декабря 2018 года.[42]
Основные изменения:
- Сильно изменён список поддерживаемых сетевых адаптеров, добавлены новые, выведены из поддержки драйверы для старых;
- Улучшена поддержка процессоров Ryzen и Epyc;
- Большое количество видеодрайверов теперь доступно в портах. Базовые драйверы предустановлены по умолчанию;
- Улучшена поддержка виртуализации;
- Расширены возможности пакетного фильтра pf.
FreeBSD 13
FreeBSD 13 выпущена 13 апреля 2021 года.
Основные изменения:
- Осуществлён переход на унифицированную c Linux реализацию файловой системы ZFS от проекта OpenZFS.
- Порт для архитектуры ARM64 (AArch64) переведён на первый уровень поддержки (Tier 1), который подпадает под сопровождение командами, отвечающими за устранение уязвимостей, подготовку релизов и поддержание портов.
- Архитектура i386 переведена на второй уровень поддержки платформ (Tier 2), при котором будет продолжено формирование установочных сборок, бинарных обновлений и готовых пакетов, но не гарантирует решение специфичных проблем.
- Компоненты clang, lld, lldb, compiler-rt, llvm, libunwind и libc++ обновлены до версии 11.
- Разработка переведена из централизованной системы управления исходными текстами Subversion в децентрализованную систему Git.
- Проведена чистка базовой системы от приложений, распространяемых под лицензией GPL. Из дерева исходных текстов удалены binutils 2.17 и gcc 4.2.1, все поддерживаемые архитектуры переведены на инструментарий LLVM/clang.
- Переписан стек маршрутизации, в котором появилась поддержка объектов nexthop, хранящих данные о состоянии, используемом для передачи пакета в желаемую точку назначения. Добавлена возможность подключения собственных алгоритмов поиска маршрутов.
- Переписана и сделана более масштабируемой поддержка Multipath-маршрутизации, в которой время поиска не зависит от размера списка (O(1)). Новая реализация Multipath теперь связана с параметром ядра ROUTE_MPATH, который заменил собой RADIX_MPATH и включён по умолчанию.
- Переделан реализованный на уровне ядра криптографический фреймворк, в котором появилась поддержка современных криптографических алгоритмов и упрощён интерфейс для использования шифрования в драйверах и других компонентах ядра.
- В ядро GENERIC включена поддержка драйверов aesni и armv8crypto для ускорения дискового шифрования на базе geli при помощи инструкций AES-NI для архитектур amd64/i386 и AES-XTS для ARM64.
- Добавлен драйвер qat для криптоакселераторов Intel QuickAssist (QAT) и драйвер ossl с реализацией ускоренных программных процедур шифрования из OpenSSL, оптимизированных при помощи кода на ассемблере.
- Добавлена реализация TLS (kTLS), работающая на уровне ядра FreeBSD, которая позволяет добиться существенного увеличения производительности шифрования для TCP-сокетов. Поддерживается верcий TLS с 1.0 по 1.3.
- Добавлен новый тип сетевых буферов mbuf (network data buffer), который может представлять в одном буфере несколько не отражённых физических страниц памяти, что позволяет увеличить производительность вызова sendfile(2) за счёт сокращения размера списков mbuf в буферах сокета.
- В TCP-стек интегрирована поддержка алгоритма пропорционального снижения интенсивности отправки пакетов (Proportional Rate Reduction, RFC 6937), позволяющего быстрее восстановить оптимальные параметры потока после временных проблем с передачей данных. Для отключения PRR предусмотрен sysctl net.inet.tcp.do_prr.
- Расширены возможности гипервизора Bhyve: Добавлена поддержка предоставления совместного доступа к файлами при помощи VirtIO-9p (VirtFS). Реализована возможность работы со снапшотами виртуальных машин. Добавлена поддержка устройств PCI HDAudio и дополнительных последовательных портов COM3 и COM4.
- В драйверы VirtIO добавлена поддержка спецификации VirtIO V1, что улучшило совместимость гостевых систем с FreeBSD с различными эмуляторами и гипервизорами.
- Для прикрепляемых к jail-окружениям процессов обеспечено преобразование привязок к CPU (изначально привязанный к процессу cpuset будет заменён с учётом cpuset jail-а и выставленных ограничений).
- Добавлена возможность сборки базовой системы FreeBSD в окружениях на основе других операционных систем.
- Предложен новый стек MMC/SD, основанный на фреймворке CAM и позволяющий подключать устройства с интерфейсом SDIO (Secure Digital I/O). Например, SDIO используется во WiFi и Bluetooth модулях для многих плат, таких как Raspberry Pi 3. Новый стек также позволяет использовать интерфейс CAM для отправки SD-команд из приложений в пространстве пользователя, что даёт возможность создавать драйверы устройств, работающие на уровне пользователя.
- Улучшена работа прослойки для совместимости с Linux. Файлы DTS (Device Tree Sources) синхронизированы с ядром Linux 5.8.
- Добавлена поддержка NFSv4.2 (RFC-7862) и реализована возможность работы NFS поверх шифрованного канала связи на базе TLS 1.3, вместо использования Kerberos (режим sec=krb5p), который ограничивался шифрованием только RPC-сообщений и был реализован только программно.
- Удалена устаревшая версия отладчика GDB
- Добавлен новый системный вызов copy_file_range, совместимый с реализацией из ядра Linux и позволяющий ускорить копирование данных из одного файла в другой, благодаря выполнению операции только на стороне ядра без предварительного чтения данных в память процесса
- В механизме асинхронного ввода/вывода POSIX AIO представлена поддержка векторизированных функций.
- Прекращена поддержка компонентов пространства пользователя для поддержки формата исполняемых файлов a.out на системах с архитектурой i386. Удалена утилита elf2aout.
- Объединены утилиты ping и ping6. В ping добавлена возможность установки параметров качества сервиса (QoS) через IP DSCP и Ethernet PCP.
- В утилите freebsd-update обеспечен показ прогресса загрузки файлов и добавлены команды updatesready и showconfig для проверки наличия обновлений и показа конфигурации.Проведена большая работа по улучшению поддержки систем NUMA (Non-Uniform Memory Access).
- Обновлены графические драйверы и компоненты графического стека. Решены проблемы с работой окружений на базе протокола Wayland.Добавлена подсистема backlight для создания драйверов управления подсветкой. Добавлен драйвер pwm-backlight для управления подсветкой Pinebook и Pinebook Pro.
- Поддержка протокола SCTP вынесена в отдельный модуль sctp.ko, который отключён по умолчанию в ядре GENERIC.
- Для устройств ввода предложен новый драйвер usbhid, использующий фреймворк hid для работы с устройствами USB HID, вместо драйверов ukbd, ums и uhid.
- В драйвере cpufreq реализована поддержка технологии Intel Speed Shift.Добавлена поддержка новых плат на базе 64-разрядных CPU ARMv8, включая SoC Broadcom BCM5871X и NXP LS1046A.
- Для архитектуры AMD64 реализована поддержка 57-разрядных виртуальных адресов (LA57). Добавлена поддержка китайских x86 CPU Hygon Dhyana на основе технологий AMD.
- Порт для архитектуры powerpc64 переведён на использование LLVM и ABI ELFv2 (на системах powerpc64 бинарные файлы из прошлых версий FreeBSD не смогут использоваться во FreeBSD 13). Для powerpc64 портированы драйверы virtio, ixl, mrsas, aacraid, cpld.
- Удалены драйверы для устаревших Ethernet-адаптеров.
Модель разработки FreeBSD
Существует около 4000 разработчиков, которые работают над системой на добровольной основе. Все они могут читать дерево репозитория, но не могут вносить изменения. Вместо этого разработчик обращается к коммитеру, который имеет право вносить изменение в код. Существует около 400 коммитеров. Разработчик может вырасти по социальной лестнице проекта и стать коммитером. Кандидатуру нового коммитера предлагает к рассмотрению ментор будущего коммитера. В зависимости от основной области деятельности, новый коммитер утверждается основной командой, portmgr@ или docmgr@. Основная команда является административным ядром проекта и состоит из 9 человек, которые выбираются на 2 года коммитерами из своего состава. Основная команда решает конфликты между коммитерами[43].
Участники проекта разрабатывают ветку CURRENT («текущая» версия) и несколько STABLE («стабильная», стабильность означает гарантию неизменности интерфейсов, как то API, ABI и так далее).
Новый код помещают в ветку CURRENT, где он получает более широкое тестирование. Новые функции, добавленные в CURRENT, могут остаться в системе или от них могут отказаться, если реализация окажется неудачной. Иногда эта версия может оказаться в непригодном для использования состоянии. С началом использования perforce как вспомогательного репозитория, и с выделением projects/ области в svn, проект стремится гарантировать постоянную работоспособность CURRENT.
STABLE-версия содержит только те нововведения, которые прошли проверку в CURRENT. Тем не менее, эта версия тоже предназначена, в основном, для разработчиков. Не рекомендуется обновлять ответственные рабочие серверы до STABLE, предварительно её не протестировав. На основе STABLE регулярно создаются тщательно протестированные разработчиками, группой release-инженеров и более широким кругом пользователей RELEASE-версии.
После выпуска релизов создаются дополнительные ветви разработки для поддержки релизов, но в них вносятся лишь самые необходимые изменения, исправляющие серьёзные ошибки или проблемы с безопасностью системы. До четвёртой версии FreeBSD у стабильной и текущей веток был один и тот же старший номер версии. Затем текущей ветви был присвоен номер 5, а у стабильной остался номер 4.
В настоящее время поддерживаются стабильные ветви разработки 9-STABLE, 10-STABLE и 11-STABLE. На данный момент, группа разработчиков активно работает над версией 13.0-CURRENT.
28-го января, 2021-го года, Разработчики FreeBSD объявили[44] о переводе архитектуры i386 (32-разрядные системы x86) на второй уровень поддержки платформ (Tier 2[45]). Изменения вступят в силу начиная с выпуска FreeBSD 13.0
Второй уровень поддержки для систем i386 подразумевает продолжение формирования установочных сборок, бинарных обновлений и готовых пакетов, но не гарантирует решение специфичных проблем.
Среди причин снижения уровня поддержки для архитектуры i386 указывается доминирование 64-разрядных систем x86 и снижение популярности 32-разрядных установок, число пользователей которых сократилось до уровня других арихитектур второго уровня.
Подготовлен первый бета-выпуск FreeBSD 13.0. Выпуск FreeBSD 13.0-BETA1 доступен для архитектур amd64, powerpc64, powerpc64le, powerpcspe, aarch64 и riscv64. Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2. Сборки для i386 и 32-разрядных плат ARM не сформированы.[46][47]
Варианты установки
Операционная система FreeBSD может быть установлена с различных носителей, таких как:
- CD-ROM;
- DVD-ROM;
- FAT-раздел жёсткого диска;
- USB-флеш-накопитель;
- дискета (установка с дискеты не поддерживается начиная с версий 9.x);
- магнитная лента;
- удалённый сервер (по протоколу FTP или NFS, через PXE-boot)
Порты и пакеты
В настоящее время FreeBSD предоставляет пользователю две взаимодополняющие технологии установки программного обеспечения сторонних разработчиков: коллекция портов FreeBSD и бинарные пакеты с программным обеспечением. Любая из этих систем может быть использована для установки самых последних версий приложений с локальных носителей или прямо из сети.
Коллекция портов, как подсистема сборки и сопровождения устанавливаемых программ, периодически обновляется. Сейчас она насчитывает порядка 32 тысяч портированных на FreeBSD программ[49], среди которых: графические среды GNOME, KDE5, Xfce, Enlightenment, офисные приложения и пакеты Apache OpenOffice, LibreOffice, система поддержки печати CUPS, программы доступа в интернет Mozilla Firefox и Thunderbird, Chromium, системы управления базами данных PostgreSQL, MySQL, комплекты Java-разработки OpenJDK, среды разработки Eclipse и NetBeans, мультимедийные плееры MPlayer и VLC. Инфраструктура интерпретируемых языков представлена Perl, Python, Ruby, Lua и другими ЯП.
Совместимость с оборудованием
Поддерживаемые устройства перечислены в документе FreeBSD 12.1-RELEASE Hardware Notes.[50] Другие конфигурации также могут работать, но пока ещё не были протестированы. Списки поддерживаемых идентификаторов устройств доступны в стороннем репозитории.[51]
В 2020 году был представлен новый проект для автоматического сбора информации о протестированных конфигурациях оборудования.[52]
Талисманы-логотипы
Основным талисманом системы является красный демонёнок, известный также как Beastie. Кроме него, талисманом также считается Devilette, девушка в красном костюме демона.
Производные системы
BSD-лицензия позволяет сохранять коммерческую тайну при модификации FreeBSD для встраиваемых систем и производить другие производные проприетарные системы, что делает FreeBSD привлекательной для промышленности[53]. FreeBSD нашла себе применение в маршрутизаторах Juniper и ТВ-панелях[54].
Ниже приведены свободные производные операционные системы:
- BSDeviant — LiveCD.
- BSD Router Project (BSDRP) — компактный программный роутер на базе FreeBSD.
- Debian GNU/kFreeBSD — производная версия, базирующаяся на наборе инструментов GNU, разрабатывается группой пользователей Debian.
- DesktopBSD — дистрибутив для домашнего использования.
- DragonFly BSD — ответвление от FreeBSD 4.8, созданное как логическое продолжение 4-й ветви. Она включает систему потоковой обработки сообщений, похожую на ту, которая используется в системах с микроядром.
- FreeNAS — основанное на m0n0wall сетевое хранилище NAS.
- FreeSBIE — LiveCD — дистрибутив FreeBSD, похожий на дистрибутив Linux под названием Knoppix.
- Frenzy — другой проект по созданию LiveCD на основе FreeBSD, ориентированный в первую очередь на русскоязычных системных администраторов.
- FuryBSD — дистрибутив FreeBSD с графическим окружением по умолчанию.
- GhostBSD — LiveCD с настольной средой Mate по умолчанию.
- MidnightBSD
- MiniBSD — компактный дистрибутив FreeBSD.
- mfsBSD — миниатюрный загрузочный LiveCD на базе FreeBSD, загружаемой полностью в оперативную память компьютера.
- m0n0wall — встраиваемый межсетевой экран, основанный на FreeBSD.
- NanoBSD — ещё один компактный дистрибутив FreeBSD.
- NomadBSD — проект по созданию LiveUSB с графическим окружением на основе FreeBSD.
- XigmaNAS — свободная операционная система для сетевого хранилища.
- TrueOS (ранее PC-BSD) — дистрибутив с графическим инсталлятором PBI и настольной средой Lumina по умолчанию.
- pfSense — ответвление от проекта m0n0wall, отличающееся большей функциональностью.
- PicoBSD — версия FreeBSD на одной дискете.
- RoFreeSBIE — Румынский дистрибутив основан на FreeBSD.
- TrueBSD — белорусский LiveDVD-дистрибутив на основе FreeBSD.
- ULBSD — русифицированный десктоп-ориентированный дистрибутив для домашних и корпоративных пользователей, включён в Единый реестр российских программ для электронных вычислительных машин и баз данных[55]
- XNU — ядро Mac OS X, многие команды взяты от FreeBSD 4/5, разрабатывается компанией Apple, весьма дальний родственник FreeBSD, так как использует ядро Mach.
- zRouter — дистрибутив направленный на работу в роутерах Asus, Buffalo, D-Link, NorthQ, Soekris, TPLink, Ubiquiti
- ИКС Server
- РУС-BSD — русифицированный дистрибутив для пользователей стран СНГ, опирается на Frenzy и свои разработки.
Пасхальные яйца
- Если запустить make c целью love, система выдаст на stdout сообщение Not war. (Работает только на версиях 7.0 и выше).
- Видео демонстрации пасхального яйца "make love" на FreeBSD 7.4-RELEASE, начиная с 0:10-й сек.
См. также
- BSD
- Сравнение операционных систем семейства BSD
- Программы UNIX-систем
- Список устройств, использующих FreeBSD
Примечания
- The UNIX system family tree: Research and BSD
- https://github.com/freebsd/freebsd/blob/master/share/misc/bsd-family-tree
- FreeBSD 13.0-RELEASE Announcement
- https://www.freebsd.org/copyright/freebsd-license.html
-
- From Linux to FreeBSD: A FreeBSD Review
- FreeBSD 5.2 Lacks Polishing In Some Areas but Rules in Others
- FreeBSD — The Power to Serve
- Beastie of an OS | Tux Machines
- FreeBSD 8: an evolutionary release of the unknown giant [LWN.net]
- DistroWatch Weekly, Issue 494, 11 February 2013
- The BSD famiily, pt. 1: FreeBAS 9.1
- DistroWatch Weekly, Issue 545, 10 February 2014
- DistroWatch Weekly, Issue 686, 7 November 2016
- The FreeBSD Project (англ.). GitHub. Дата обращения: 7 августа 2021.
- Майк Сондерс. Знакомьтесь: FreeBSD // Linux Format. — Март 2006. — № 3 (77). — С. 44-47.
-
- Open Sources: Voices from the Open Source Revolution (недоступная ссылка). Дата обращения: 20 июня 2018. Архивировано 1 октября 2009 года.
- FreeBSD Day | FreeBSD Foundation (недоступная ссылка). Дата обращения: 20 июня 2018. Архивировано 16 сентября 2018 года.
- Company History
- Linux Today — Report from Comdex--Walnut Creek CDROM, FreeBSD and Slackware Архивировано 15 декабря 2013 года.
- Why FreeBSD (недоступная ссылка). Архивировано 11 сентября 2013 года.
- BSD Overview
- Sony’s PlayStation 4 Is Running Modified FreeBSD — Phoronix
- Netflix’s New Peering Appliance Uses FreeBSD
- Newsletter | FreeBSD Foundation
- FreeBSD High Capacity Server Perfomance Turning — FlightAware
- Release Information
- О Проекте FreeBSD
- FreeBSD 4.0 Announcement
- FreeBSD 4.0 Release Notes
- FreeBSD Security Information - End of Life . The FreeBSD Project.. Дата обращения: 10 Октября 2016.
- FreeBSD 10.4-RELEASE Announcement . The FreeBSD Project.. Дата обращения: 3 Октября 2017.
- FreeBSD Security Information — End of Life (недоступная ссылка). The FreeBSD Project.. Дата обращения: 3 Октября 2017. Архивировано 12 октября 2017 года.
- FreeBSD 11.0-RELEASE Announcement . The FreeBSD Project. Дата обращения: 10 Октября 2016.
- FreeBSD 11.1-RELEASE Announcement . The FreeBSD Project. Дата обращения: 26 Июля 2017.
- BSDSec | FreeBSD 11.1 end-of-life . bsdsec.net. Дата обращения: 5 сентября 2018.
- DistroWatch Weekly, Issue 769, 25 June 2018
- DistroWatch Weekly, Issue 770, 2 July 2018
- FreeBSD 11.2-RELEASE Process . The FreeBSD Project. Дата обращения: 27 Июня 2018.
- The FreeBSD Project | Unsupported FreeBSD Releases . www.freebsd.org. Дата обращения: 23 марта 2021.
- The FreeBSD Project | FreeBSD 11.3 Release Process . www.freebsd.org. Дата обращения: 23 марта 2021.
- The FreeBSD Project | FreeBSD 11.4 Release Process . www.freebsd.org. Дата обращения: 23 марта 2021.
- The FreeBSD Project | FreeBSD 11.4-RELEASE Announcement . www.freebsd.org. Дата обращения: 23 марта 2021.
- FreeBSD 12.0 Release Process . The FreeBSD Project (18 Сентября 2017).
- FreeBSD 12.2-RELEASE Announcement (англ.) ?.
- FreeBSD 13.0 Release Process (англ.) ?.
- Jason Evans. A Scalable Concurrent malloc(3) Implementation for FreeBSD (недоступная ссылка) (16 апреля 2006). Дата обращения: 13 февраля 2008. Архивировано 22 августа 2011 года.
- Federico Biancuzzi. What’s New in FreeBSD 7.0 26 февраля 2008
- Introducing FreeBSD 7.0
- The arrow of time — ZFS v13 in 7-STABLE Архивировано 27 мая 2009 года.
- FreeBSD 8.0-RELEASE Announcement (недоступная ссылка). Дата обращения: 1 декабря 2009. Архивировано 30 ноября 2009 года.
- David Chisnall, LLVM in the FreeBSD Toolchain, 2013 (англ.)
- FreeBSD 10.0-RELEASE Announcement
- FreeBSD 10.0-RELEASE Release Notes
- Revision 240868
- quick start guide
- WhatsNew/FreeBSD10 — FreeBSD Wiki
- FreeBSD 10.1 Release Process .
- FreeBSD 10.2-RELEASE Announcement . www.freebsd.org. Дата обращения: 29 ноября 2015.
- FreeBSD 11.0-RELEASE Announcement . www.freebsd.org. Дата обращения: 12 октября 2016.
- FreeBSD 12.0-RELEASE Announcement . www.freebsd.org. Дата обращения: 13 декабря 2018.
- МакКузик. FreeBSD. Архитектура и реализация.
- i386 demoted to Tier 2 for FreeBSD 13.x (англ.) ?.
- committers-guide (англ.) ?.
- FreeBSD 13.0-BETA1 Now Available (англ.) ?.
- Index of /ftp/releases/ISO-IMAGES/13.0/ (англ.) ?.
- 2. Default Shell
- Самая свежая информация о портах
- FreeBSD 12.1-RELEASE Hardware Notes . The FreeBSD Documentation Project. Дата обращения: 14 июля 2020.
- FreeBSD 12.1: ids of supported devices . BSD Hardware Project. Дата обращения: 14 июля 2020.
- FreeBSD Hardware Trends . BSD Hardware Project. Дата обращения: 14 июля 2020.
- Брайн Таймэн. FreeBSD 6. Полное руководство. С. 30
- Panasonic G20 review
- Информация в реестре российского ПО Минкомсвязи РФ .
Литература
- Руководство FreeBSD на оф. сайте
- Корниенко К. А. «FreeBSD 9. Корпоративный Интернет-сервер», Киев — 2013, ISBN 966-8637-57-7
- Лукас М. FreeBSD. Подробное руководство = Absolute FreeBSD. The Complete Guide to FreeBSD. — 2-е изд.. — СПб.: Символ-Плюс, 2009. — ISBN 5-93286-126-6.
- Смит Р. Полный справочник по FreeBSD = FreeBSD: The Complete Reference. — М.: Вильямс, 2005. — 672 с. — ISBN 5-8459-0576-1.
- Таймэн Б. FreeBSD 6. Полное руководство = FreeBSD 6 Unleashed. — М.: Вильямс, 2007. — 1056 с. — ISBN 5-8459-0741-1.
- Англоязычная
- Christopher Negus. Francois Caen, BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD. — Wiley, May 5 2008. — 309 стр. — ISBN 0-470-37603-1. (англ.)
- Babak Farrokhi. Network Administration with FreeBSD 7: Building, securing, and maintaining networks with the FreeBSD operating system. — Packt Publishing, April 14 2008. — 280 стр. — ISBN 1-84719-264-5. (англ.)
- Bryan J. Hong. Building a Server with FreeBSD 7. — No Starch Press, April 1 2008. — 288 стр. — ISBN 5-8459-0741-1. (англ.)
- Joseph Kong. Designing BSD Rootkits: An Introduction to Kernel Hacking. — No Starch Press, April 10 2007. — 144 стр. — ISBN 1-59327-142-5. (англ.)
- Harald Zisler. FreeBSD. — Franzis Verlag GmbH, August 31 2006, 381 стр. — ISBN 3-7723-6538-8 (англ.)
- Yanek Korff, Paco Hope, Bruce Potter. Mastering FreeBSD and OpenBSD Security. — O’Reilly, March 2005. — ISBN 0-596-00626-8. (англ.)
- Dru Lavigne. BSD Hacks, 100 Industrial-Strength tips for BSD users and administrators. — O’Reilly, May 2004. — ISBN 0-596-00679-9. (англ.)
- Michael Urban, Brian Tiemann. FreeBSD Unleashed. — Second Edition. Sams Publishing, April 2003. — ISBN 0-672-32456-3. (англ.)
- Greg Lehey. The Complete FreeBSD. — 4th Edition. — Documentation from the Source. — O’Reilly, April 2003. — ISBN 0-596-00516-4. (англ.)
- Marshall Kirk McKusick, George V. Neville-Neil. The Design and Implementation of the FreeBSD Operating System. — Addison Wesley Professional, August, 2004. — ISBN 0-201-70245-2. (англ.)
- Ted Mittelstaedt. The FreeBSD Corporate Networkers Guide. — Addison-Wesley, December 2000. — Paperback, book & CD edition. — 401 pages. — ISBN 0-201-70481-1. (англ.)
- The FreeBSD Handbook, Volume 1: User Guide. — 3rd Edition. — FreeBSD Documentation Project. — FreeBSD Mall, November 2003. — ISBN 1-57176-327-9. (англ.)
- The FreeBSD Handbook, Volume 2: Admin Guide. — 3rd Edition. — FreeBSD Documentation Project. — FreeBSD Mall, September 2004. — ISBN 1-57176-328-7. (англ.)
Ссылки
- freebsd.org — официальный сайт FreeBSD
- Подробная инструкция с картинками по установке FreeBSD 10
- FreeBSD как одна из альтернатив Windows