FreeBSD
FreeBSD | |
---|---|
![]() | |
![]() | |
Разработчик | The FreeBSD Project |
Основана на | BSD[3] и 386BSD[4] |
Первый выпуск | декабрь 1993[1] |
Последняя версия | |
Менеджеры пакетов | Pkgcore |
Поддерживаемые платформы | x86, x86-64, SPARC, DEC Alpha, PowerPC, ARM, MIPS и RISC-V |
Тип ядра | Модульное ядро |
Лицензия | 2-пунктная лицензия BSD[вд][5] |
Репозиторий исходного кода | cgit.freebsd.org |
Веб-сайт | freebsd.org (англ.) |
![]() |
FreeBSD — свободная операционная система семейства UNIX, потомок AT&T Unix по линии BSD, созданной в университете Беркли[6].
FreeBSD разрабатывается как целостная операционная система. Исходный код ядра, драйверы устройств и базовых пользовательских программ, таких как командные оболочки и т. п., содержатся в одном дереве системы контроля версиями (до 31 мая 2008 — CVS, позже — SVN, а сейчас — Git[7]). Это отличает FreeBSD от GNU/Linux — другой свободной UNIX-подобной операционной системы, в которой ядро разрабатывается одной группой разработчиков, набор пользовательских программ — другими (например, проект GNU). А многочисленные группы собирают это всё в единое целое и выпускают в виде различных дистрибутивов.
FreeBSD хорошо зарекомендовала себя как система для построения интранет- и интернет-сетей и серверов. Она предоставляет надёжные сетевые службы и эффективное управление памятью[8].
Помимо своей стабильности, FreeBSD популярна и благодаря своей лицензии, которая существенно отличается от широко известной лицензии GNU GPL. Лицензия BSD позволяет использовать код не только в свободном ПО, но и в проприетарном. В отличие от GNU LGPL, которая требует раскрытия исходных кодов, лицензия BSD является более простой и непритязательной, требуя лишь упоминания заимствования, авторства и отказ от навязывания ответственности (нельзя отсылать пользователей своего продукта к авторам заимствованного кода).
История
Разработка FreeBSD началась в 1993 году с быстрорастущего набора патчей пользователей системы 386BSD[9]. Этот набор позже вырос и отделился от 386BSD в отдельную операционную систему, включив в себя код от Free Software Foundation. Первая официальная версия FreeBSD 1.0 вышла в декабре 1993 года[10]. Walnut Creek CDROM согласилась распространять FreeBSD на компакт-диске и также предоставила для работы проекту отдельный компьютер с интернет-соединением. Затем, в мае 1994 года, последовал успешный выпуск FreeBSD 1.1.
Однако, из соображений законности использования исходных кодов BSD Net/2 в 386BSD, команда разработчиков FreeBSD переработала большую часть системы ко времени выпуска FreeBSD 2.0 в январе 1995 года, используя 4.4BSD-Lite. Руководство к FreeBSD содержит более подробную историческую информацию о происхождении системы[10].
Версии системы
Версия | Дата выпуска | Окончание поддержки |
---|---|---|
Старая версия, не поддерживается: 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 | |
Старая версия, не поддерживается: 4.0[11][12] | 14 марта 2000 | |
Старая версия, не поддерживается: 4.1 | 27 июля 2000 | |
Старая версия, не поддерживается: 4.1.1 | 7 ноября 2000 | |
Старая версия, не поддерживается: 4.2 | 21 ноября 2000 | |
Старая версия, не поддерживается: 4.3 | 20 апреля 2001[13] | |
Старая версия, не поддерживается: 4.4 | 20 сентября 2001[13] | |
Старая версия, не поддерживается: 4.5 | 20 января 2002[13] | |
Старая версия, не поддерживается: 4.6 | 15 июня 2002[13] | |
Старая версия, не поддерживается: 4.7 | 10 октября 2002[13] | |
Старая версия, не поддерживается: 4.8 | 3 апреля 2003[13] | 31 марта 2004 |
Старая версия, не поддерживается: 4.9 | 28 октября 2003[13] | |
Старая версия, не поддерживается: 4.10 | 27 мая 2004[13] | Май 2006 |
Старая версия, не поддерживается: 4.11 | 25 января 2005[13] | 31 января 2007 |
Старая версия, не поддерживается: 5.0 | 19 января 2003[13] | 30 июня 2003 |
Старая версия, не поддерживается: 5.1 | 9 июня 2003[13] | Февраль 2004 |
Старая версия, не поддерживается: 5.2 | 12 января 2004[13] | |
Старая версия, не поддерживается: 5.3 | 6 ноября 2004 | 31 октября 2006[14] |
Старая версия, не поддерживается: 5.4 | 9 мая 2005 | |
Старая версия, не поддерживается: 6.0 | 1 ноября 2005 | 31 января 2007[14] |
Старая версия, не поддерживается: 6.1 | 8 мая 2006 | 31 мая 2008[14] |
Старая версия, не поддерживается: 6.2 | 15 января 2007 | |
Старая версия, не поддерживается: 7.0 | 27 февраля 2008 | 30 апреля 2009 |
Старая версия, не поддерживается: 7.1 | 4 января 2009 | 28 февраля 2011 |
Старая версия, не поддерживается: 8.0 | 26 ноября 2009 | 30 ноября 2010[14] |
Старая версия, не поддерживается: 8.1 | 23 июля 2010 | 31 июля 2012[14] |
Старая версия, не поддерживается: 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[14] |
Старая версия, не поддерживается: 9.2 | 30 сентября 2013 | |
Старая версия, не поддерживается: 9.3 | 16 июля 2014 | 31 декабря 2016 |
Старая версия, не поддерживается: 10.0 | 20 января 2014 | 28 февраля 2015 |
Старая версия, не поддерживается: 10.1 | 14 ноября 2014 | 31 декабря 2016[14][15] |
Старая версия, не поддерживается: 10.2 | 13 августа 2015 | |
Старая версия, не поддерживается: 10.3 | 4 апреля 2016 | 30 апреля 2018[15] |
Старая версия, не поддерживается: 10.4 | 3 октября 2017[16] | 31 октября 2018[17] |
Старая версия, не поддерживается: 11.0 | 10 октября 2016[18] | 31 октября 2017 |
Старая версия, не поддерживается: 11.1 | 26 июля 2017[19] | 30 Сентября 2018[20] |
Старая версия, не поддерживается: 11.2[21][22] | 27 июня 2018[23] | 31 октября 2019[14] |
Старая версия, не поддерживается: 11.3 | 9 июля 2019[24] | 30 сентября 2020[14] |
Старая версия, не поддерживается: 11.4 | 16 июня 2020[25] | 30 сентября 2021[26] |
Старая версия, не поддерживается: 12.0 | 10 декабря 2018[27] | 29 февраля 2020[14] |
Старая версия, не поддерживается: 12.1 | 4 ноября 2019 | 31 января 2021[14] |
Старая версия, не поддерживается: 12.2 | 27 октября 2020[28] | 31 марта 2022[14] |
Старая версия, не поддерживается: 12.3 | 7 декабря 2021[29] | 31 марта 2023[15] |
Старая версия, не поддерживается: 12.4 | 5 декабря 2022[30] | 31 декабря 2023[14] |
Старая версия, не поддерживается: 13.0 | 13 апреля 2021[31] | 31 августа 2022[14] |
Старая версия, не поддерживается: 13.1 | 16 мая 2022[32] | 31 июля 2023[14] |
Старая поддерживаемая версия: 13.2 | 11 апреля 2023[33] | 30 июня 2024[15] |
Текущая версия: 13.3 | 5 марта 2024[34][35] | |
Старая поддерживаемая версия: 14.0 | 14 ноября 2023[36] | 30 сентября 2024[15] |
Текущая версия: 14.1 | 4 июня 2024[37] | |
Версия | Дата релиза | Окончание поддержки |
Старая версия
Старая поддерживаемая версия
Текущая версия
Тестовая версия
Будущая версия
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, оптимизированный для параллельных вычислений[38],
- большие изменения и оптимизации подсистем работы с сетями, аудиоустройствами и SMP-системами[39],
Новая система показала значительные улучшения в скорости по сравнению с предыдущими версиями и системой Linux[40].
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 для этой ветки почти завершена[41].
24 января 2011 года вышла версия 7.4.
Поддержка ветки FreeBSD 7 истекла 28 февраля 2013 года
FreeBSD 8
О выходе релиза FreeBSD 8.0 было объявлено 25 ноября 2009 года[42]. Среди нововведений в этой версии можно отметить:
- экспериментальная поддержка 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[43] 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 года.[44]
Основные изменения:
- Заменён компилятор по умолчанию с GCC на Clang 3.3;[45]
- Драйверы Microsoft Hyper-V добавлены в состав GENERIC-ядра;
- Возможность установки программой BSDInstall на раздел ZFS;
- Поддержка TRIM для SSD в ZFS;[46]
- Unbound в составе базовой системы в качестве локального кэширующего DNS резолвера;
- BIND удалён из состава базовой системы;
- Драйверы для полной поддержки видеокарт Radeon, вплоть до серии HD 6000 (частичная поддержка серии HD 7000);
- Реализована начальная поддержка демона auditdistd, что позволяет организовать ведение полного лога событий, который, в частности, может быть полезен для анализа причин и последствий инцидентов, связанных с нарушением безопасности. В настоящее время ядро передаёт события аудита напрямую в файл или через устройство /dev/auditpip;
- GEOM_LABEL начал поддерживать в имени спецзнаки % и ";
- Поддержка Raspberry Pi;[47]
- Полноценная поддержка USB Audio 2.0.[48]
FreeBSD 10.1
FreeBSD 10.1 выпущена 14 ноября 2014 года[49].
Основные изменения:
- Начальная поддержка загрузки FreeBSD/amd64 на системах с UEFI;
- Расширены возможности инсталлятора (bsdinstall), в котором появилась поддержка создания зашифрованных (geli) и отзеркалированных (gmirror) разделов подкачки при установке на ZFS;
- В загрузчике реализовано меню для выбора используемого для загрузки ядра;
- Существенно улучшена производительность кода RPC;
- Обновлена реализация ZFS, в которой появилась возможность установки закладок на мгновенные снимки;
- Из FreeBSD-CURRENT перенесена реализация файловой системы autofs и связанного с ней демона automountd для организации автоматического монтирования ФС;
- В GEOM_MULTIPATH обеспечена поддержка автоматического изменения размера разделов на лету;
- Многочисленные обновления драйверов с поддержкой сетевых устройств и систем хранения.
FreeBSD 10.2
FreeBSD 10.2 выпущена 13 августа 2015 года.[50]
FreeBSD 11
FreeBSD 11.0 выпущена 10 октября 2016 года.[51]
Основные изменения:
- Новая система автоматического монтирования ФС (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 года.[52]
Основные изменения:
- Сильно изменён список поддерживаемых сетевых адаптеров, добавлены новые, выведены из поддержки драйверы для старых;
- Улучшена поддержка процессоров 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 13.1
FreeBSD 13.1 выпущена 16 мая 2022 года.
Основные изменения:
- Предложен драйвер iwlwifi для беспроводных карт Intel c поддержкой новых чипов и стандарта 802.11ac. Драйвер основан на Linux-драйвере и коде из Linux-подсистемы net80211, работа которых во FreeBSD обеспечивается при помощи прослойки linuxkpi.
- Реализация файловой системы ZFS обновлена до выпуска OpenZFS 2.1 с поддержкой технологии dRAID (Distributed Spare RAID) и значительными оптимизациями производительности.
- Добавлен новый rc-скрипт zfskeys, при помощи которого можно на этапе загрузки организовать автоматическую расшифровку зашифрованных ZFS-разделов.
- В сетевом стеке изменено поведение для IPv4-адресов с нулевым последним числом (x.x.x.0), который теперь можно использовать в качестве хоста и к нему по умолчанию не применяется отправка в широковещательном режиме. Старое поведение можно вернуть при помощи sysctl net.inet.ip.broadcast_lowest.
- Для 64-разрядных архитектур включена по умолчанию сборка базовой системы с использованием режима PIE (Position Independent Executable). Для отключения предусмотрена настройка WITHOUT_PIE.
- Добавлена возможность вызова chroot непривилегированным процессом, для которого выставлен флаг NO_NEW_PRIVS. Режим включается при помощи sysctl security.bsd.unprivileged_chroot. В утилиту chroot добавлена опция «-n», выставляющая для процесса флаг NO_NEW_PRIVS перед его изоляцией.
- В инсталлятор bsdinstall добавлен режим автоматизированного редактирования дисковых разделов, позволяющий для разных имён дисков подключать сценарии разбивки, работающие без участия пользователя. Предложенная возможность упрощает создание полностью автоматически работающих установочных носителей для систем и виртуальных машин с разными дисками.
- Улучшена поддержка загрузки на системах с UEFI. В загрузчике включена автоматическая настройка параметра copy_staging в зависимости от возможностей загружаемого ядра.
- Проведена работа по повышению производительности загрузчика, nvme, rtsold, инициализации генератора псевдослучайных чисел и калибровки таймера, что привело к сокращению времени загрузки.
- Добавлена поддержка работы NFS поверх шифрованного канала связи на базе TLS 1.3. Новая реализация использует предоставляемый ядром стек TLS, позволяющий задействовать средства аппаратного ускорения. Сборка процессов rpc.tlsclntd и rpc.tlsservd с реализацией клиента и сервера NFS-over-TLS, по умолчанию включена для архитектур amd64 и arm64.
- Для NFSv4.1 и 4.2 реализована опция монтирования nconnect, определяющая число установленных с сервером TCP-соединений. Первое соединение используется для мелких RPC сообщений, а остальные для балансировки трафика с передаваемыми данными.
- Для сервера NFS добавлен sysctl vfs.nfsd.srvmaxio, позволяющий изменить максимальный размер блока ввода/вывода (по умолчанию 128Kb).
- Улучшена поддержка оборудования. В драйвер igc добавлена поддержка Ethernet-контроллера Intel I225. Улучшена поддержка Big-endian систем. Добавлен драйвер mgb для Ethernet-контроллера Microchip devices LAN7430 PCIe Gigabit Ethernet
- Драйвер ice, используемый для Ethernet-контроллеров Intel E800, обновлён до версии 1.34.2-k, в которой появилась поддержка отражения в системном логе событий прошивки и добавлена начальная реализация расширений протокола DCB (Data center bridging).
- В образах для Amazon EC2 по умолчанию включена загрузка с использованием UEFI вместо BIOS.
- В гипервизоре bhyve обновлены компоненты для эмуляции накопителей NVMe, в которых обеспечена поддержка спецификации NVMe 1.4. Решены проблемы с NVMe iovec при интенсивном вводе/выводе.
- Библиотека CAM переведена на использование вызова realpath при обработке имён устройств, что позволяет использовать символические ссылки на устройства в утилитах camcontrol и smartctl. В camcontrol решены проблемы с загрузкой прошивок на устройства.
- Прекращена сборка утилиты svnlite в базовой системе.
- Добавлены Linux-варианты утилит для вычисления контрольных сумм (md5sum, sha1sum и т. п.) которые реализованы путём вызова имеющихся BSD-утилит (md5, sha1 и т. п.) с опцией «-r».
- В утилиту mpsutil добавлена поддержка управления NCQ и обеспечен показ информации об адаптере.
- В /etc/defaults/rc.conf по умолчанию включено применение опции «-i» при вызове процессов rtsol и rtsold, отвечающих за отправку сообщений ICMPv6 RS (Router Solicitation). Указанная опция отключает случайную задержку перед отправкой сообщения.
- Для архитектур riscv64 и riscv64sf включена сборка библиотек с ASAN (address sanitizer), UBSAN (Undefined Behavior Sanitizer), OpenMP и OFED (Open Fabrics Enterprise Distribution).
- Решены проблемы с определением поддерживаемых процессорами ARMv7 и ARM64 средств аппаратного ускорения криптографических операций, что позволило существенно ускорить работу алгоритмов aes-256-gcm и sha256 на системах ARM.
- Для архитектуры powerpc в основной состав включён отладчик LLDB, развиваемый проектом LLVM.
- Библиотека OpenSSL обновлена до версии 1.1.1o и расширена применением ассемблерных оптимизаций для архитектур powerpc, powerpc64 и powerpc64le.
- SSH-сервер и клиент обновлены до OpenSSH 8.8p1 с отключением поддержки цифровых подписей rsa-sha и поддержкой двухфакторной аутентификации при помощи устройств на базе протокола FIDO/U2F. Для взаимодействия с устройствами FIDO/U2F добавлены новые типы ключей «ecdsa-sk» и «ed25519-sk», в которых используются алгоритмы цифровой подписи ECDSA и Ed25519, в сочетании с хэшем SHA-256.
- Обновлены версии входящих в базовую систему сторонних приложений: awk 20210215 (с патчами, отключающими использование локали для диапазонов и улучшающими совместимость с gawk и mawk), zlib 1.2.12, libarchive 3.6.0.
FreeBSD 13.2
FreeBSD 13.2 выпущена 11 апреля 2023 года.
Основные изменения:
- Реализована возможность создания снапшотов файловых систем UFS и FFS, на которых включено журналирование (soft updates). Также добавлена поддержка фонового сохранения дампов (запуск dump с флагом "-L") с содержимым примонтированных файловых систем UFS при включённом журналировании. Из возможностей, которые недоступны при использовании журналирования, остаётся фоновое выполнение проверки целостности при помощи утилиты fsck.
- В основной состав принят работающий на уровне ядра драйвер wg с реализацией сетевого интерфейса для VPN WireGuard. Для использования необходимых драйверу криптографических алгоритмов было произведено расширение API криптоподсистемы ядра FreeBSD, в который была добавлена обвязка, позволяющая использовать через стандартный крипто-API не поддерживаемые во FreeBSD алгоритмы из библиотеки libsodium. В процессе разработки также была проведена оптимизация для равномерной балансировки привязки задач шифрования и расшифровки пакетов к ядрам CPU, что позволило снизить накладные расходы при обработке пакетов WireGuard.
Прошлая попытка включения WireGuard в состав FreeBSD была предпринята в 2020 году, но завершилась скандалом, в результате которого уже добавленный код был удалён из-за низкого качества, безалаберной работы с буферами, использования заглушек вместо проверок, неполной реализации протокола и нарушения лицензии GPL. Новая реализация , совместно подготовлена основными командами разработчиков FreeBSD и WireGuard при участии Джейсона Доненфилда (Jason A. Donenfeld), автора VPN WireGuard, и Джона Болдуина (John H. Baldwin), известного разработчика FreeBSD. Перед принятием нового кода при поддержке организации FreeBSD Foundation было проведено полное рецензирование изменений.
- Реализована поддержка коммуникационного протокола Netlink (RFC 3549), применяемого в Linux для организации взаимодействия ядра с процессами в пространстве пользователя. Проект ограничивается поддержкой семейства операций NETLINK_ROUTE для управления состоянием сетевой подсистемы в ядре, что позволяет использовать во FreeBSD Linux-утилиту ip из пакета iproute2 для управления сетевыми интерфейсами, установки IP-адресов, настройки маршрутизации и манипуляции объектами nexthop, хранящими данные о состоянии, используемом для передачи пакета в желаемую точку назначения.
- Для всех исполняемых файлов базовой системы на 64-разрядных платформах включена по умолчанию рандомизация адресного пространства (ASLR, Address Space Layout Randomization). Для выборочного отключения ASLR можно использовать команды "proccontrol -m aslr -s disable" или "elfctl -e +noaslr".
- В ipfw для поиска MAC-адресов задействованы базисные таблицы (Radix table), что позволяет создавать таблицы с MAC-адресами и использовать их для фильтрации трафика.
- Добавлены и доступны для загрузки через loader.conf модули ядра dpdk_lpm4 и dpdk_lpm6 с реализацией алгоритма поиска маршрутов DIR-24-8 для IPv4/IPv6, который позволяет оптимизировать функции маршрутизации для хостов с очень большими таблицами маршрутизации (в тестах наблюдается прирост скорости на уровне 25%). Для настройки модулей может использоваться штатная утилита route (добавлена опция FIB_ALGO).
- Реализация файловой системы ZFS обновлена до выпуска OpenZFS 2.1.9. В стартовом скрипте zfskeys обеспечена автоматическая загрузка ключей, хранимых в ФС ZFS. Добавлен новый RC-скрипт zpoolreguid для назначения идентификатора GUID к одному или нескольким zpool (например, полезно для окружений виртуализации с общими данными).
- В гипервизоре Bhyve и модуле vmm реализована поддержка прикрепления к гостевой системе более 15 виртуальных CPU (регулируется через sysctl hw.vmm.maxcpu). В утилите bhyve реализована эмуляция устройства virtio-input, при помощи которого можно подставлять события ввода с клавиатуры и мыши в гостевую систему.
- В KTLS, реализацию протокола TLS, работающую на уровне ядра FreeBSD, добавлена поддержка аппаратного ускорения TLS 1.3 через вынос на сторону сетевой карты некоторых операций, связанных с обработкой зашифрованных входящих пакетов. Ранее подобная возможность была доступна для TLS 1.1 и TLS 1.2.
- В стартовом скрипте growfs при расширении корневой ФС обеспечено добавление раздела подкачки, если такой раздел изначально отсутствовал (например, полезно при установке на SD-карту готового системного образа). Для управления размером подкачки в rc.conf добавлен новый параметр growfs_swap_size.
- В стартовом скрипте hostid обеспечена генерация случайного UUID в случае отсутствия файла /etc/hostid и невозможности получения UUID от аппаратного обеспечения. Также добавлен файл /etc/machine-id с компактным представлением идентификатора хоста (без дефисов).
- В rc.conf добавлены переменные defaultrouter_fibN и ipv6_defaultrouter_fibN, через которые можно добавить маршруты по умолчанию в FIB-таблицы, отличные от первичной.
- В библиотеку libmd добавлена поддержка хэшей SHA-512/224.
- В библиотеке pthread реализована поддержка семантики функций, используемых в Linux.
- В kdump добавлена поддержка декодирования системных вызовов Linux. В kdump и sysdecode добавлена поддержка трассировки системных вызовов в стиле Linux.
- В утилите killall появилась возможность отправки сигнала процессам, привязанным к определённому терминалу (например, "killall -t pts/1").
- Добавлена утилита nproc для вывода числа доступных текущему процессу вычислительных блоков.
- В утилиту pciconf добавлена поддержка декодирования параметров ACS (Access Control Services).
- В ядро добавлена настройка SPLIT_KERNEL_DEBUG, позволяющая сохранять в отдельные файлы отладочную информацию для ядра и модулей ядра.
- В ABI linux почти завершена реализации поддержки механизма vDSO (virtual dynamic shared objects), предоставляющего ограниченный набор системных вызовов, доступный в пространстве пользователя без переключения контекста. ABI linux на системах ARM64 доведён до паритета с реализацией для архитектуры AMD64.
- Улучшена поддержка оборудования. Добавлена поддержка мониторинга производительности (hwpmc) для CPU Intel Alder Lake. Обновлён драйвер iwlwifi для беспроводных карт Intel c поддержкой новых чипов и стандарта 802.11ac. Добавлен драйвер rtw88 для беспроводных карт Realtek с интерфейсом PCI. Расширены возможности прослойки linuxkpi для использования во FreeBSD драйверов Linux.
- Библиотека OpenSSL обновлена до версии 1.1.1t, LLVM/Сlang до версии 14.0.5, а SSH-сервер и клиент обновлены до OpenSSH 9.2p1 (в прошлой версии использовался OpenSSH 8.8p1). Также обновлены версии bc 6.2.4, expat 2.5.0, file 5.43, less 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13.
- Дополнительно объявлено о переводе в разряд устаревших и удалении начиная с ветки FreeBSD 14.0 одноразовых паролей OPIE, драйверов ce и cp, драйверов для карт с интерфейсом ISA, утилит mergemaster и minigzip, компонентов ATM в netgraph (NgATM), фонового процесса telnetd и класса VINUM в geom.
Модель разработки FreeBSD
Существует около 4000 разработчиков, которые работают над системой на добровольной основе. Все они могут читать дерево репозитория, но не могут вносить изменения. Вместо этого разработчик обращается к коммитеру, который имеет право вносить изменение в код. Существует около 400 коммитеров. Разработчик может вырасти по социальной лестнице проекта и стать коммитером. Кандидатуру нового коммитера предлагает к рассмотрению ментор будущего коммитера. В зависимости от основной области деятельности, новый коммитер утверждается основной командой, portmgr@ или docmgr@. Основная команда является административным ядром проекта и состоит из 9 человек, которые выбираются на 2 года коммитерами из своего состава. Основная команда решает конфликты между коммитерами[53].
Участники проекта разрабатывают ветку 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 объявили[54] о переводе архитектуры i386 (32-разрядные системы x86) на второй уровень поддержки платформ (Tier 2[55]). Изменения вступят в силу начиная с выпуска 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 не сформированы.[56][57]
Варианты установки
Операционная система FreeBSD может быть установлена с различных носителей, таких как:
- CD-ROM;
- DVD-ROM;
- FAT-раздел жёсткого диска;
- USB-флеш-накопитель;
- дискета (установка с дискеты не поддерживается начиная с версий 9.x);
- магнитная лента;
- удалённый сервер (по протоколу FTP или NFS, через PXE-boot)
Оболочка
Оболочкой FreeBSD по умолчанию является tcsh[58].
Порты и пакеты
В настоящее время FreeBSD предоставляет пользователю две взаимодополняющие технологии установки программного обеспечения сторонних разработчиков: коллекция портов FreeBSD и бинарные пакеты с программным обеспечением. Любая из этих систем может быть использована для установки самых последних версий приложений с локальных носителей или прямо из сети.
Коллекция портов, как подсистема сборки и сопровождения устанавливаемых программ, периодически обновляется. Сейчас она насчитывает порядка 32 тысяч портированных на FreeBSD программ[59], среди которых: графические среды 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.[60] Другие конфигурации также могут работать, но пока ещё не были протестированы. Списки поддерживаемых идентификаторов устройств доступны в стороннем репозитории.[61]
В 2020 году был представлен новый проект для автоматического сбора информации о протестированных конфигурациях оборудования.[62]
Талисманы-логотипы
Основным талисманом системы является красный демонёнок, известный также как Beastie. Кроме него, талисманом также считается Devilette, девушка в красном костюме демона.
Производные системы
BSD-лицензия позволяет сохранять коммерческую тайну при модификации FreeBSD для встраиваемых систем и производить другие производные проприетарные системы, что делает FreeBSD привлекательной для промышленности[63]. FreeBSD нашла себе применение в маршрутизаторах Juniper и ТВ-панелях[64].
Ниже приведены свободные производные операционные системы:
- BSDeviant — LiveCD.
- BSD Router Project (BSDRP) — компактный программный роутер на базе FreeBSD.
- ClonOS — специализированный дистрибутив для развёртывания инфраструктуры виртуальных серверов.
- 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 по умолчанию.
- HardenedBSD
- helloSystem — Настольная система, ориентированная на простоту, элегантность и удобство использования для пользователей macOS, недовольных политикой Apple.[65][66]
- MidnightBSD
- MiniBSD — компактный дистрибутив FreeBSD.
- mfsBSD — миниатюрный загрузочный LiveCD на базе FreeBSD, загружаемой полностью в оперативную память компьютера.
- m0n0wall — встраиваемый межсетевой экран, основанный на FreeBSD.
- NanoBSD — ещё один компактный дистрибутив FreeBSD.
- NomadBSD — проект по созданию LiveUSB с графическим окружением на основе FreeBSD.
- OPNsense — активно развиваемое ответвление от проекта pfSense.
- pfSense — ответвление от проекта m0n0wall, отличающееся большей функциональностью.
- PicoBSD — версия FreeBSD на одной дискете.
- RoFreeSBIE — Румынский дистрибутив основан на FreeBSD.
- TrueBSD — белорусский LiveDVD-дистрибутив на основе FreeBSD.
- TrueOS (ранее PC-BSD) — дистрибутив с графическим инсталлятором PBI и настольной средой Lumina по умолчанию.
- XigmaNAS — свободная операционная система для сетевого хранилища.
- zRouter — дистрибутив направленный на работу в роутерах Asus, Buffalo, D-Link, NorthQ, Soekris, TPLink, Ubiquiti [1]
- XNU — ядро Mac OS X, многие команды взяты от FreeBSD 4/5, разрабатывается компанией Apple, весьма дальний родственник FreeBSD, так как использует ядро Mach.
- ULBSD — русифицированный десктоп-ориентированный дистрибутив для домашних и корпоративных пользователей, включён в Единый реестр российских программ для электронных вычислительных машин и баз данных[67]
- ИКС Server
- РУС-BSD — русифицированный дистрибутив для пользователей стран СНГ, опирается на Frenzy и свои разработки.
Пасхальные яйца
- Если запустить make c целью love, система выдаст на stdout сообщение Not war. (Работает только на версиях 7.0 и выше).
Видео демонстрации пасхального яйца "make love" на FreeBSD 7.4-RELEASE-й сек.
См. также
- BSD
- Сравнение операционных систем семейства BSD
- Программы UNIX-систем
- Список устройств, использующих FreeBSD[англ.]
Примечания
- ↑ A Brief History of FreeBSD (англ.). Дата обращения: 3 марта 2023. Архивировано 7 марта 2023 года.
- ↑ FreeBSD 14.1-RELEASE Announcement (англ.) — 2024.
- ↑ The UNIX system family tree: Research and BSD
- ↑ https://github.com/freebsd/freebsd/blob/master/share/misc/bsd-family-tree
- ↑ https://www.freebsd.org/copyright/freebsd-license.html
- ↑ *From Linux to FreeBSD: A FreeBSD Review Архивная копия от 20 июня 2018 на Wayback Machine
- FreeBSD 5.2 Lacks Polishing In Some Areas but Rules in Others Архивная копия от 20 июня 2018 на Wayback Machine
- FreeBSD — The Power to Serve Архивная копия от 20 июня 2018 на Wayback Machine
- Beastie of an OS | Tux Machines Архивная копия от 20 июня 2018 на Wayback Machine
- FreeBSD 8: an evolutionary release of the unknown giant [LWN.net] Архивная копия от 10 января 2014 на Wayback Machine
- DistroWatch Weekly, Issue 494, 11 February 2013 Архивная копия от 20 июня 2018 на Wayback Machine
- The BSD famiily, pt. 1: FreeBAS 9.1 Архивная копия от 18 октября 2013 на Wayback Machine
- DistroWatch Weekly, Issue 545, 10 February 2014 Архивная копия от 20 июня 2018 на Wayback Machine
- DistroWatch Weekly, Issue 686, 7 November 2016 Архивная копия от 20 июня 2018 на Wayback Machine
- ↑ The FreeBSD Project (англ.). GitHub. Дата обращения: 7 августа 2021. Архивировано 7 августа 2021 года.
- ↑ Майк Сондерс. Знакомьтесь: FreeBSD // Linux Format. — Март 2006. — № 3 (77). — С. 44—47. Архивировано 30 декабря 2021 года.
- ↑ *Open Sources: Voices from the Open Source Revolution (неопр.). Дата обращения: 20 июня 2018. Архивировано из оригинала 1 октября 2009 года.
- FreeBSD Day | FreeBSD Foundation (неопр.). Дата обращения: 20 июня 2018. Архивировано из оригинала 16 сентября 2018 года.
- Company History Архивная копия от 14 декабря 2013 на Wayback Machine
- Linux Today — Report from Comdex--Walnut Creek CDROM, FreeBSD and Slackware Архивная копия от 13 января 2014 на Wayback Machine
- Why FreeBSD (неопр.). Архивировано из оригинала 11 сентября 2013 года.
- BSD Overview Архивная копия от 29 мая 2016 на Wayback Machine
- Sony’s PlayStation 4 Is Running Modified FreeBSD — Phoronix Архивная копия от 24 июня 2013 на Wayback Machine
- Netflix’s New Peering Appliance Uses FreeBSD Архивная копия от 17 февраля 2018 на Wayback Machine
- Newsletter | FreeBSD Foundation Архивная копия от 12 марта 2016 на Wayback Machine
- FreeBSD High Capacity Server Perfomance Turning — FlightAware Архивная копия от 20 июня 2018 на Wayback Machine
- Release Information Архивная копия от 27 ноября 2017 на Wayback Machine
- ↑ 1 2 О Проекте FreeBSD (неопр.). Дата обращения: 2 февраля 2005. Архивировано 9 июня 2011 года.
- ↑ FreeBSD 4.0 Announcement (неопр.). Дата обращения: 26 июня 2018. Архивировано 26 июня 2018 года.
- ↑ FreeBSD 4.0 Release Notes (неопр.). Дата обращения: 26 июня 2018. Архивировано 26 июня 2018 года.
- ↑ 1 2 3 4 5 6 7 8 9 10 11 12 FreeBSD Lifecycle (неопр.). Дата обращения: 25 мая 2022. Архивировано 14 июня 2022 года.
- ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 The FreeBSD Project | Unsupported FreeBSD Releases (неопр.). www.freebsd.org. Дата обращения: 23 марта 2021. Архивировано 10 марта 2021 года.
- ↑ 1 2 3 4 5 FreeBSD Security Information - End of Life (неопр.). The FreeBSD Project.. Дата обращения: 10 октября 2016. Архивировано 27 ноября 2017 года.
- ↑ FreeBSD 10.4-RELEASE Announcement (неопр.). The FreeBSD Project.. Дата обращения: 3 октября 2017. Архивировано 4 октября 2017 года.
- ↑ FreeBSD Security Information — End of Life (неопр.). The FreeBSD Project.. Дата обращения: 3 октября 2017. Архивировано из оригинала 12 октября 2017 года.
- ↑ FreeBSD 11.0-RELEASE Announcement (неопр.). The FreeBSD Project. Дата обращения: 10 октября 2016. Архивировано 7 ноября 2017 года.
- ↑ FreeBSD 11.1-RELEASE Announcement (неопр.). The FreeBSD Project. Дата обращения: 26 июля 2017. Архивировано 21 декабря 2017 года.
- ↑ BSDSec | FreeBSD 11.1 end-of-life (неопр.). bsdsec.net. Дата обращения: 5 сентября 2018. Архивировано 5 сентября 2018 года.
- ↑ DistroWatch Weekly, Issue 769, 25 June 2018 (неопр.). Дата обращения: 25 июня 2018. Архивировано 25 июня 2018 года.
- ↑ DistroWatch Weekly, Issue 770, 2 July 2018 (неопр.). Дата обращения: 2 июля 2018. Архивировано 2 июля 2018 года.
- ↑ FreeBSD 11.2-RELEASE Process (неопр.). The FreeBSD Project. Дата обращения: 27 июня 2018. Архивировано 17 апреля 2018 года.
- ↑ The FreeBSD Project | FreeBSD 11.3 Release Process (неопр.). www.freebsd.org. Дата обращения: 23 марта 2021. Архивировано 21 января 2022 года.
- ↑ The FreeBSD Project | FreeBSD 11.4 Release Process (неопр.). www.freebsd.org. Дата обращения: 23 марта 2021. Архивировано 21 января 2022 года.
- ↑ The FreeBSD Project | FreeBSD 11.4-RELEASE Announcement (неопр.). www.freebsd.org. Дата обращения: 23 марта 2021. Архивировано 8 марта 2021 года.
- ↑ FreeBSD 12.0 Release Process (неопр.). The FreeBSD Project (18 сентября 2017). Дата обращения: 1 апреля 2018. Архивировано 16 февраля 2018 года.
- ↑ FreeBSD 12.2-RELEASE Announcement (англ.). Дата обращения: 26 января 2021. Архивировано 26 января 2021 года.
- ↑ FreeBSD 12.3-RELEASE Announcement (англ.). Дата обращения: 14 января 2023. Архивировано 14 января 2023 года.
- ↑ FreeBSD 12.4-RELEASE Announcement (англ.). Дата обращения: 6 декабря 2022. Архивировано 6 декабря 2022 года.
- ↑ FreeBSD 13.0 Release Process (англ.). Дата обращения: 26 января 2021. Архивировано 5 февраля 2021 года.
- ↑ FreeBSD 13.1-RELEASE Announcement (англ.). Дата обращения: 17 мая 2022. Архивировано 17 мая 2022 года.
- ↑ FreeBSD 13.2 Release Process (англ.). Дата обращения: 20 августа 2022. Архивировано 20 августа 2022 года.
- ↑ FreeBSD 13.3-RELEASE Announcement (англ.). Архивировано 5 марта 2024 года.
- ↑ FreeBSD 13.3 Release Process (англ.). Архивировано 8 февраля 2024 года.
- ↑ FreeBSD 14.0 Release Process (англ.). The FreeBSD Project. Дата обращения: 3 июля 2023. Архивировано 29 июня 2023 года.
- ↑ FreeBSD 14.1 Release (англ.). Архивировано 2 июня 2024 года.
- ↑ 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 Архивная копия от 21 декабря 2016 на Wayback Machine 26 февраля 2008
- ↑ Introducing FreeBSD 7.0 (неопр.). Дата обращения: 25 января 2009. Архивировано 22 июля 2011 года.
- ↑ 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 Архивная копия от 29 июня 2016 на Wayback Machine, 2013 (англ.)
- ↑ FreeBSD 10.0-RELEASE Announcement (неопр.). Дата обращения: 30 июля 2014. Архивировано 1 августа 2014 года.
- ↑ FreeBSD 10.0-RELEASE Release Notes (неопр.). Дата обращения: 21 января 2014. Архивировано 22 января 2014 года.
- ↑ Revision 240868 (неопр.). Дата обращения: 24 декабря 2012. Архивировано 20 января 2013 года.
- ↑ quick start guide
- ↑ WhatsNew/FreeBSD10 — FreeBSD Wiki (неопр.). Дата обращения: 2 апреля 2017. Архивировано 26 июля 2017 года.
- ↑ FreeBSD 10.1 Release Process (неопр.). Дата обращения: 19 ноября 2014. Архивировано 11 ноября 2014 года.
- ↑ FreeBSD 10.2-RELEASE Announcement (неопр.). www.freebsd.org. Дата обращения: 29 ноября 2015. Архивировано 6 декабря 2015 года.
- ↑ FreeBSD 11.0-RELEASE Announcement (неопр.). www.freebsd.org. Дата обращения: 12 октября 2016. Архивировано 11 октября 2016 года.
- ↑ FreeBSD 12.0-RELEASE Announcement (неопр.). www.freebsd.org. Дата обращения: 13 декабря 2018. Архивировано 21 декабря 2018 года.
- ↑ МакКузик. FreeBSD. Архитектура и реализация.
- ↑ i386 demoted to Tier 2 for FreeBSD 13.x (англ.). Дата обращения: 29 января 2021. Архивировано 3 февраля 2021 года.
- ↑ committers-guide (англ.). Дата обращения: 29 января 2021. Архивировано 29 января 2021 года.
- ↑ FreeBSD 13.0-BETA1 Now Available (англ.). Дата обращения: 7 февраля 2021. Архивировано 14 февраля 2021 года.
- ↑ Index of /ftp/releases/ISO-IMAGES/13.0/ (англ.). Дата обращения: 7 февраля 2021. Архивировано 8 февраля 2021 года.
- ↑ 2. Default Shell (неопр.). Дата обращения: 29 июня 2018. Архивировано 16 февраля 2018 года.
- ↑ Самая свежая информация о портах (неопр.). Дата обращения: 2 февраля 2005. Архивировано 11 июня 2018 года.
- ↑ FreeBSD 12.1-RELEASE Hardware Notes (неопр.). The FreeBSD Documentation Project. Дата обращения: 14 июля 2020. Архивировано 14 июля 2020 года.
- ↑ FreeBSD 12.1: ids of supported devices (неопр.). BSD Hardware Project. Дата обращения: 14 июля 2020. Архивировано 25 февраля 2021 года.
- ↑ FreeBSD Hardware Trends (неопр.). BSD Hardware Project. Дата обращения: 14 июля 2020. Архивировано 18 ноября 2020 года.
- ↑ Брайн Таймэн. FreeBSD 6. Полное руководство. С. 30
- ↑ Panasonic G20 review (неопр.). Дата обращения: 17 июня 2010. Архивировано 1 августа 2010 года.
- ↑ helloSystem (англ.). Дата обращения: 24 января 2023. Архивировано 24 января 2023 года.
- ↑ helloSystem Repository (англ.). Дата обращения: 24 января 2023. Архивировано 24 января 2023 года.
- ↑ Информация в реестре российского ПО Минкомсвязи РФ (неопр.). Дата обращения: 2 апреля 2017. Архивировано 4 ноября 2016 года.
Литература
- Руководство 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