Релиз FreeBSD 15.0

После двух лет с момента публикации ветки 14.0 сформирован релиз FreeBSD 15.0. Установочные сборки подготовлены для архитектур amd64, aarch64, armv7, powerpc64, powerpc64le и riscv64. Дополнительно поставляются сборки для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Vagrant.

Начиная с ветки 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.0:

  • Предоставлена возможность использования пакетного менеджера pkg для установки и обновления компонентов базовой системы. Пакеты pkgbase могут поставляться на установочном носителе для offline-установки или загружаться из репозитория pkg.freebsd.org. Инсталлятор bsdinstall теперь предлагает два варианта установки: традиционный и с использованием пакетов (pkgbase). Поддержку традиционного способа, при котором базовая система рассматривается как монолитное окружение, обновляемое при помощи утилиты freebsd-update, планируют удалить в ветке FreeBSD 16. Новый метод, подразумевающий установку базовой системы как набора пакетов из репозитория FreeBSD-base, предложен по умолчанию в сборках для виртуальных машин и образов для облачных окружений, но пока рассматривается как экспериментальный для обычных систем.
  • Добавлена поддержка сборки FreeBSD в непривилегированных окружениях, не требующих наличия прав root. Без прав root также могут создаваться установочные iso-образы и системные образы для виртуальных машин. На этапе сборки права root были необходимы для создания файлов устройств, выставления прав доступа и монтирования дополнительных файловых систем (например, при создании дисковых образов).
  • Реализована поддержка воспроизводимых сборок, позволяющих убедиться, что распространяемые бинарные файлы собраны из предоставляемого исходного кода и не содержат скрытых изменений.
    Воспроизводимые сборки обеспечивают идентичность бинарных файлов, формируемых из исходного кода в разных сборочных окружениях.

  • Прекращено формирование установочных образов и сборок бинарных пакетов для 32-разрядных архитектур. Возможность сборки 32-разрядных программ и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в окружении на базе 64-разрядного ядра сохранится как минимум до конца жизненного цикла ветки FreeBSD 16.
  • Добавлены системные вызовы c реализацией механизма inotify для отслеживания изменений в файловых системах.
  • Добавлена поддержка именованных атрибутов файлов (расширенных атрибутов в стиле Solaris), которые планируют поддерживать в качестве альтернативного механизма управления расширенными атрибутами, доступного для ZFS и NFSv4. Отличия от традиционных для FreeBSD и Linux методов работы с расширенными атрибутами сводится к представлению атрибутов в служебной директории, не видимой в основном пространстве имён ФС и ассоциированной с файлом. Работа с атрибутами производится как с обычными файлами, например, для определения списка атрибутов можно выполнить функцию readdir().
  • Объявлен готовым к применению модуль mac_do, позволяющий задавать политики, разрешающие непривилегированным пользователям изменять учётные данные процессов. Для запуска команд под другим пользователем подготовлена утилита mdo похожая на утилиту su, но не требующая suid root.
  • Состояние DRM-драйверов i915 и amdgpu синхронизировано с ядром Linux 6.9. Драйверы беспроводных устройств rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax)
    и iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) синхронизированы с ядром Linux 6.17.

  • Включена по умолчанию реализация протокола TLS на стороне ядра (KTLS).
  • Добавлена утилита sndctl для управления настройками звуковых карт.
  • Добавлена утилита mididump для дампа событий MIDI 1.0 в режиме реального времени.
  • В гипервизор bhyve добавлен новый сетевой бэкенд «slirp», использующий библиотеку libslirp с реализацией сетевого стека в пространстве пользователя. Бэкенд «slirp» позволяет организовать доступ к сети гостевой системы из хост окружения без отдельной настройки сети на стороне хоста.

  • Реализация Kerberos в основном составе FreeBSD заменена c Heimdal Kerberos на MIT Kerberos. Для возвращения Heimdal Kerberos при сборке можно использовать флаг WITHOUT_MITKRB5. Во FreeBSD 16 поддержка сборки Heimdal Kerberos будет удалена.
  • Поведение системных вызовов setgroups, getgroups и initgroups при обработке групп пользователей приближено к другим платформам (отличие реализации во FreeBSD сводилось к хранению эффективного идентификатора группы процессов в нулевом элементе массива со списком групп).
  • В настройках пакетного менеджера pkg включён по умолчанию новый репозиторий FreeBSD-kmods, в котором размещены пакеты с модулями ядра, собранными для конкретных релизных веток 15.x-RELEASE, а не постоянно обновляемой ветки 15-STABLE. Репозиторий FreeBSD-kmods решает проблему с установкой драйверов, завязанных на нестабильные интерфейсы ядра (например, графические драйверы). Ранее присутствующие в /etc/pkg/FreeBSD.conf репозитории «FreeBSD» и «FreeBSD-kmods» переименованы в «FreeBSD-ports» и «FreeBSD-ports-kmods».
  • В NFS добавлена поддержка операции CLONE, определённой в спецификации NFSv4.2 и позволяющей организовать быстрое копирование файлов через клонирование блоков на сервере. Режим пока работает только при экспорте через NFS разделов ZFS.
  • Повышена надёжность работы разделов с ФС UFS, содержащих более 2,000,000,000 inode.
  • На системах amd64 добавлена возможность использования более 4TB ОЗУ.
  • Добавлен драйвер ufshci для поддержки контроллеров систем хранения с интерфейсом UFSHCI (Universal Flash Storage Host Controller Interface).
  • Sysctl net.link.bridge.member_ifaddrs по умолчанию выставлен в 0, т.е. в сетевые мосты можно добавлять интерфейсы без IP-адресов.
  • В реализации ФС UFS1 решена проблема 2038 года (можно использовать даты до 2106 года).
  • Добавлена опция сетевых сокетов 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.

  • По умолчанию отключена и объявлена устаревшей настройка 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.
  • Удалён менеджер логических томов gvinum, который использовался для программных RAID. Разработка Gvinum остановилась около 15 лет назад, при том, что в коде имеется ряд известных проблем, которые никто так и не взялся исправить. Вместо gvinum рекомендовано использовать gconcat, gmirror, gstripe, graid или zfs.
  • Намечен к удалению во FreeBSD 16 драйвер agp (Accelerated Graphics Port), необходимый для работы многих драйверов для старых видеокарт.
  • Объявлена устаревшей функция readdir_r.
  • В SNMP-сервере bsnmpd прекращена поддержка транспорта UDP.
  • Прекращена генерация хостовых ключей RSA для SSH и EC2 AMI.
  • Обновлены версии 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.

Источник: http://www.opennet.ru/opennews/art.shtml?num=64358