Пакеты вместо наборов, inotify и защита от квантовых хакеров. Вышла FreeBSD 15.0 — главное. 14:12 / 5 декабря, 2025 Пакеты вместо наборов, inotify и защита от квантовых хакеров. Вышла FreeBSD 15.0 — главное. 14:12 / 5 декабря, 2025 FreeBSD 15.0 pkgbase воспроизводимые сборки inotify поддержка ZFS Вышла стабильная ветка FreeBSD 15.0 с поддержкой обновлений до 2029 года. Спустя почти два года после появления ветки 14.0 проект FreeBSD сформировал новый крупный релиз FreeBSD 15.0 . Установочные образы уже доступны для скачивания для архитектур amd64, aarch64, armv7, powerpc64, powerpc64le и riscv64, кроме того, подготовлены образы для систем виртуализации в форматах QCOW2, VHD, VMDK и raw, а также варианты для облаков, включая Amazon EC2, Google Compute Engine и окружения Vagrant. Одновременно разработчики обновили политику жизненного цикла. Начиная с ветки 15 срок поддержки значимых веток после выхода первого релиза (15.0) сокращен с пяти до четырех лет, а новые крупные ветки будут появляться раз в два года. Промежуточные версии (15.1, 15.2, 15.3) планируют выпускать примерно раз в шесть месяцев, а с учетом одновременной поддержки двух веток новый релиз будет выходить примерно раз в три месяца: 15.4, 16.1, 15.5, 16.2 и так далее, с полугодовой паузой перед формированием очередной «круглой» версии вроде 16.0. В официальных заметках о релизе помимо новшеств 15.0 суммированы и изменения, ранее появившиеся в ветках 14.1, 14.2 и 14.3. Одно из ключевых изменений 15.0 касается модели обслуживания базовой системы. Теперь компоненты «base» можно ставить и обновлять через пакетный менеджер pkg: так называемые pkgbase пакеты могут находиться на установочных носителях для офлайн установки или скачиваться из репозитория pkg.freebsd.org. В конфигурации pkg (/etc/pkg/FreeBSD.conf) репозиторий FreeBSD-base по умолчанию неактивен, но новый метод уже используется по умолчанию в образах для виртуальных машин и облаков и пока считается экспериментальным для обычных установок. Инсталлятор bsdinstall предлагает пользователю два режима установки, традиционный с монолитной базовой системой и обновлениями через freebsd-update и новый вариант с раздельными пакетами. Важный шаг сделан и в сторону безопасности цепочки сборки. FreeBSD 15.0 можно собирать в непривилегированных окружениях, без прав root, при этом без привилегий создаются и установочные ISO, и образы для виртуальных машин. Параллельно реализованы воспроизводимые сборки: собранные бинарные файлы детерминированы и позволяют проверить соответствие исходникам, что снижает риск скрытых изменений. Запрещённые знания хакеров — только для своих. Подпишитесь на нас Релиз меняет и архитектурную линейку. Проект прекратил выпуск установочных образов и бинарных репозиториев для 32-битных i386, armv6 и powerpc, в качестве единственной поддерживаемой 32-битной платформы остается armv7. При этом возможность локальной сборки 32-битных приложений и использования режима COMPAT_FREEBSD32 на 64-битном ядре сохранится как минимум до конца жизненного цикла ветки FreeBSD 16. В ядро добавлены системные вызовы, реализующие Linux-совместимый механизм inotify для отслеживания изменений в файловых системах, что упрощает портирование программ, полагающихся на эту модель уведомлений. Реализованы именованные атрибуты файлов в стиле Solaris, которые рассматриваются как альтернативный механизм расширенных атрибутов для ZFS и NFSv4: атрибуты хранятся в служебном каталоге, невидимом в обычном пространстве имен, и обрабатываются как обычные файлы, их список можно получить, например, через readdir(). Подсистема безопасности получила новый инструмент управления правами. Готовым к использованию объявлен модуль mac_do , позволяющий описывать политики, по которым непривилегированные пользователи могут изменять учетные данные процессов. Для запуска команд от имени другого пользователя без suid root предложена утилита mdo , функционально напоминающая su. Серьезно обновлена поддержка графики и беспроводных адаптеров. Состояние DRM-драйверов i915 и amdgpu синхронизировано с ядром Linux 6.9, а драйверы Wi-Fi rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) и iwlwifi (семейство Intel 802.11a/b/g/n/ac/ax/be) приведены в соответствие с состоянием драйверов в Linux 6.17. На системах amd64 появилась поддержка конфигураций с объемом оперативной памяти более 4 ТБ, добавлен драйвер ufshci для контроллеров накопителей с интерфейсом UFSHCI. В сетевой и файловой части также есть заметные изменения. В NFS реализована операция CLONE из спецификации NFSv4.2, которая позволяет копировать файлы за счет клонирования блоков на стороне сервера, пока только при экспорте ZFS-разделов. Улучшена устойчивость UFS на разделах с более чем 2 000 000 000 inode, в реализации UFS1 решена проблема 2038 года, даты корректно обрабатываются до 2106 года. Добавлена опция SO_SPLICE для TCP-сокетов, которая дает возможность объединять соединения по принципу легковесного прокси без копирования данных в пространство пользователя. В ядро включен модуль nvmfta для контроллеров NVMe over Fabrics, а утилита nvmecontrol получила средства подключения к внешним NVMe-устройствам. В области администрирования появилось несколько новых утилит. Для управления настройками звуковых устройств добавлен инструмент sndctl , для мониторинга MIDI-событий в реальном времени предназначена утилита mididump. В гипервизоре bhyve появился сетевой бэкенд slirp, использующий библиотеку libslirp с реализацией пользовательского сетевого стека и позволяющий отдавать гостю доступ в сеть без дополнительной настройки сетевой инфраструктуры хоста. В утилите newsyslog добавлен параметр выбора метода сжатия по умолчанию (bzip2, xz, zstd, gzip), что избавляет от необходимости проставлять отдельные флаги в каждой строке newsyslog.conf, а в date внедрен вывод времени с точностью до наносекунд, например команда "date -Ins". Изменения коснулись и окружений jail. Появилась опция zfs.dataset для добавления в jail отдельного ZFS-раздела, снепшота или клона, а также параметры meta и env в команде jail, с помощью которых можно привязывать метаданные и передавать переменные окружения. Добавлена адресация jail-окружений через дескрипторы, для работы с ними предложены функции jail_set и jail_get , а также системные вызовы jail_attach_jd и jail_remove_jd, поддерживаются kevent-фильтры для отслеживания операций с jail. В утилите adduser, которую использует bsdinstall, реализовано автоматическое создание отдельного ZFS dataset для домашнего каталога пользователя при наличии ZFS у родительского каталога, а также возможность шифрования домашнего каталога средствами ZFS, управляемая через параметры Zcreate и Zencrypt в adduser.conf. В пользовательском пространстве немало улучшений. В стандартной C-библиотеке во многих функциях работы со строками и памятью задействованы SIMD-оптимизации . Шрифт Gallant, используемый в виртуальных терминалах, получил более 4300 новых глифов, включая кириллицу и дополнительные математические символы. В tty по умолчанию включен флаг IUTF8, что обеспечивает корректное удаление UTF-8 символов при нажатии Backspace. Утилита dialog, применяемая в bsdconfig и инсталляторе bsdinstall, заменена на bsddialog . В grep по умолчанию отключен обход символических ссылок при рекурсивном поиске. Проект продолжает движение в сторону контейнеров и облаков. Добавлена возможность формирования OCI-совместимых контейнерных образов и системных образов для Oracle Cloud. Появился новый тип облачных образов small для совместимых с AWS EC2 сред: в отличие от базовых они лишены отладочных данных, тестов, 32-битных библиотек, отладчика LLDB, Amazon SSM Agent и AWS CLI, а загрузка базовых EC2-образов заметно ускорена. Существенно расширены и изменены репозитории пакетов. В конфигурации pkg добавлен новый репозиторий FreeBSD-kmods, включенный по умолчанию и содержащий модули ядра, собранные конкретно под релизные ветки 15.x-RELEASE, а не под постоянно обновляемую 15-STABLE, что важно для графических и других драйверов, завязанных на нестабильные интерфейсы ядра. Ранее существовавшие в /etc/pkg/FreeBSD.conf репозитории FreeBSD и FreeBSD-kmods переименованы в FreeBSD-ports и FreeBSD-ports-kmods соответственно. В стек протоколов и сетевые настройки внесены изменения по умолчанию. Отключен и объявлен устаревшим параметр net.inet.tcp.nolocaltimewait, таким образом TCP-соединения, разрываемые на локальной стороне, снова получают TIME_WAIT-записи по умолчанию, для настройки времени нахождения соединения в этом состоянии добавлен sysctl net.inet.tcp.msl_local. По умолчанию запрещены соединения к localhost с указанием INADDR_ANY, при необходимости старое поведение можно вернуть через sysctl net.inet.ip.connect_inaddr_wild. В сетевые мосты теперь можно добавлять интерфейсы без IP-адресов, так как sysctl net.link.bridge.member_ifaddrs по умолчанию установлен в 0. Релиз включает и заметный блок отказов от устаревших компонентов. Из базовой системы удален менеджер логических томов gvinum , долгое время использовавшийся для программных RAID, вместо него рекомендованы gconcat, gmirror, gstripe, graid или ZFS. Утилита fdisk объявлена устаревшей, взамен предлагается gpart . В категорию устаревших переведен консольный драйвер syscons , не совместимый с UEFI и не поддерживающий UTF-8. Во FreeBSD 16 запланировано удаление драйвера agp , необходимого для ряда старых видеокарт, а также драйверов fdc (контроллер дискет IBM PC), firewire (IEEE1394), le (старые Ethernet-адаптеры AMD) и upgt (USB 802.11g). Изменения затронули и подсистему аутентификации и сетевые сервисы. В основной системе реализация Kerberos переведена с Heimdal на MIT Kerberos, при сборке пока еще можно вернуть Heimdal флагом WITHOUT_MITKRB5, но в FreeBSD 16 эта возможность исчезнет. Старые интерфейсы также активно выключаются: функция readdir_r объявлена устаревшей, в SNMP-сервере bsnmpd прекращена поддержка транспорта UDP. Для SSH и образов EC2 прекращена генерация хостовых RSA-ключей, поддержка DSA в OpenSSH полностью удалена, а база publickey , основанная на DES, больше не используется. Из базовой системы исключены ftpd и shar, теперь они доступны только в виде портов ftp/freebsd-ftpd и sysutils/freebsd-shar. На уровне интерфейсов и поведения системы также есть выравнивание с другими платформами. Логика системных вызовов setgroups, getgroups и initgroups при работе со списками групп пользователя приведена к более ожидаемой схеме, когда эффективная группа не выделяется отдельным элементом в начале массива. По умолчанию включена реализация TLS на стороне ядра (KTLS), что позволяет разгружать часть криптографической обработки. Наконец, FreeBSD 15.0 включает масштабное обновление пользовательского пространства и инструментов разработки. В состав вошли LLVM 19.1.7, OpenSSH 10.0p2, OpenSSL 3.5.4, OpenZFS 2.4.0rc4, Lua 5.4.8, jemalloc 5.3.0, Awk 20250804 с поддержкой UTF-8, bc 7.1.0, unicode 16.0.0, ncurses 6.5, libarchive 3.8.2, tcpdump 4.99.5, unbound 1.24.1, less 679, file 5.46, GoogleTest 1.15.2 и другие обновленные компоненты, что делает ветку 15 более современной как для серверных, так и для десктопных сценариев. Смотрите записи марафона «PT NGFW: исповедь инженеров» Source: https://www.securitylab.ru/news/566873.php