Представлен первый альфа‑выпуск FreeBSD 15.0. Установочные сборки проекта сформированы для архитектур amd64, powerpc64le, aarch64 и riscv64. Релиз запланирован на 2 декабря. Обновление до ветки 15.0-ALPHA1 с прошлых выпусков при помощи утилиты freebsd‑update пока не реализовано.
Начиная с ветки FreeBSD 15, время сопровождения значительных веток после формирования первого релиза (15.0) сокращено с 5 до 4 лет, а новые значительные ветки будут формироваться раз в два года. Промежуточные выпуски (15.1, 15.2, 15.3) будут разрабатываться в рамках фиксированного цикла разработки, подразумевающего публикацию новых версий в одной ветке примерно через каждые 6 месяцев, а не раз в год как было до сих пор.
С учётом одновременного сопровождения двух разных значительных веток, новый промежуточный выпуск FreeBSD будет публиковаться раз в 3 месяца (15.4, 16.1, 15.5, 16.2), за исключением подготовки первых релизов новых значительных веток, перед которыми будет 6-месячный перерыв в релизах (например, релиз 15.3 будет сформирован в июне 2027 года, 16.0 в декабре 2027, 15.4 — в марте 2028, 16.1 — в июне 2028).
По информации OpenNET, в официальном анонсе альфа‑версии FreeBSD 15 присутствует ссылка на примечание к релизу (копия) с некорректным списком изменений. Упомянутый список лишён смысла, так как содержит не специфичные для ветки FreeBSD 15 изменения, а изменения в ветке 14.x относительно выпуска 14.0, т. е. в него помещены старые данные, перенесённые из ранее опубликованных примечаний к релизам 14.1, 14.2 и 14.3.
Список части изменений в ветке FreeBSD 15, отмеченные в Git:
прекращено формирование установочных образов и сборок бинарных пакетов для 32-разрядных архитектур. Возможность сборки 32-разрядных программ и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в окружении на базе 64-разрядного ядра сохранится как минимум до конца жизненного цикла ветки FreeBSD 16;
удалён менеджер логических томов gvinum, который использовался для программных RAID. Разработка Gvinum остановилась около 15 лет назад, при том, что в коде имеется ряд известных проблем, которые никто так и не взялся исправить. Вместо gvinum рекомендовано использовать gconcat, gmirror, gstripe, graid или zfs;
намечен к удалению драйвер agp (Accelerated Graphics Port), необходимый для работы многих драйверов для старых видеокарт;
состояние DRM‑драйверов i915 и amdgpu синхронизировано с ядром Linux 6.9;
добавлена поддержка именованных атрибутов файлов (расширенных атрибутов в стиле Solaris), которые планируют поддерживать в качестве альтернативного механизма управления расширенными атрибутами, доступного для ZFS и NFSv4. Отличия от традиционных для FreeBSD и Linux методов работы с расширенными атрибутами сводится к представлению атрибутов в служебной директории, не видимой в основном пространстве имён ФС и ассоциированной с файлом. Работа с атрибутами производится как с обычными файлами, например, для определения списка атрибутов можно выполнить функцию readdir();
реализованы системные вызовы c реализацией механизма inotify для отслеживания изменений в файловых системах;
добавлена утилита sndctl для управления настройками звуковых карт;
добавлена утилита mididump для дампа событий MIDI 1.0 в режиме реального времени;
объявлен готовым к применению модуль mac_do, позволяющий задавать политики, разрешающие непривилегированным пользователям изменять учётные данные процессов. Для запуска команд под другим пользователем подготовлена утилита mdo похожая на утилиту su, но не требующая suid root;
включена по умолчанию реализация протокола TLS на стороне ядра (KTLS);
в гипервизор bhyve добавлен новый сетевой бэкенд «slirp», использующий библиотеку libslirp с реализацией сетевого стека в пространстве пользователя. Бэкенд «slirp» позволяет организовать доступ к сети гостевой системы из хост окружения без отдельной настройки сети на стороне хоста;
поведение системных вызовов setgroups, getgroups и initgroups при обработке групп пользователей приближено к другим платформам (отличие реализации во FreeBSD сводилось к хранению эффективного идентификатора группы процессов в нулевом элементе массива со списком групп);
реализация Kerberos в основном составе FreeBSD заменена c Heimdal Kerberos на MIT Kerberos. Для возвращения Heimdal Kerberos при сборке можно использовать флаг WITHOUT_MITKRB5. Во FreeBSD 16 поддержка сборки Heimdal Kerberos будет удалена;
в NFS добавлена поддержка операции CLONE, определённой в спецификации NFSv4.2 и позволяющей организовать быстрое копирование файлов через клонирование блоков на сервере. Режим пока работает только при экспорте через NFS разделов ZFS;
повышена надёжность работы разделов с ФС UFS, содержащих более 2 000 000 000 inode;
на системах amd64 добавлена возможность использования более 4TB ОЗУ.
объявлена устаревшей функция readdir_r;
в SNMP‑сервере bsnmpd прекращена поддержка транспорта UDP;
добавлен драйвер ufshci для поддержки контроллеров систем хранения с интерфейсом UFSHCI (Universal Flash Storage Host Controller Interface);
по умолчанию отключена и объявлена устаревшей настройка net.inet.tcp.nolocaltimewait, т. е. возвращено с��здание по умолчанию TIME_WAIT‑записей для TCP‑соединений, разорванных на стороне локальной системы. Для настройки времени нахождения соединения в состоянии TIME_WAIT добавлен новый sysctl net.inet.tcp.msl_local;
по умолчанию отключена поддержка создания сетевых соединений к localhost, указывая INADDR_ANY. Для возвращения поддержки можно выставить sysctl net.inet.ip.connect_inaddr_wild sysctl в значение 1;
Sysctl net.link.bridge.member_ifaddrs по умолчанию выставлен в 0, т. е. в сетевые мосты можно добавлять интерфейсы без IP‑адресов;
в реализации ФС UFS1 решена проблема 2038 года (можно использовать даты до 2106 года);
прекращена генерация хостовых ключей RSA для SSH и EC2 AMI;
Добавлена опция сетевых сокетов SO_SPLICE для объединения TCP‑соединений (подобие прокси, работающего без копирования данных в пространство пользователя);
в утилите grep по умолчанию отключён обход символических ссылок при рекурсивном поиске;
добавлен модуль ядра nvmftа для поддержки контроллеров NVMe over Fabric и утилита nvmecontrol для подключения к внешнему контроллеру NVMe over Fabric;
в утилиту date добавлена поддержка вывода времени с наносекундной точностью, например, «date ‑Ins» выведет «2024-04-22T12:20:28,763742224+02:00»;
в jail добавлена поддержка опции zfs.dataset для добавления в изолированное jail‑окружение раздела, снапшота или клона ZFS;
в tty по умолчанию выставлен флаг IUTF8, при котором корректно работает удаление символов UTF-8 при нажатии Backspace;
утилита dialog заменена на bsddialog;
обновлены версии Lua 5.4.8, jemalloc 5.3.0, Awk 04082025, unicode 16.0.0, CLDR 45.0.0, byacc 20240109, ncurses 6.5.
Выпуск FreeBSD 14.0 произошёл в ноябре 2023 года. Согласно пояснению команды разработчиков, ветка FreeBSD 14.x станет последней с поддержкой 32-разрядных платформ. В следующей версии FreeBSD 15.x (первый релиз в конце 2025 года) будет доступна поддержка только 64-разрядных систем, но при этом сохранится возможность сборки 32-разрядных приложений и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в 64-разрядном окружении.
Источник: habr.com