Релиз FreeBSD 15.1
После шести месяцев разработки сформирован релиз 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).
Источник: http://www.opennet.ru/opennews/art.shtml? num=65697
© OpenNet
