Подготовлен первый альфа-выпуск 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 месяцев, а не раз в год как было до сих пор. C учётом одновременного сопровождения двух разных значительных веток, новый промежуточный выпуск будет публиковаться раз в 3 месяца (15.4, 16.1, 15.5, 16.2 и т.п.), за исключением подготовки первых релизов новых значительных веток, перед которыми будет 6-месячный перерыв в релизах (например, релиз 15.3 будет сформирован в июне 2027 года, 16.0 в декабре 2027, 15.4 – в марте 2028, 16.1 – в июне 2028).
Среди изменений во FreeBSD 15:
- Прекращено формирование установочных образов и сборок бинарных пакетов для 32-разрядных архитектур. Возможность сборки 32-разрядных программ и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в окружении на базе 64-разрядного ядра сохранится как минимум до конца жизненного цикла ветки FreeBSD 16.
- Удалён менеджер логических томов gvinum, который использовался для программных RAID. Разработка Gvinum остановилась около 15 лет назад, при том, что в коде имеется ряд известных проблем, которые никто так и не взялся исправить. Вместо gvinum рекомендовано использовать gconcat, gmirror, gstripe, graid или zfs.
- Намечен к удалению драйвер agp (Accelerated Graphics Port), необходимый для работы многих драйверов для старых видеокарт.
- Поведение системных вызовов setgroups, getgroups и initgroups при обработке групп пользователей приближено к другим платформам (отличие реализации во FreeBSD сводилось к хранению эффективного идентификатора группы процессов в нулевом элементе массива со списком групп).
- Состояние DRM-драйверов i915 и amdgpu синхронизировано с ядром Linux 6.9.
- Добавлена поддержка именованных атрибутов файлов (расширенных атрибутов в стиле Solaris), которые планируют поддерживать в качестве альтернативного механизма управления расширенными атрибутами, доступного для ZFS и NFSv4. Отличия от традиционных для FreeBSD и Linux методов работы с расширенными атрибутами сводится к представлению атрибутов в служебной директории, не видимой в основном пространстве имён ФС и ассоциированной с файлом. Работа с атрибутами производится как с обычными файлами, например, для определения списка атрибутов можно выполнить функцию readdir().
- Реализация 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).
- Реализованы системные вызовы c реализацией механизма inotify для отслеживания изменений в файловых системах.
- По умолчанию отключена и объявлена устаревшей настройка 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-адресов.
- Добавлена утилита sndctl для управления настройками звуковых карт.
- Добавлена утилита mididump для дампа событий MIDI 1.0 в режиме реального времени .
- Объявлен готовым к применению модуль mac_do, позволяющий задавать политики, разрешающие непривилегированным пользователям изменять учётные данные процессов. Для запуска команд под другим пользователем подготовлена утилита mdo похожая на утилиту su, но не требующая suid root.
- В реализации ФС UFS1 решена проблема 2038 года (можно использовать даты до 2106 года).
- Включена по умолчанию реализация протокола TLS на стороне ядра (KTLS).
- Прекращена генерация хостовых ключей 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 добавление в изолированное окружение ZFS dataset (раздела, снапшота или клона).
- В гипервизор bhyve добавлен новый сетевой бэкенд “slirp”, использующий библиотеку libslirp с реализацией сетевого стека в пространстве пользователя. Бэкенд “slirp” позволяет настроить доступ к сети гостевой системы из хост окружения без отдельной настройки сети на стороне хоста.
- В 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 15 опубликовано примечание к релизу (копия) со списком изменений, но пока данный список лишён смысла, так содержит не специфичные для ветки FreeBSD 15 изменения, а изменения в ветке 14.x относительно выпуска 14.0, т.е. в него помещены старые данные, перенесённые из ранее опубликованных примечаний к релизам 14.1, 14.2 и 14.3.