После шести месяцев разработки сформирован релиз FreeBSD 15.1. Установочные сборки подготовлены для архитектур amd64, aarch64, armv7, powerpc64, powerpc64le и riscv64. Дополнительно поставляются сборки для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Vagrant. Выпуск FreeBSD 15.1 будет поддерживаться до апреля 2027 года, а обновления для ветки 15.x будут выпускаться до 31 декабря 2029 года.
اہم تبدیلیاں:
- Драйверы беспроводных устройств rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) и iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) синхронизированы с ядром Linux 7.0.
- В ядре реализован фреймворк для выбора планировщика задач. В конфигурации ядра на системах amd64 в дополнение к используемому по умолчанию планировщику SCHED_ULE активирована сборка классического планировщика задач SCHED_4BSD. Для выбора планировщика задач во время загрузки добавлен sysctl-параметр kern.sched.
- Проведена работа по обеспечению поддержки стандарта C23 в кодовой базе для сборки компиляторами в режиме C23. Полная поддержка C23 ожидается в ветке FreeBSD 16. В новом стандарте добавлены константы nullptr, тип _BitInt(n) и ключевые слова bool, true и false, которые могли конфликтовать с заданными в старом коде одноимёнными идентификаторами. Поддержка C23 позволит использовать в коде FreeBSD новые возможности языка, такие как заголовочный файл stdbit.h, функция memalignment(), обновлённые limits.h и stdint.h с макросом _WIDTH и типом char8_t.
- В пакетном фильтре ipfw реализована возможность задания произвольных масок в таблицах (lookup table), позволяющих игнорировать любые сочетания битов в ключах и элементах таблицы, например, можно использовать непоследовательные маски IP-адресов, такие как «lookup src-ip4:255.255.253.255». Удалён код для совместимости с версиями пакетного фильтра ipfw, поставлявшимися до выпуска FreeBSD 8.
- Разрешено направление IPv6-пакетов в divert-сокеты, в которых ранее допускалась работа только с IPv4. В команду ifconfig добавлен флаг ‘stableaddr’ для генерации стабильных IPv6-адресов, неизменных для каждой подсети (Stateless Address Autoconfiguration, RFC 7217).
- Командная оболочка по умолчанию для пользователей «root» и «freebsd» заменена с csh на sh.
- Добавлена утилита setaudit для управления политиками системного аудита.
- В утилиту find добавлены опции «-xattr» и «-xattrname» для поиска файлов с учётом расширенных атрибутов файлов.
- В утилиту newfs добавлена опция «-u» для отключения механизма soft updates и журналирования для UFS2.
- Убрана по умолчанию утилита ipfs, применявшаяся для сохранения и восстановления таблиц трансляции адресов, и отключена необходимая для её работы функциональность в ядре (можно вернуть в настройках сборки).
- В скрипте bsdinstall включена по умолчанию установка pkgbase с компонентами, указанными в переменной COMPONENTS. Старый метод установки на базе distset остаётся доступен, если определена переменная DISTRIBUTIONS.
- В стандартные библиотеки добавлены функции tdestroy,
strdupa,
strndupa,
posix_spawnattr_getexecfd_np,
posix_spawnattr_setexecfd_np,
pthread_tryjoin_np.
В функциях memcpy, memmove и memset на системах AArch64 задействованы оптимизации на базе инструкций MOPS (Memory Operations). - Добавлена библиотека libuvmem с реализаций механизма распределения памяти vmem, работающего в пользовательском пространстве и представляющего совместимый с vmem API для приложений.
- В образы для виртуальных машин и облачных систем включён пакетный менеджер pkg и реализована поддержка атомарного обновления пакета с базовой системой при первой загрузке.
- В конфигурацию ядра MINIMAL включён драйвер virtio_scsi, позволяющий загружать систему в виртуальных машинах на базе qemu/kvm.
- Реализованы системные вызовы pdwait и pdfork для нового механизма создания и завершения процессов, использующего дескрипторы процессов.
- В прослойку для совместимости с Linux добавлен fcntl F_DUPFD_QUERY, использующий kcmp KCMP_FILE для проверки файлового дескриптора в Linux-کنٹینرز
- Включена сборка драйвера iwx для беспроводных адаптеров Intel AX210/AX211/AX411 с поддержкой Wi-Fi 6E и Wi-Fi 7.
- Обновлены драйверы. Добавлена поддержка сетевых адаптеров Intel E835-XXV-4 и Intel E835 Ethernet, RAID-контроллеров, используемых в серверах Fujitsu PRIMERGY, а также NVMe-накопителей, применяемых в Google Compute Engine C4. Улучшена поддержка плат Raspberry Pi. Добавлена поддержка счётчиков отслеживания производительности (hwpmc), предоставляемых в CPU Intel Alder Lake, Alder Lake-N и Emerald Rapids.
- Драйвер hid настроен для предоставления доступа пользователям группы game, что позволяет обращаться к игровым контроллерам без повышения привилегий, используя библиотеки, подобные libsdl.
- В утилите mt обеспечена совместимость с ленточными накопителями, поддерживающими стандарты LTO-10 и LTO-10P (Linear Tape-Open Generation 10) .
- В команду «zpool prefetch» добавлена поддержка метаданных BRT (Block Reference Table), повышающих производительность клонирования и освобождения блоков.
- В клиент NFS добавлена поддержка экспортирования через NFS файловых систем, не учитывающих регистр символов в именах файлов и каталогов.
При бездисковой загрузке через NFSv4 реализована поддержка монтирования NFS-раздела в качестве корневой ФС и маппинга имён или идентификаторов пользователей через nfsuserd. Добавлена начальная поддержка расширения к NFSv4.2 с POSIX ACL. В сервер и клиент NFSv4 добавлена поддержка атрибута архивирования (UF_ARCHIVE), используемого в NFS-клиенте Windows. - В интерфейс splash добавлена возможность задания заставки в формате PNG, показываемой при завершении работы системы.
- Добавлен sysctl net.inet.ipf.jail_allowed, позволяющий привязать к Jail-окружению собственный набор настроек и правил пакетного фильтра ipfilter.
- Добавлен sysctl allow.vmm_ppt для проброса доступа к PCI-устройствам в изолированные окружения на базе гипервизора bhyve.
- В GPU-драйвере на базе virtio реализована поддержка виртуальных окружений на базе Parallels Desktop.
- Добавлена поддержка регистров FGT (Fine-Grained Trap), механизма Extended Destination ID и инструкций MOPS (Memory Operations), расширяющих возможности виртуализации и повышающих производительность на системах ARM64. Добавлена поддержка ARM64-расширения LASS (Linear Address Space Separation) для усиления изоляции между ядром и пространством пользователя.
- В реализацию фреймбуфера гипервизора bhyve добавлена поддержка UNIX-сокетов, позволяющих пробросить графическую консоль в Jail-ы не по сети.
- Обновлены версии OpenZFS 2.4.2, OpenSSL 3.5.6, NSS 3.123.1, xz 5.8.3, tcpdump 4.99.6, zlib 1.3.2, zstd 1.5.7, blocklistd 2026-02-07, ncurses 6.6, bsddialog 1.0.5, bmake 20251111, SQLite 3.50.4, unbound 1.25.1, MIT Kerberos 1.22.2, Heimdal Kerberos 1.22.2.
- Консольный шрифт spleen обновлён до версии 2.2.0 и расширен дополнительными символами (длинное тире, короткое тире, дефис, угловые скобки, белый квадрат, крест и двойной крест). Улучшено выравнивание символов на экранах с высокой плотностью пикселей. Таблицы символов Unicode обновлены до версии 17.0.0, в которой добавлено 4803 символа.
- Подсистема blacklist переименована в blocklist с фоновым процессом blocklistd. Старые настройки в rc-скриптах и правилах пакетного фильтра продолжают действовать, но приводят к выводу предупреждения.
- Инструментарий OpenPAM перемещён в новый пакет FreeBSD-pam, а библиотека Zstandard и утилита zstd в пакет FreeBSD-zstd.
- На системах, установленных через пакеты freebsd-base, заблокирован вызов сборочных сценариев installworld и installkernel для избежания рассогласования состояния системы с пакетами.
- Прекращено формирование сборок в формате OCI (Oracle Cloud Infrastructure).
- Объявлены устаревшими и будут удалены в ветке FreeBSD 16 утилиты fdisk, bsdlabel, lpr, lpd, lpc, lpq, lprm, lp, pac, lptest и chkprintcap. Для работы с дисковыми разделами вместо fdisk и bsdlabel рекомендуется использовать gpart или bsdinstall, а для организации вывода на печать следует задействовать порт print/cups или sysutils/LPRng. В FreeBSD 16 также намерены удалить sysctls hw.ata.rotating и hw.ata.unmapped_io, и драйверы hifn (криптоускорители Hifn 7751/7951/7811/7955/7956), safe (криптоускорители SafeNet SafeXcel 1141/1741), le (AMD Am7900 LANCE and Am79C9xx ILACC/PCnet Etherne), fdc (floppy disk controller) и agp (Accelerated Graphics Port).
ماخذ: opennet.ru
