Релиз 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
© OpenNet
