FreeBSD The Power to Serve

FreeBSD 15.0-RELEASE Информация о релизе

Аннотация

Информация о релизе FreeBSD 15.0-RELEASE содержит сводку изменений, внесённых в базовую систему FreeBSD на линии разработки 15-STABLE. Этот документ перечисляет применимые рекомендации по безопасности, выпущенные с момента последнего релиза, а также значительные изменения в ядре FreeBSD и пользовательском пространстве. Также представлены некоторые краткие замечания по обновлению.

Table of Contents

Введение

Этот документ содержит информацию о релизе FreeBSD 15.0-RELEASE. В нем описаны недавно добавленные, измененные или удаленные функции FreeBSD. Также представлены некоторые замечания по обновлению с предыдущих версий FreeBSD.

Дистрибутив "release", к которому относится эта информация о релизе, представляет собой последнюю точку на ветке разработки 15-STABLE между 14.0-RELEASE и будущим 15.1-RELEASE. Информацию о предварительно собранных, бинарных дистрибутивах "release" на этой ветке можно найти на https://www.FreeBSD.org/releases/. Дополнительную информацию о получении этого (или другого) дистрибутива "release" FreeBSD можно найти в приложении по получению FreeBSD к руководству FreeBSD.

Всем пользователям рекомендуется ознакомиться с исправлениями и дополнениями релиза перед установкой FreeBSD. Документ с исправлениями и дополнениями обновляется «последней информацией», обнаруженной в конце цикла выпуска или после выпуска. Обычно он содержит информацию об известных ошибках, уведомлениях о безопасности и исправлениях в документации. Актуальную копию исправлений и дополнений для FreeBSD 15.0-RELEASE можно найти на веб-сайте FreeBSD.

В этом документе описаны наиболее заметные для пользователя новые или измененные функции в FreeBSD после 14.0-RELEASE. Как правило, описанные здесь изменения уникальны для ветки 15-STABLE, если они не отмечены специально как функции MERGED.

Обычные пункты информации о релизе документируют недавние уведомления о безопасности, выпущенные после 14.0-RELEASE, новые драйверы или поддержку оборудования, новые команды или опции, основные исправления ошибок или обновления предоставленного программного обеспечения. Также могут перечисляться изменения в основных портах/пакетах или практиках инженерии выпуска. Очевидно, что информация о релизе не может перечислить каждое изменение, внесенное в FreeBSD между выпусками; этот документ в основном фокусируется на уведомлениях о безопасности, изменениях, заметных для пользователя, и основных архитектурных улучшениях.

Обновление с предыдущих выпусков FreeBSD

Бинарные обновления между версиями RELEASE (и снимками различных веток безопасности) поддерживаются с помощью утилиты freebsd-update(8). См. процедуру обновления для конкретного релиза, информацию об обновлении FreeBSD 15.0-RELEASE, с более подробной информацией в руководстве FreeBSD процедуре бинарного обновления. Это обновит неизмененные пользовательские утилиты, а также неизмененные ядра GENERIC, распространяемые как часть официального выпуска FreeBSD. Утилита freebsd-update(8) требует, чтобы обновляемый хост имел подключение к Интернету.

Обновления на основе исходного кода (основанные на перекомпиляции базовой системы FreeBSD из исходного кода) с предыдущих версий поддерживаются в соответствии с инструкциями в /usr/src/UPDATING.

Попытку обновления FreeBSD следует предпринимать только после резервного копирования всех данных и файлов конфигурации.

Обновление с существующих предрелизных установок пакетов базовой системы

Для пользователей PRERELEASE, ALPHA и BETA сборок FreeBSD 15.0, из-за последних изменений в инфраструктуре FreeBSD.org, невозможно выполнить прямое обновление с помощью утилиты pkg-upgrade(8).

Пользователи должны либо вручную скопировать необходимые файлы из исходного дерева с тегом 15.0-RELEASE или более позднего коммита в ветках STABLE или CURRENT, либо принудительно установить пакет FreeBSD-pkg-bootstrap из официальных пакетов базовой системы релиза.

Рекомендуемый и наиболее безопасный подход — использование исходного дерева любой из веток head, stable/15 или releng/15.0 после 2025-11-27 22:00 UTC.

# cp /usr/src/usr.sbin/pkg/FreeBSD.conf.quarterly-release \
       /etc/pkg/FreeBSD.conf
# cp -R /usr/src/share/keys/pkgbase-15 /usr/share/keys/pkgbase-15

Пользователи, у которых нет установленных актуальных исходных кодов, могут использовать менее безопасный, но более простой подход, проверяя контрольные суммы после установки. Поскольку это архитектурно-независимые файлы, контрольные суммы будут совпадать на всех платформах.

# pkg add -f https://pkg.freebsd.org/FreeBSD:15:$(uname -p)/base_release_0/FreeBSD-pkg-bootstrap-15.0.pkg
# sha256 -r /etc/pkg/FreeBSD.conf /usr/share/keys/pkg/trusted/pkg.freebsd.org.2013102301 \
  /usr/share/keys/pkgbase-15/trusted/awskms-15 /usr/share/keys/pkgbase-15/trusted/backup-signing-15
ab261a3b84ffc11654ac0bafbb7d6b3f1b6afc30bfabab3bcff64259678eac26 /etc/pkg/FreeBSD.conf
036ae4f9c441a3febb41734bbb37227ec3374edd3c6c687e5cb70d580efbea30 /usr/share/keys/pkg/trusted/pkg.freebsd.org.2013102301
529c79e85a6ca152faa9d57ead85fe0111ffada8d0a0fa2f11fc510999fa50df /usr/share/keys/pkgbase-15/trusted/awskms-15
c368ec8d05654bdaad34742c1d75b9b150bfc3892838cef32f6e5b036b0c0605 /usr/share/keys/pkgbase-15/trusted/backup-signing-15

Попытку обновления FreeBSD следует предпринимать только после резервного копирования всех данных и файлов конфигурации.

Включенные исправления безопасности и патчи

В этом разделе перечислены различные уведомления о безопасности и исправления, выпущенные после 14.0-RELEASE, которые были устранены в 15.0-RELEASE.

Бюллетени безопасности (ошибки исправлены)

Бюллетень Дата Тема

FreeBSD-SA-23:17.pf

5 декабря 2023 г.

Уязвимость подмены TCP в pf(4)

FreeBSD-SA-23:18.nfsclient

12 декабря 2023 г.

Повреждение данных клиента NFS и раскрытие памяти ядра

FreeBSD-SA-23:19.openssh

19 декабря 2023 г.

Атака усечения префикса в протоколе SSH

FreeBSD-SA-24:01.bhyveload

14 февраля 2024 г.

Доступ bhyveload(8) к файлам хоста

FreeBSD-SA-24:02.tty

14 февраля 2024 г.

Утечка информации jail(2)

FreeBSD-SA-24:03.unbound

28 марта 2024 г.

Множественные уязвимости в unbound

FreeBSD-SA-24:04.openssh

1 июля 2024 г.

Удаленное выполнение кода в OpenSSH до аутентификации

FreeBSD-SA-24:05.pf

7 августа 2024 г.

pf некорректно сопоставляет различные состояния ICMPv6 в таблице состояний

FreeBSD-SA-24:06.ktrace

7 августа 2024 г.

ktrace(2) не отключается при выполнении setuid-бинарника

FreeBSD-SA-24:07.nfsclient

7 августа 2024 г.

Клиент NFS принимает имена файлов, содержащие разделители пути

FreeBSD-SA-24:08.openssh

7 августа 2024 г.

Проблема безопасности асинхронных сигналов в OpenSSH до аутентификации

FreeBSD-SA-24:09.libnv

4 сентября 2024 г.

Множественные уязвимости в libnv

FreeBSD-SA-24:10.bhyve

4 сентября 2024 г.

Привилегированный выход гостя из bhyve(8) через проброс устройства TPM

FreeBSD-SA-24:11.ctl

4 сентября 2024 г.

Множественные проблемы в ctl(4) CAM Target Layer

FreeBSD-SA-24:12.bhyve

4 сентября 2024 г.

Привилегированный выход гостя из bhyve(8) через контроллер USB

FreeBSD-SA-24:13.openssl

4 сентября 2024 г.

Возможная DoS при проверке имен X.509 в OpenSSL

FreeBSD-SA-24:14.umtx

4 сентября 2024 г.

Паника ядра или Use-After-Free в umtx

FreeBSD-SA-24:15.bhyve

19 сентября 2024 г.

Чтение за пределами допустимого диапазона в bhyve(8) через эмуляцию XHCI

FreeBSD-SA-24:16.libnv

19 сентября 2024 г.

Переполнение целого числа в libnv

FreeBSD-SA-24:17.bhyve

29 октября 2024 г.

Множественные проблемы в гипервизоре bhyve

FreeBSD-SA-24:18.ctl

29 октября 2024 г.

Неограниченное выделение памяти в ctl(4) CAM Target Layer

FreeBSD-SA-24:19.fetch

29 октября 2024 г.

Опция fetch(1) для списка отзыва сертификатов не работает

FreeBSD-SA-25:01.openssh

29 января 2025 г.

Обход маскировки нажатий клавиш в OpenSSH

FreeBSD-SA-25:02.fs

29 января 2025 г.

Переполнение буфера в некоторых файловых системах через NFS

FreeBSD-SA-25:03.etcupdate

29 января 2025 г.

Непривилегированный доступ к системным файлам

FreeBSD-SA-25:04.ktrace

29 января 2025 г.

Раскрытие неинициализированной памяти ядра через ktrace(2)

FreeBSD-SA-25:05.openssh

21 февраля 2025 г.

Множественные уязвимости в OpenSSH

FreeBSD-SA-25:06.xz

2 июля 2025 г.

Использование после освобождения в многопоточном декодере xz

FreeBSD-SA-25:07.libarchive

8 августа 2025 г.

Переполнение целого числа в libarchive, приводящее к двойному освобождению памяти

FreeBSD-SA-25:08.openssl

30 сентября 2025 г.

Множественные уязвимости в OpenSSL

FreeBSD-SA-25:09.netinet

22 октября 2025 г.

SO_REUSEPORT_LB нарушает работу connect(2) для UDP-сокетов

FreeBSD-SA-25:10.unbound

26 ноября 2025 г.

Отравление кеша в службе local-unbound

Уведомления об ошибках (ошибки исправлены)

Исправление Дата Тема

FreeBSD-EN-23:15:sanitizer

1 декабря 2023 г.

Сбой санитайзера Clang при включенном ASLR

FreeBSD-EN-23:16:openzfs

1 декабря 2023 г.

Повреждение данных OpenZFS

FreeBSD-EN-23:17:ossl

5 декабря 2023 г.

Реализация AES-GCM в ossl(4) может давать некорректные результаты

FreeBSD-EN-23:18:openzfs

5 декабря 2023 г.

Высокая загрузка ЦП потоками ядра ZFS

FreeBSD-EN-23:19:pkgbase

5 декабря 2023 г.

Некорректный номер версии pkgbase для FreeBSD 14.0-RELEASE.

FreeBSD-EN-23:20:vm

5 декабря 2023 г.

Некорректные результаты от распределителя физической памяти ядра

FreeBSD-EN-23:21:tty

24 ноября 2023 г.

tty(4) IUTF8 вызывает панику ядра

FreeBSD-EN-23:22:vfs

5 декабря 2023 г.

Каталоги снимков ZFS недоступны по NFS

FreeBSD-EN-24:01:tzdata

14 февраля 2024 г.

Обновление информации базы данных часовых поясов

FreeBSD-EN-24:02:libutil

14 февраля 2024 г.

Обход ограничений ресурсов класса входа и маски ЦП

FreeBSD-EN-24:03:kqueue

14 февраля 2024 г.

Ошибка страницы в kqueue_close(2) при выходе с использованием rfork(2)

FreeBSD-EN-24:04:ip

14 февраля 2024 г.

Паника ядра, вызванная bind(2)

FreeBSD-EN-24:05:tty

28 марта 2024 г.

Паника ядра TTY

FreeBSD-EN-24:06:wireguard

28 марта 2024 г.

Недостаточные барьеры в WireGuard if_wg(4)

FreeBSD-EN-24:07:clang

28 марта 2024 г.

Аварийное завершение Clang при включении определенной оптимизации

FreeBSD-EN-24:08:kerberos

28 марта 2024 г.

Segfault в Kerberos при использовании слабой криптографии

FreeBSD-EN-24:09:zfs

24 апреля 2024 г.

Высокая загрузка ЦП потоками ядра, связанными с ZFS

FreeBSD-EN-24:10:zfs

19 июня 2024 г.

Утечка памяти ядра в ZFS

FreeBSD-EN-24:11:ldns

19 июня 2024 г.

LDNS использует серверы имен, закомментированные в resolv.conf

FreeBSD-EN-24:12:killpg

19 июня 2024 г.

Инверсия порядка блокировок в killpg, вызывающая взаимную блокировку

FreeBSD-EN-24:13:libc++

19 июня 2024 г.

Некорректный размер, передаваемый при удалении std::string, выделенного в куче

FreeBSD-EN-24:14:ifconfig

7 августа 2024 г.

Некорректное назначение маски сети в ifconfig

FreeBSD-EN-24:15:calendar

4 сентября 2024 г.

Вход в сеанс cron(8) / periodic(8)

FreeBSD-EN-24:16:pf

19 сентября 2024 г.

Некорректная обработка состояния ICMPv6 в pf

FreeBSD-EN-24:17:pam_xdg

20 октября 2024 г.

Утечка файлового дескриптора в каталоге выполнения XDG при входе в систему

FreeBSD-EN-25:01.rpc

29 января 2025 г.

Разыменование нулевого указателя в клиенте NFSv4

FreeBSD-EN-25:02.audit

29 января 2025 г.

Аудит системных вызовов отключен DTrace

FreeBSD-EN-25:03.tzdata

29 января 2025 г.

Обновление информации базы данных часовых поясов

FreeBSD-EN-25:04.tzdata

10 апреля 2025 г.

Обновление информации базы данных часовых поясов

FreeBSD-EN-25:05.expat

10 апреля 2025 г.

Обновление expat до версии 2.7.1

FreeBSD-EN-25:06.daemon

10 апреля 2025 г.

Отсутствующие сигналы в daemon(8)

FreeBSD-EN-25:07.openssl

10 апреля 2025 г.

Обновление OpenSSL до версии 3.0.16

FreeBSD-EN-25:08.caroot

10 апреля 2025 г.

Обновление набора корневых сертификатов

FreeBSD-EN-25:09:libc

2 июля 2025 г.

Аварийное завершение динамически загружаемых библиотек C++ при выходе

FreeBSD-EN-25:10:zfs

2 июля 2025 г.

Повреждение в потоках репликации ZFS из зашифрованных наборов данных

FreeBSD-EN-25:11:ena

2 июля 2025 г.

Сбросы ena и паника ядра на экземплярах Nitro v4 или новее

FreeBSD-EN-25:12:efi

8 августа 2025 г.

bsdinstall(8) не копирует правильный загрузчик на системах с прошивкой IA32 UEFI.

FreeBSD-EN-25:13:wlan_tkip

8 августа 2025 г.

Поддержка криптографии TKIP в net80211 не работает для некоторых драйверов

FreeBSD-EN-25:14:route

8 августа 2025 г.

route(8) monitor буферизирует слишком много данных при перенаправлении в файл

FreeBSD-EN-25:15:arm64

16 сентября 2025 г.

arm64 syscall(2) позволяет непривилегированному пользователю вызвать панику ядра

FreeBSD-EN-25:16:vfs

16 сентября 2025 г.

copy_file_range(2) не устанавливает выходные параметры

FreeBSD-EN-25:17:bnxt

16 сентября 2025 г.

bnxt(4) не устанавливает тип среды в некоторых случаях

FreeBSD-EN-25:18:freebsd-update

30 сентября 2025 г.

freebsd-update(8) устанавливает библиотеки в неверном порядке

Архитектуры

Почтенные 32-разрядные аппаратные платформы i386, armv6 и 32-разрядная powerpc ушли на пенсию. Поддержка 32-разрядных приложений сохраняется через режим совместимости 32-разрядных приложений на соответствующих 64-разрядных платформах. Платформа armv7 остается последней поддерживаемой 32-разрядной платформой. Мы благодарим их за службу.

Пользовательское окружение

Этот раздел охватывает изменения и дополнения в пользовательских приложениях, предоставленном программном обеспечении и системных утилитах.

Изменения конфигурации пользовательского окружения

Службе аутентификации Kerberos v5, krb5kdc(8), добавлена новая переменная kdc_restart в daemon(8). Установите kdc_restart="YES" в rc.conf(5) для автоматического перезапуска kdc при аномальном завершении. Установите kdc_restart_delay="N" на количество секунд задержки перед перезапуском kdc. abc4b3088941

Скрипты daily periodic(8) теперь по умолчанию показывают меньше контекста в письмах для уменьшения размера вывода. Поведение можно контролировать с помощью переменной daily_diff_flags в periodic.conf(5). Аналогично, изменения, показываемые скриптами безопасности, показывают меньше контекста, чем раньше, что контролируется переменной security_status_diff_flags в periodic.conf(5). 538994626b9f, 37dc394170a5, 128e78ffb084

Демон bsnmpd(1) больше не поддерживает устаревший транспорт UDP. Пользователям, которые не обновляли свой /etc/snmpd.config с 12.0-RELEASE или старше, потребуется обновить конфигурацию. В частности, определение транспорта должно быть изменено с OID begemotSnmpdPortStatus на begemotSnmpdTransInetStatus. 9ba51cce8bbd

Репозиторий FreeBSD-base теперь определен в /etc/pkg/FreeBSD.conf и отключен по умолчанию. Системам, которые были установлены с pkgbase до 15.0-RC1 (если используется releng/15.0) или 15 ноября (если используются снимки stable/main), потребуется удалить определение репозитория FreeBSD-base из /usr/local/etc/pkg/repos/ и заменить его одной строкой FreeBSD-base: { enabled: yes }. 5d832135a971

Утилита powerd(8) теперь включена по умолчанию в /etc/rc.conf на образах для Raspberry Pi на arm64 (файлы arm64-aarch64-RPI). Это предотвращает постоянную работу тактовой частоты ЦП на низкой скорости. 4347ef60501f

Изменения в пользовательских приложениях

Утилита adduser(8), используемая bsdinstall(8), теперь создает набор данных ZFS для домашнего каталога нового пользователя, если родительский каталог находится на наборе данных ZFS. Доступна опция командной строки для отключения использования отдельного набора данных. Также доступно шифрование ZFS. 516009ce8d38

Программа date(1) теперь поддерживает наносекунды. Например: date -Ins выводит "2024-04-22T12:20:28,763742224+02:00", а date +%N выводит "415050400". eeb04a736cb9 (Sponsored by Klara, Inc.)

Утилита dtrace(1) теперь может генерировать машинно-читаемый вывод в форматах JSON, XML и HTML с использованием libxo(3). aef4504139a4 (Sponsored by Innovate UK)

Утилита lastcomm(1) теперь отображает временные метки с точностью до секунд. 692c0a2e80c1 (Sponsored by DSS Gmbh)

Утилита ldconfig(8) теперь поддерживает файлы подсказок с любым порядком байт. Формат по умолчанию — собственный порядок байт хоста. fa7b31166ddb

Утилита usbconfig(8) теперь читает описания производителей и продуктов USB из /usr/share/misc/usb_vendors, когда они доступны, аналогично тому, как это делает pciconf(8). 7b9a772f9f64

Утилита env(1) получила опцию для изменения каталога, которая очень похожа на функцию в версии env от GNU, хотя и не поддерживает длинные опции. 08e8554c4a39 (Sponsored by Klara, Inc.)

Утилита ps(1) теперь автоматически удаляет столбцы из готовых представлений, которые содержат те же данные, что и некоторые явно запрошенные столбцы. До этого изменения, если пользователь запрашивал добавление какого-либо «готового представления» (опции -j, -l, -u или -v), столбцы в нем, которые были дубликатами явно запрошенных ранее в командной строке, опускались, но это не работало в обратную сторону, когда готовое представление появлялось перед явно запрошенными столбцами. Кроме того, столбцы с разными ключевыми словами, которые являются псевдонимами одного и того же ключевого слова, теперь также считаются содержащими одни и те же данные, в дополнение к столбцам с одинаковыми ключевыми словами. cd768a840644 (Sponsored by The FreeBSD Foundation)

Опция -O утилиты ps(1) стала более универсальной и предсказуемой. Список столбцов для отображения ps(1) теперь сначала строится без учета опций -O. На втором шаге все столбцы, переданные через -O, наконец вставляются после первого столбца PID (если он существует, иначе в начало) в уже построенном отображении, в порядке их появления в качестве аргументов для опций -O. 5dad61d9b949 (Sponsored by The FreeBSD Foundation)

Опции -a и -A утилиты ps(1) теперь всегда показывают все процессы. При комбинировании с другими опциями, влияющими на выбор процессов, кроме -X и -x, опция -a не имела бы эффекта (а -A сводилась бы просто к -x). Это противоречило правилу, применяемому ко всем другим опциям выбора, которое гласит, что процесс отображается, как только любая из этих опций была указана и выбирает его, что требуется POSIX и, вероятно, является естественным ожиданием. В качестве практического следствия, указание -a или -A теперь приводит к отображению всех процессов независимо от других опций выбора, таких как -U, -p, -G и т.д., кроме опций фильтрации -X и -x, которые продолжают применяться. В частности, чтобы отображать только процессы из определенных клеток, нельзя использовать -a вместе с -J. Опция -J, вопреки своему кажущемуся первоначальному назначению, на практике никогда не работала как фильтр, кроме как случайно с только -a из-за ошибки. 93a94ce731a8 (Sponsored by The FreeBSD Foundation)

Утилита ps(1) теперь сопоставляет процессы текущего пользователя, используя эффективный идентификатор пользователя (EUID). Ранее сопоставление производилось по реальному идентификатору пользователя (RUID). Это приводит ps(1) в соответствие с POSIX по этой теме. 1aabbb25c9f9 (Sponsored by The FreeBSD Foundation)

Флаг -U утилиты ps(1) теперь выбирает процессы по реальным идентификаторам пользователей. Это то, что требует POSIX для опции -U и, вероятно, поведение, которое большинству пользователей действительно нужно в большинстве случаев. Раньше -U выбирало процессы по их эффективным идентификаторам пользователей (что является поведением, требуемым POSIX для опции -u). 995b690d1398 (Sponsored by The FreeBSD Foundation)

Утилита sysctl(8) получила флаги для фильтрации переменных jail, prison и vnet, так что пользователям не нужно обращаться к исходному коду, чтобы определить, является ли переменная jail, prison / vnet или нет. 615c9ce250ee

Утилита grep(1) больше не следует символическим ссылкам по умолчанию при рекурсивном поиске. Это соответствует задокументированному поведению на странице руководства. fc12c191c087

Утилита mdo(1) теперь поддерживает полное указание всех пользователей и групп в учетных данных цели. Для удобства, в дополнение к полному явному указанию, она позволяет начинать с базового набора, предоставляющего значения по умолчанию для всех атрибутов, который представляет собой либо учетные данные входа какого-либо пользователя из базы данных паролей, либо текущие учетные данные, а затем выборочно изменять эти атрибуты. Страница руководства была обновлена для описания новых опций и их взаимодействия. 4ffcb1a4a99c (Sponsored by The FreeBSD Foundation) (Sponsored by Google LLC (GSoC 2025))

При загрузке в однопользовательском режиме init(8) теперь изменяет рабочий каталог на /root, используя / только как запасной вариант. Ссылка /.profile на /root/.profile больше не устанавливается. b4b91207ab6f, ca771d7ae527

Устаревший ftpd(8) был удален из базовой системы. Пользователям, которым он еще нужен, можно установить порт ftp/freebsd-ftpd. 259bb93b80c0

Программа администрирования базы данных Kerberos v5 научилась выгружать базу данных Heimdal KDC в формате, который можно загрузить в MIT KDC. См. https://wiki.freebsd.org/Kerberos/Heimdal2MIT_KDC_Migration, как использовать kadmin -l dump -f для переноса/конвертации базы данных KDC. 9fd3b28d4e0d, 23fbea8cf2f3

Утилиты bsdconfig(8) и bsdinstall(8) теперь используют bsddialog(1) вместо GNU dialog. c36b3dbc99d1, 04b465777a09

Команда jail(8) теперь поддерживает параметр zfs.dataset для присоединения списка наборов данных ZFS к клетке. e0dfe185cbca

Команда jail(8) теперь поддерживает параметры meta и env, которые представляют собой произвольные строки, связанные с клеткой. Эти параметры можно использовать для пометки клетки определенными метаданными или для безопасной передачи информации, к которой можно будет получить доступ внутри клетки. Их можно добавить при создании клетки или изменить позже с помощью jail(8). 30e6e008bc06 (Sponsored by SkunkWerks, GmbH)

Скрипт запуска rc.d/jail теперь поддерживает устаревшую переменную jail_${jailname}_zfs_dataset, чтобы позволить неподдерживаемым менеджерам клеток, таким как ezjail, использовать новую функцию zfs.dataset (см. выше). 0b49e504a32d

Утилита newsyslog(8) теперь поддерживает указание глобального метода сжатия непосредственно в начале файла newsyslog.conf. Все исторические флаги сжатия (J, X, Y, Z) тогда ведут себя как указание «считать файл сжимаемым» вместо «сжать файл этим конкретным методом». Доступны следующие методы:

  • none: Никогда не сжимать.

  • legacy: Историческое поведение (J=bzip2, X=xz, Y=zstd, Z=gzip).

  • bzip2, xz, zstd, gzip: Применить указанный метод сжатия.

Предоставленное программное обеспечение

One True Awk (awk(1)) обновлен до 2-го издания с новой поддержкой -csv и поддержкой UTF-8. Использован снимок 20250804. b45a181a74c8 (Sponsored by Netflix)

Инструментальная цепочка справочных руководств системы, mandoc(1), обновлена до версии 1.14.6, снимок 2025-09-26. Эта версия включает улучшенную совместимость с groff и DocBook, улучшенный вывод в html и markdown, а также устаревание раздела LIBRARY. c1c95add8c80, 80c12959679a, 4c07abdbacf4, 06410c1b5163, 59fc2b0166f7

Библиотека jemalloc(3) обновлена до версии 5.3.0. c43cad871720

Система сборки bmake(1) обновлена до 20250804, предоставляя множество улучшений отладки, исправлений ошибок, таких как обнаружение и отклонение синтаксиса gmake, и улучшений функций, таких как использование аргумента с плавающей запятой для -j в качестве множителя количества доступных процессоров.

Комплекс sendmail(8) обновлен до версии 8.18.1, устраняя CVE-2023-51765. 58ae50f31e95

Калькулятор bc(1) обновлен до версии 7.1.0. fdc4a7c8012b

Комплекс blacklist переименован вышестоящими разработчиками в blocklist. Существующие настройки продолжат работать с выдачей предупреждения. Использован снимок 20251026. 4afb96fdd272

Утилита bsddialog(1) обновлена до версии 1.0.5. 0595e10ec773

Генератор парсеров byacc(1) обновлен до версии 20240109. 822ca3276345

Библиотека libarchive обновлена до версии 3.8.2. 8a0b57ba54f0

Библиотека libcbor обновлена до версии 0.11.0. 1755b9daa693 (Sponsored by The FreeBSD Foundation)

Библиотека libcxxrt обновлена до снимка поставщика 6f2fdfebcd62. d0dcee46d971

Библиотека libfido2 обновлена до версии 1.14.0. 128bace5102e (Sponsored by The FreeBSD Foundation)

Библиотека libpcap обновлена до версии 1.10.5. 26f21a6494b4 (Sponsored by The FreeBSD Foundation)

Библиотека ncurses(3) обновлена до версии 6.5. 21817992b331

Утилита tcpdump(1) обновлена до версии 4.99.5. ec3da16d8bc1 (Sponsored by The FreeBSD Foundation)

Проверяющий DNS-резолвер unbound обновлен до версии 1.24.1. a988846174e0

Инфраструктура компилятора llvm обновлена до 19.1.7-0-gcd708029e0b2. dc3f24ea8a25

Файловая система OpenZFS обновлена до zfs-2.4.0-rc4. 7b5b0f43eb06

Компрессоры данных xz(1) обновлены до версии 5.8.1. 128836d304d9

Программа просмотра less(1) обновлена до версии v679. 76bafc906926

Идентификатор файлов file(1) обновлен до версии 5.46. ae316d1d1cff

Библиотека сжатия данных zlib(3) обновлена до версии 1.3.1. 6255c67c3d1a

База данных часовых поясов, tzdata, обновлена до версии 2025b. 475082194ac8

OpenSSH обновлен до версии 10.0p2. .8e28d84935f2 (Sponsored by The FreeBSD Foundation)

OpenSSL обновлен до версии 3.5.4. c0366f908ff4

Lua обновлена до версии 5.4.8. 3068d706eabe (Sponsored by Netflix)

Тестовая среда C Google Test обновлена до версии 1.15.2. Одно заметное изменение заключается в том, что GoogleTest 1.15.x теперь официально требует C14 (1.14.x требовала C++11). 1d67cec52542

Шрифт консоли spleen для vt(4) обновлен до версии 2.1.0. 26336203d32c

MIT KRB5 1.22.1 Kerberos заменяет Heimdal 1.5.2 по умолчанию. Heimdal 1.5.2 все еще можно собрать, используя флаг WITHOUT_MITKRB5. Heimdal Kerberos будет полностью удален в FreeBSD 16. См. также примечание о флаге -f для kadmin -l dump в разделе Изменения в пользовательских приложениях. ee3960cba106, 0b9a631e0724, 60f970b85e44, 0d1496f0f1e7, cbb6e747af98, 0559f30a882d, ae07a5805b19, f58febc4cefa, 805498e49ae4, 4cb1baa7d85c, 188138106b9f, 4680e7fcc70a, e447c252d0ec, 5f8493bbf479, 110111a6cca1, 2a454b05f2c1, 98d46e05ab08, 6b28571cb6ba, ca9ccf0ce9ad, b98d0566b2bd, fb1ccc04adfe, dd0ec030f8fd, 6c4771c73470, 7b68893ffa9b, 624b7beed5ac, 04764f21855a, 73ed0c7992fd, 40a5abfc3f66, 543b875a8ee4, c791ea80b5f7, 383e7290c0b5, 9a726ef24134, a245dc5d68c7, e26259f48afe, 7d2cfb27d62f, 619feb9dd00e, 10eecc467f32, 0c13e9c3c464, 89c82750da1a, 18a870751b03, ce9c325a2e92, cb3eac927b5d, 5105e1ebecc7, b9b0e105c357, 929f5966a9fd (Sponsored by The FreeBSD Foundation)

Драйвер rtw88(4) обновлен до Linux v6.17. Возможная проблема с тем, что устройства не могут пройти аутентификацию, все еще исследуется. c1d365f39e08 (Sponsored by The FreeBSD Foundation)

Драйвер rtw89(4) обновлен до Linux v6.17. Драйвер недостаточно протестирован и все еще может иметь проблемы. b35044b38f74 (Sponsored by The FreeBSD Foundation)

Драйвер iwlwifi(4) обновлен до Linux v6.17. Для наборов микросхем на основе BE200 потребуется более новая прошивка, требующая дальнейших исправлений драйвера, которых нет в этом выпуске. 69caa1cf3ce5 (Sponsored by The FreeBSD Foundation)

Библиотеки времени выполнения и API

Функция setusercontext(3) в libutil теперь будет устанавливать приоритет процесса (nice) из файла .login.conf в домашнем каталоге при соответствующих условиях, а также из системного login.conf(5). Приоритет теперь может иметь значение inherit, указывающее, что приоритет должен быть неизменным от родительского процесса. Аналогично, umask может иметь значение inherit. c328e6c6ccaa, d162d7e2ad32, f2a0277d3e51 (Sponsored by Kumacom SAS)

Многие операции со строками и памятью в библиотеке C теперь используют расширения SIMD (single instruction multiple data) для повышения производительности, когда они доступны на системах amd64; см. simd(7). (Sponsored by The FreeBSD Foundation)

Теперь в математической библиотеке math(3) на поддерживающих платформах появилась гораздо лучшая реализация 128-разрядной функции tgammal. 8df6c930c151

fma(3) теперь возвращает правильно знаковый ноль при определенных малых входных данных (как замечено в тестовом наборе Python). dc39004bc670 (Sponsored by The FreeBSD Foundation)

Добавлена функция cap_rights_is_empty. Она сообщает, установлены ли какие-либо права в cap_rights_t. e77813f7e4a3 (Sponsored by The FreeBSD Foundation)

libcxxrt обновлен до вышестоящего 6f2fdfebcd62. d9901a23bd2f

Улучшена точность asinf(3) и acosf(3). 33c82f11c267

Системные вызовы setgroups(2) и getgroups(2) и библиотечная функция initgroups(3) были изменены, чтобы избежать установки или отображения эффективного идентификатора группы (GID), теперь они касаются только дополнительных групп. Основная цель этого изменения — избежать проблем с безопасностью в будущем, став совместимыми с Linux/glibc, OpenBSD, NetBSD и системами на основе illumos. Следовательно, почти все переносимые приложения уже должны соответствовать этому новому поведению и будут продолжать работать правильно или даже исправятся в процессе (см., например, 239e8c98636a для примера, затрагивающего OpenSSH). Однако, из предосторожности, портерам, системным администраторам и пользователям рекомендуется проверить свои приложения, использующие setgroups(2), getgroups(2) и initgroups(3), обратив внимание на следующие моменты. Приложения должны использовать setgid(2) или setegid(2) в дополнение к setgroups(2) или initgroups(3) для установки эффективного идентификатора группы. Они не должны специально обрабатывать первый элемент массива, возвращаемого getgroups(2), а рассматривать его как любой другой дополнительной группы. Для получения дополнительной информации обратитесь к разделам SECURITY CONSIDERATIONS, которые были добавлены на страницы руководств setgroups(2), getgroups(2) и initgroups(3). Предоставлены совместимые системные вызовы и библиотечные функции, чтобы двоичные файлы и библиотеки, скомпилированные на системах FreeBSD 14 или более ранних, продолжали работать точно так же, как и раньше. 9da2fe96ff2e, 8878569103a3, 7132fb5edbc9, 2932e6f59bff, 8878569103a3 (Sponsored by The FreeBSD Foundation)

libc содержит функции совместимости, позволяющие запускать исполняемые файлы/библиотеки, скомпилированные для старых версий FreeBSD. Те из них, которые сами используют совместимые системные вызовы, не ссылались на них правильно, что вызывало некорректное поведение во время выполнения. Это было исправлено. 47f5f89dbd27 (Sponsored by The FreeBSD Foundation)

Функция readdir_r(3) устарела и может быть удалена в будущих выпусках. Ее использование в программе приведет к предупреждениям во время компиляции и компоновки. 2bd157bc732a (Sponsored by Klara, Inc.)

Динамический компоновщик rtld(1) получил поддержку флага статического компоновщика, задаваемого параметром -z initfirst. 78aaab9f1cf3 (Sponsored by The FreeBSD Foundation)

Разное

Шрифт Gallant для vt(4) обновлен более чем 4300 новыми глифами, включая поддержку греческого, кириллицы, расширений Международного фонетического алфавита, расширенных латинских символов, Zapf Dingbats, множества стрелок, множества математических символов, буквоподобных символов и обрамленных буквенно-цифровых символов, идеального рисования рамок пиксель к пикселю, символов валют, дополнительных знаков пунктуации, достаточного количества катаканы, чтобы сказать コンニチハ («добрый день», японский), глифов Powerline в области частного использования (Private Use Area) по адресу U+e0a0. 9e8c1ab0976c

Поддержка Unicode обновлена до 16.0.0, а CLDR — до 45.0.0. ddfc6f84f242

Устаревшие приложения

fdisk(8) давно устарел в пользу gpart(8), но не был удален; запуск этого приложения будет показывать предупреждение о переходе на gpart(8). 3958be5c29da (Sponsored by The FreeBSD Foundation)

Добавлено уведомление об устаревании syscons(4). syscons(4) несовместим с UEFI, не поддерживает UTF-8 и блокируется глобальным мютексом Giant. Конкретных сроков его удаления еще нет, но поддержка блокировки Giant, как ожидается, исчезнет через один или два основных цикла выпуска. 8c922db4f3d9 (Sponsored by The FreeBSD Foundation)

Утилита shar была удалена. Она продолжает существовать как порт sysutils/freebsd-shar. 3fde39073c72

Криптографически слабый алгоритм подписи DSA был удален из OpenSSH, следуя за вышестоящими разработчиками.

База данных publickey(5) была удалена. Она использует DES, и мы надеемся, что никто не использует это в 2025 году. 9197c04a251b

Поддержка облачных сред

Этот раздел охватывает изменения в поддержке облачных сред.

15.0-RELEASE поддерживает cloudinit, включая скрипт запуска nuageinit и поддержку раздела config-drive. Он совместим с OpenStack и многими хостинг-провайдерами. См. веб-сайт cloud-init и сообщения коммитов, 16a6da44e28d 227e7a205edf (Sponsored by OVHcloud)

Базовые образы Cloudinit больше не генерируют RSA-ключи хоста по умолчанию для SSH. Генерацию RSA-ключа хоста можно повторно включить, установив sshd_rsa_enable="YES" в /etc/rc.conf, если необходимо поддерживать очень старые SSH-клиенты. b22be3bbb2de

Проект FreeBSD теперь публикует образы контейнеров, совместимые с OCI. 8a688fcc242e

Проект FreeBSD теперь публикует образы для Oracle Cloud Infrastructure. См. список FreeBSD в Oracle Cloud Infrastructure для получения дополнительной информации. 77b296a2582b

API "shutdown" и "reboot" в облаке Amazon EC2 теперь работают для экземпляров arm64 ("Graviton"). 28b881840df7 (Sponsored by Amazon)

Несколько исправлений ошибок и изменений конфигурации в совокупности позволяют осуществлять горячее подключение устройств как на x86, так и на экземплярах EC2 arm64 ("Graviton"). ce9a34b1614e 55c3348ed78f d70bac252d30 (Sponsored by Amazon)

Пользователям, обновляющим экземпляры EC2 с более ранних выпусков FreeBSD, следует установить hw.pci.intx_reroute=0 и debug.acpi.quirks="56" в /boot/loader.conf.

Проект FreeBSD теперь публикует "маленькие" ("small") образы EC2; это образы "base" без отладочных символов, тестов, 32-разрядных библиотек, отладчика LLDB, агента Amazon SSM и AWS CLI. 953142d6baf3 (Sponsored by Amazon)

Проект FreeBSD теперь публикует "сборочные" ("builder") образы EC2; они загружаются в диск в памяти и извлекают чистый образ "base" на корневой диск (смонтированный в /mnt) для настройки перед созданием AMI. 584265890303 (Sponsored by Amazon)

Образы EC2 "base" FreeBSD теперь загружаются до 76% быстрее, чем соответствующие образы 14.0-RELEASE, причем наибольшие улучшения наблюдаются на экземплярах arm64 ("Graviton").

AMI EC2 больше не генерируют RSA-ключи хоста по умолчанию для SSH. Генерацию RSA-ключа хоста можно повторно включить, установив sshd_rsa_enable="YES" в /etc/rc.conf, если необходимо поддерживать очень старые SSH-клиенты. 0aabcd75dbc2 (Sponsored by Amazon)

FreeBSD 15.0-RELEASE теперь поддерживает машины Google Cloud Compute Engine C4. 7b32f4f0a7fe (Sponsored by Google)

Ядро

В этом разделе рассматриваются изменения в конфигурациях ядра, настройке системы и параметрах системного управления, которые не отнесены к другим категориям.

Общие изменения в ядре

ktrace(2) теперь будет записывать подробную информацию о нарушениях режима возможностей (capability mode). Утилита kdump(1) была обновлена для отображения такой информации. 9bec84131215, 96c8b3e50988, 05296a0ff616, 6a4616a529c1, 0cd9cde767c3, aa32d7cbc92c

FreeBSD теперь нативно реализует интерфейс inotify(2) из Linux. Сами системные вызовы не являются API-совместимыми, но libc предоставляет API-совместимый интерфейс, поэтому программное обеспечение, зависящее от inotify, может работать без изменений. f1f230439fa4, (Sponsored by Klara, Inc.)

Реализованы процедуры fpu_kern_enter и fpu_kern_leave для powerpc, позволяющие использовать криптографические функции ossl(4) в ядре, которые используют регистры с плавающей запятой и векторные регистры. 91e53779b4fc

Добавлена поддержка устаревшего горячего подключения PCI на arm64. 355f02cddbf0. (Sponsored by Arm Ltd)

Теперь к клетке можно обращаться через дескрипторы клеток в jail_set(2) и jail_get(2), а также с помощью новых системных вызовов jail_attach_jd(2) и jail_remove_jd(2). Они позволяют манипулировать клетками через интерфейс файловых дескрипторов без состояний гонки, присущих идентификаторам клетки, а также могут дополнительно контролировать время жизни клетки. 851dc7f859c2

Клетки и дескрипторы клетки теперь имеют связанные фильтры kevent(2), которые позволяют отслеживать создание, изменение, присоединение и удаление клеток. 1bd74d201a53 9d7f89ef2607

Создан новый общий узел 'mac' для параметров клетки модулей MAC. Все будущие параметры клетки модулей MAC будут появляться под этим узлом. См. mac(4) для введения в MAC. Первым потребителем является mac_do(4). 5041b20503db, f3a06ced2568 (Sponsored by The FreeBSD Foundation)

mac_do(4) теперь считается готовым к производственному использованию после ряда важных исправлений. bbf8af664dc9, 292c814931d9, 53d2e0d48549, add521c1a5d2, 2a20ce91dc29, fa4352b74580, 3d8d91a5b32c, 8f7e8726e3f5, 89958992b618 (Sponsored by The FreeBSD Foundation)

mac_do(4) теперь поддерживает изменение правил внутри клетки с помощью параметра security.mac.do.rules в sysctl(8). b3f93680e39b (Sponsored by The FreeBSD Foundation)

Представлен системный вызов setcred(2) и связанные с ним хуки MAC. Этот новый системный вызов позволяет установить все необходимые учетные данные процесса за один раз: эффективный, реальный и сохраненный идентификаторы пользователя, эффективный, реальный и сохраненный идентификаторы группы, дополнительные группы и метку MAC. Помимо обеспечения атомарности, его преимущество перед стандартными системными вызовами установки учетных данных, такими как setuid(), seteuid() и т.д., заключается в том, что он позволяет модулям MAC, таким как mac_do(4), ограничивать набор учетных данных, которые может получить некоторый процесс, точным образом, поскольку теперь они могут видеть конечное желаемое состояние и сравнивать его с исходным. ddb3eb4efe55 (Sponsored by The FreeBSD Foundation)

Добавлена поддержка нескольких пользователей и групп в качестве целей одного правила в mac_do(4). Поддержка целей-групп необходима для того, чтобы mac_do(4) мог применять ограниченный набор допустимых новых групп в целевых учетных данных и разрешать переходы учетных данных только между группами. Разрешенные группы привязаны к одному или нескольким идентификаторам пользователя. Несколько пользователей и групп в целевой части правила рассматриваются как альтернативы (инклюзивная дизъюнкция), за исключением условий, выражающих обязательное наличие или отсутствие дополнительной группы. Синтаксис правил был изменен несовместимым образом, но миграция существующих правил — это просто вопрос добавления uid= перед целевой частью, замены запятых (,) на точку с запятой (;) и двоеточий (:) на знак «больше» (>). Пожалуйста, обратитесь к странице руководства mac_do(4) для получения дополнительной информации. 83ffc412b2e9, 8f7e8726e3f5, f01d26dec67f (Sponsored by The FreeBSD Foundation)

Добавлена возможность sysctl(8) присоединяться и запускаться в клетке. Это позволяет родительской клетке получать или устанавливать состояние ядра, когда в дочерней клетке не установлен sysctl(8) (например, в легковесных контейнерах OCI или slim-клетках). Это особенно полезно при манипуляции с jail, prison или vnet sysctl. Например, sysctl -j foo -Ja или sysctl -j foo net.fibs=2. 8d5d7e2ba3a6.

Включена возможность настройки vnet sysctl(9) переменных через loader tunable. В 3da1cf1e88f8 значение флага CTLFLAG_TUN расширено для автоматической проверки наличия переменной среды ядра, которая должна инициализировать SYSCTL во время ранней загрузки. Это работает для всех типов SYSCTL, как статических, так и динамически созданных, за исключением SYSCTL, принадлежащих VNET. Обратите внимание, что реализация имеет ограничение. Она ведет себя так же, как и non-vnet loader tunables. То есть после инициализации ядра или модулей любые изменения (например, через kenv) переменной среды ядра не повлияют на соответствующую vnet переменную последующих создаваемых VNET. Чтобы преодолеть это, можно использовать TUNABLE_XXX_FETCH для получения переменной среды ядра в эти vnet переменные во время создания vnet. 894efae09de4

sound(4): Выделение vchans по требованию. Рефакторинг pcm_chnalloc() и объединение с частями vchan_setnew() (теперь удалена) и создания каналов dsp_open() в новую функцию dsp_chn_alloc(). Функция отвечает за использование свободного HW-канала (если vchans отключены) или выделение нового vchan. hw.snd.vchans_enable (ранее hw.snd.maxautovchans) и dev.pcm.X.{play|rec}.vchans теперь работают как tunables только для включения/отключения vchans, в отличие от установки их количества и/или (де-)выделения vchans. Поскольку эти sysctl больше не запускают никаких (де-)выделений, их эффект мгновенен, тогда как раньше это могло привести к зависанию машины (при попытке выделить новые vchans) при установке dev.pcm.X.{play|rec}.vchans в очень большое значение. 960ee8094913. (Sponsored by The FreeBSD Foundation)

Удален параметр sysctl(8) hw.snd.version. 7398d1ece5cf (Sponsored by The FreeBSD Foundation)

Код unit.* в sound(4) был удален, и в рамках этого удален tunable loader(8) hw.snd.maxunit. 25723d66369f (Sponsored by The FreeBSD Foundation)

Исправлены постепенные замедления и зависания, с которыми сталкивались владельцы некоторых видеокарт AMD, использующих драйвер DRM amdgpu из портов drm-kmod, начиная с v5.15 (порт graphics/drm-515-kmod). В частности, известно, что затрагивались владельцы видеокарт с чипами Green Sardine, Polaris 10 и 20, а также Vega. Последние видеокарты на базе Intel (gen 13+) также могли быть затронуты. 718d1928f874, 4ca9190251bb, 986edb19a49c, 9d1f3ce79d85, da257e519bc0 (Sponsored by The FreeBSD Foundation)

Код, выполняющий итерацию по доменам памяти (NUMA), был улучшен и исправлен несколькими способами, что, в частности, привело к снижению задержки для некоторых графических операций с драйверами DRM. da257e519bc0, 83ad6d8d8eee, b15ff7214020 (Sponsored by The FreeBSD Foundation)

Эффективный идентификатор группы теперь хранится в новом поле cr_gid структуры struct cred и удален как первый элемент cr_groups[], который теперь содержит только дополнительные группы. Все нижестоящие и сторонние модули, использующие cr_groups[0], должны быть исправлены для использования cr_gid вместо него, а окружающий код, который перебирает элементы cr_groups[], исключая cr_groups[0] (т.е. который предназначен для работы только с дополнительными группами), также необходимо скорректировать, поскольку теперь дополнительные группы начинаются с &cr_groups[0] вместо &cr_groups[1]. Коду, который должен быть переносимым как на 15.0, так и на более ранние версии, можно использовать cr_gid, который существовал и ранее как макрос, и можно проверить истинность выражения &cr_groups[0] != &cr_gid, чтобы знать, как адекватно просматривать дополнительные группы. be1f7435ef21 (Sponsored by the FreeBSD Foundation)

Архитектурно-зависимые изменения

В amd64 FreeBSD теперь поддерживает более 4 ТБ оперативной памяти на современных машинах, имеющих функцию CPU LA57. d390633cf8cf (Sponsored by the FreeBSD Foundation)

В amd64 обработка регистров %fsbase/%gsbase и базового адреса TLS была переработана, что делает их более полезными для приложений, напрямую манипулирующих контекстом CPU. 68ba38dad3 (Sponsored by the FreeBSD Foundation)

Устройства и драйверы

В этом разделе рассматриваются изменения и дополнения в устройствах и драйверах устройств, появившиеся после 14.0-RELEASE.

Драйверы устройств

Интерфейс терминала tty(4) теперь имеет флаг IUTF8, который включает правильную обработку удаления символов UTF-8 (backspacing), установлен по умолчанию, что соответствует локали UTF-8 по умолчанию. bb830e346bd5

Доступен драйвер для контроллеров Ethernet серии Intel E800 ice(4), поддерживающих работу на скорости 100 Гбит/с. Он был обновлен до версии 1.43.2-k. 38a1655adcb3 (Sponsored by Intel Corporation)

В драйвер iwlwifi(4) для устройств Wi-Fi от Intel внесены многочисленные улучшения стабильности. (Sponsored by The FreeBSD Foundation)

Теперь в amd64 поддерживаются несколько регионов PCI MCFG, что обеспечивает доступ к пространству конфигурации PCI для доменов (сегментов), отличных от 0. 4b5f64408804

Драйвер Ethernet smsc(4) теперь может получать значение smsc95xx.macaddr, передаваемое некоторыми моделями Raspberry Pi, и использовать его для MAC-адреса. Он всегда использует стабильный MAC-адрес, даже если в EEPROM нет адреса. 028e4c6548e4

Фреймворк snd_clone был удален из звуковой подсистемы, включая связанные sysctl, упрощая систему. Узлы на канал (/dev/dspX.Y) больше не создаются, только основное устройство (/dev/dspX). e6c51f6db8d7 (Sponsored by The FreeBSD Foundation)

Теперь звук поддерживает асинхронное отключение устройств. Это значительно упрощает горячее подключение и отключение таких устройств, как USB-гарнитуры, и облегчает использование PulseAudio в случаях, требующих перехода операционной системы в режим сна и пробуждения (suspend и resume). d692c314d29a (Sponsored by The FreeBSD Foundation)

ice_ddp обновлен до версии 1.3.41.0. a9d78bb714e3 (Sponsored by Intel Corporation)

Добавлена поддержка Tiger Lake-H в драйвер hda(4). dbb6f488df6e

Добавлена поддержка Meteor Lake в драйвер ichsmb(4). 14c22e28e4ee (Sponsored by Framework Computer Inc) (Sponsored by The FreeBSD Foundation)

Добавлена поддержка Meteor Lake в драйвер ig4(4). 56f0fc0011c2

Поддержка Realtek 8156/8156B перенесена из cdce(4) в ure(4) для повышения производительности и надежности. 630077a84186 (Sponsored by The FreeBSD Foundation)

Добавлена поддержка объектов ACPI GPIO _AEI. 1db6ffb2a482 (Sponsored by Amazon)

nvme(4) и nvmecontrol(8) включены для всех архитектур. 24687a65dd7f, aba2d7f89dcf (Sponsored by Chelsio Communications and Netflix)

Версия драйвера mpi3mr(4) обновлена до 8.14.0.2.0. e6d4b221ba7c

Заголовок MPI для mpi3mr(4) обновлен до версии 36. Это соответствует последней спецификации MPI. Это включает обновленные структуры, определения полей и константы, необходимые для совместимости с обновленной прошивкой. 60cf1576501d

Драйвер mpi3mr(4) теперь включен в GENERIC. e2b8fb2202c2

iwmbtfw(4): Добавлена поддержка адаптеров Bluetooth 9260/9560. Необходимые файлы прошивки уже включены в порт comms/iwmbt-firmware. 8e62ae9693bd

Версия драйвера ena(4) обновлена до v2.8.1. a1685d25601e (Sponsored by Amazon, Inc.)

bnxt(4): Включена поддержка NPAR на сетевых картах BCM57504 10/25GbE. 54f842ed8897

bnxt(4): Добавлена поддержка идентификаторов PCI для 5760X (Thor2). Добавлены идентификаторы PCI для Thor2. 45e161020c2d

bnxt(4): Добавлена поддержка модулей скорости 400G. 32fdad17f060

ix(4): Добавлена поддержка SFP-модулей 1000BASE-BX. Добавлена поддержка BiDi-модулей на 1 Гбит/с. Добавлена поддержка Intel Ethernet Network Adapter E610. 89d4096950c4 dea5f973d0c8

igc(4): Исправлено присоединение для устройств I226-K и LMVP. Идентификаторы этих устройств были в списке PCI ID драйвера для присоединения, но igc_set_mac_type() никогда не был настроен для установки правильного типа MAC для этих устройств. Исправлено добавлением этих ID в блок switch, чтобы они распознавались драйвером вместо возврата ошибки. Это исправляет присоединение igc(4) для встроенного сетевого адаптера I226-K на материнской плате ASRock Z790 PG-ITX/TB4, позволяя его распознать и использовать. f034ddd2fa38.

Удален старый обработчик sysctl itr из em(4). Эта реализация имела различные ошибки. Преобразование/масштабирование единиц измерения было неверным, и она также неправильно обрабатывала устройства 82574L или igb(4). С новым кодом AIM ожидается, что большинству пользователей не потребуется вручную настраивать этот параметр. edf50670e215 (Sponsored by BBOX.io)

Добавлена поддержка адаптеров USB-to-Serial от Brainboxes в uftdi(4). 47db906375b5

Добавлен драйвер iwx(4), поддерживающий серию беспроводных сетевых адаптеров M.2 Intel Wi-Fi 6. 2ad0f7e91582 (Sponsored by The FreeBSD Foundation)

Новый драйвер сотовых модемов поддерживает USB-сетевые устройства, реализующие Mobile Broadband Interface Model (MBIM): umb(4). Сопутствующий инструмент umbctl(8) используется для отображения или установки параметров интерфейса сотового модема MBIM (4G/LTE). 0f1bf1c22a0c (Sponsored by The FreeBSD Foundation)

smbios(4) теперь сначала ищет точку входа SMBIOS v3 (64-разрядную), даже если загрузка произведена из BIOS. Это позволяет обнаруживать и сообщать правильную версию SMBIOS с BIOS, которые предоставляют только таблицу v3, как это происходит на виртуальных машинах Hetzner. Для машин, предоставляющих обе таблицы, использовать таблицу v3 в приоритете, согласованно со случаем загрузки EFI. bc7f6508363c (Sponsored by The FreeBSD Foundation)

Драйвер usbhid(4) теперь включен по умолчанию и используется в приоритете перед другими USB HID драйверами, такими как ukbd(4), ums(4) и uhid(4). Поддерживаемые классы устройств теперь включают:

  • Мыши с абсолютным позиционированием в виртуализированных средах через hms(4)

  • Дигитайзеры и устройства-стилусы через hpen(4)

  • Составные HID-устройства, такие как клавиатуры и мыши, совместно использующие один USB-интерфейс

  • Специальные функциональные клавиши клавиатуры (громкость, яркость и т.д.) через hcons(4) и hsctrl(4)

  • Игровые контроллеры, включая геймпады Xbox 360 и PS4 через xb360gp(4) и ps4dshock(4), а также универсальные контроллеры через hgame(4)

  • Сырые HID-устройства через hidraw(4)

Ключи безопасности FIDO/U2F продолжают поддерживаться через автоматически загружаемый драйвер u2f(4). Имена устройств и обработка протокола для этих устройств не изменились. 74072e9f16c1 (Sponsored by The FreeBSD Foundation)

Добавлен драйвер udbc(4), обеспечивающий отладку на стороне хоста для целей с использованием xHC debug. d566b6a70bcb (Sponsored by The FreeBSD Foundation)

Добавлен драйвер ufshci(4), поддерживающий контроллеры Universal Flash Storage (UFS). 1349a733cf28 (Sponsored by Samsung Electronics)

Драйвер mlx5(4) теперь поддерживает встроенную разгрузку IPSEC на сетевых картах Nvidia ConnectX-6+, используя новую инфраструктуру разгрузки IPSEC в ядре. e23731db48ef (Sponsored by NVIDIA networking)

Поддержка таймера watchdog в концентраторе ввода-вывода Intel 6300ESB добавлена в драйвер ichwd(4). Это предназначено в первую очередь для пользователей QEMU, где этот таймер watchdog служит таймером по умолчанию и единственным для виртуальных машин x86. 2b74ff5fceb6

Драйвер qat(4) получил поддержку устройства 402xx с ID 0x4944/0x4945. 138e36514fe8 (Sponsored by Intel Corporation)

Устаревшие и удаленные драйверы

Шинный драйвер agp(4) устарел и планируется к удалению в FreeBSD 16.0. 92af7c97e197 cadadd1a0398

Контроллер гибких дисков IBM PC, fdc(4), и связанные утилиты устарели и планируются к удалению в FreeBSD 16.0. 4c736cfc69a7 (Sponsored by The FreeBSD Foundation)

Шина firewire(4) и связанные драйверы устарели и планируются к удалению в FreeBSD 16.0. fc889167c319 (Sponsored by The FreeBSD Foundation)

Драйвер Ethernet le(4) устарел и планируется к удалению в FreeBSD 16.0. e4d6433e9c03 (Sponsored by The FreeBSD Foundation)

syscons(4) запланирован к удалению в будущих выпусках, и в руководствах добавлено уведомление об устаревании, чтобы пользователи перешли на vt(4). 2bc5b1d60512 (Sponsored by The FreeBSD Foundation)

USB-драйвер 802.11g upgt(4) устарел и планируется к удалению в FreeBSD 16.0. 7f8a5c5a1585 (Sponsored by The FreeBSD Foundation)

Подсистема хранения данных

В этом разделе рассматриваются изменения и дополнения в файловых системах и других подсистемах хранения данных, как локальных, так и сетевых.

Общие изменения в системах хранения

Добавлены расширенные атрибуты в стиле Solaris (называемые именованными атрибутами в NFSv4). На данный момент их поддерживают только ZFS, а именно наборы данных файловой системы, у которых свойство xattr установлено в dir, а также NFSv4. Атрибуты представлены в каталоге как обычные файлы. См. named_attribute(7) для получения дополнительной информации. 2ec2ba7e232d, df58e8b1506f, f61844833ee8, b1b607bd200f, ee95e4d02dbd

Добавлена поддержка доступа к удаленным контроллерам NVMe over Fabrics через транспорт TCP. В nvmecontrol(8) добавлены новые команды для установления соединений с удаленными контроллерами. После установления соединения они передаются модулю ядра nvmf(4), который создает устройства nvmeX и экспортирует удаленные пространства имен как диски nda(4). a1eda74167b5, 1058c12197ab (Sponsored by Chelsio Communications)

Добавлена поддержка экспорта пространств имен удаленным хостам NVMe over Fabrics через транспорт TCP. Модуль ядра nvmft(4) добавляет новый интерфейс в целевой слой CAM, который экспортирует LUN ctl(4) как пространства имен NVMe удаленным хостам. Демон ctld(8) теперь поддерживает контроллеры NVMe в дополнение к целям iSCSI и отвечает за прием входящих запросов на подключение и передачу подключенных пар очередей в nvmft(4). a15f7c96a276, 66b5296f1b29 (Sponsored by Chelsio Communications)

Добавлена поддержка динамического изменения размера пространств имен NVMe. Драйверы nvd(4) и nda(4) теперь уведомляют geom об изменениях размеров в реальном времени. 86d3ec359a56 (Sponsored by Netflix)

NFS

Значение по умолчанию настройки nfs_reserved_port_only в rc.conf(5) изменилось. Сервер NFS FreeBSD теперь требует, чтобы исходный порт запросов находился в диапазоне привилегированных портов (т.е. ≤ 1023), что, как правило, требует наличия у клиента повышенных привилегий в его локальной системе. Предыдущее поведение можно восстановить, установив nfs_reserved_port_only=NO в rc.conf(5). 6d5ce2bb6344 (Sponsored by The FreeBSD Foundation)

Определена новая опция командной строки -a для mountd(8), которая предотвращает экспорт файловой системы с флагом -alldirs, если путь к каталогу не является точкой монтирования файловой системы сервера. 07cd69e272da

Структура NFS-дескрипторов файлов для файловых систем tarfs(4), tmpfs(4), cd9660(4) и ext2fs(4) изменилась. Серверу NFS, экспортирующему любую из этих файловых систем, потребуется, чтобы его клиенты отмонтировали и снова смонтировали экспорты. 4db1b113b151, 1ccbdf561f41, 205659c43d87, cf0ede720391, 8ae6247aa966 (Sponsored by The FreeBSD Foundation)

Сервер mountd(8) был изменен для использования strunvis(3) для декодирования имен каталогов в файле(ах) exports(5). Это позволяет встраивать специальные символы, такие как пробелы, в имя каталога. Для кодирования таких имен каталогов можно использовать vis -M; см. vis(1). 2c83f1ada435

Разрешено указывать столько групп в опциях -maproot или -mapall в exports(5), сколько поддерживается системой. Ранее ограничение было NGROUPS_MAX + 1, где NGROUPS_MAX — это всего лишь минимальный максимум разрешенного количества дополнительных групп. Теперь используется правильное значение {NGROUPS_MAX} + 1, где {NGROUPS_MAX} получается во время выполнения через sysconf(3). e87848a8150e (Sponsored by The FreeBSD Foundation)

Добавлены новые переменные sysctl(8) под kern.rpc.unenc и kern.rpc.tls, которые позволяют администратору сервера NFS определить, насколько активно используется NFS-over-TLS. Большое количество неудачных рукопожатий может указывать на проблему конфигурации NFS. b8e137d8d32d

Использование делегирований NFSv4.1/4.2 было улучшено при использовании опции монтирования nocto. Для этого требуется актуальный сервер NFSv4.1/4.2 с включенными делегированиями. Например, при сборке ядра FreeBSD с смонтированными через NFSv4 каталогами src и obj общее количество RPC-запросов снижается с 5461286 до 945643, а затраченное время уменьшается на 20%. 171f66b0c2ca, 50e733f19b37

Новая поддержка операции NFSv4.2 Clone, которая использует клонирование блоков для «копирования при записи» файлов на сервере NFS. Пока это работает только для экспортируемых файловых систем ZFS, у которых включено клонирование блоков. cce64f2e6851

UFS

Программные обновления (soft updates) теперь включены по умолчанию при создании новой файловой системы UFS с помощью newfs(8). 6b2af2d88ffd

Надежность UFS на томах с более чем 2 ГБ inodes значительно улучшена. Основная проблема заключалась в некорректной интерпретации 32-разрядного номера inode как знакового, который расширялся знаковым битом в ino_t. c069ca085bd1, e36f069ecb47 (Sponsored by The FreeBSD Foundation)

Отложить лимит даты 19 января 2038 года в файловых системах UFS1 до 7 февраля 2106 года. Это затрагивает только файловые системы со старым форматом UFS1. Подробности см. в сообщении коммита. 1111a44301da

ZFS

Добавлена поддержка VOP_COPY_FILE_RANGE() для клонирования блоков. В настоящее время ZFS — единственная локальная файловая система, которая поддерживает это, и только если включено клонирование блоков. NFSv4.2 также поддерживает это. См. pathconf(2) и copy_file_range(2) для получения дополнительной информации. 37b2cb5ecb0f

GEOM

Поддержка томов vinum была удалена. f87bb5967670, e51036fbf3f8

Изменения в загрузчике

Этот раздел охватывает загрузчик, загрузочное меню и другие изменения, связанные с загрузкой.

ASCII-арт loader(8) снова может быть включен на графических системах с помощью необязательной переменной loader_gfx в loader.conf(5). bef6d85b6de5

loader(8) теперь читает локальные конфигурационные файлы, перечисленные в переменной local_loader_conf_files, после других конфигурационных файлов, по умолчанию это /boot/loader.conf.local. a25531db0fc2

loader(8) теперь можно настроить на чтение определенных конфигурационных файлов на основе переменных производителя платы (planar maker), продукта платы (planar product), продукта системы (system product) и uboot m_product из SMBIOS. На данный момент лучшей документацией является сообщение коммита git, 3eb3a802a31b.

Определение консоли в loader(8) было улучшено на системах EFI. Если переменная ConOut отсутствует, проверяется ConIn. Если найдено несколько устройств, предпочтение отдается последовательному порту. 20a6f4779ac6 (Sponsored by Netflix)

Поддержка кадрового буфера в loader(8) теперь может использовать только текстовый видео-драйвер, что приводит к экономии места. 57ca2848c0aa (Sponsored by Netflix)

Обнаружение ACPI теперь выполняется раньше в loader.efi(8) на системах arm64. Копию loader.efi на разделе EFI следует обновить на системах arm64, использующих ACPI. 05cf4dda599a 16c09de80135

Загрузчик LinuxBoot можно использовать для загрузки FreeBSD из Linux на aarch64 и amd64. 46010641267 (Sponsored by Netflix)

В загрузчик BIOS добавлена обратно поддержка gzip и bzip2, но удалена поддержка графического режима (по умолчанию) для решения проблем с размером. (Загрузчик EFI не изменился, поддерживая все эти функции.) 4d3b05a8530e (Sponsored by Netflix)

Загрузчик BIOS теперь может использовать точку входа SMBIOS v3 (64-разрядную), если ее таблица находится ниже 4 ГБ. Загрузчик BIOS компилируется как 32-разрядный клиент BTX даже на amd64, поэтому не может обращаться к адресам за пределами 4 ГБ. Однако 64-разрядная точка входа может ссылаться на таблицу структур ниже 4 ГБ, которую можно использовать, если BIOS не предоставляет 32-разрядную точку входа, как это происходит на виртуальных машинах Hetzner. 7f005c6699f4 (Sponsored by The FreeBSD Foundation)

Загрузчик BIOS теперь отдает предпочтение точке входа SMBIOS v3 (64-разрядной). Когда присутствуют и 32-разрядная, и 64-разрядная точки входа, спецификация SMBIOS гласит, что 64-разрядная точка входа всегда содержит как минимум все структуры, на которые ссылается 32-разрядная точка входа. Другими словами, 32-разрядная точка входа предоставляется для совместимости, поэтому предполагается, что у 64-разрядной точки входа больше шансов быть заполненной адекватными значениями. 3f744fb8b2c5 (Sponsored by The FreeBSD Foundation)

Загрузчик EFI теперь отдает предпочтение точке входа SMBIOS v3 (64-разрядной), согласованно с тем, что делается при загрузке BIOS. Однако есть разница: поскольку загрузчик EFI работает в 64-разрядном режиме на 64-разрядных платформах, нет ограничения, чтобы таблица структур точки входа v3 находилась ниже 4 ГБ. 96f77576e9ea (Sponsored by The FreeBSD Foundation)

Сеть

Этот раздел описывает изменения, влияющие на сеть в FreeBSD.

Общие сетевые изменения

FreeBSD теперь реализует интерфейс SO_SPLICE, первоначально из OpenBSD. Эта функция позволяет пользовательским приложениям «сращивать» два соединенных TCP-сокета вместе, после чего данные, поступающие на один сокет, автоматически перенаправляются через сокет, к которому они сращены, вместо доставки приложению. a1da7dc1cdad (Sponsored by Klara, Inc.) (Sponsored by Stormshield)

Поддержка ARP (arp(4)) для сетей стандарта 802 восстановлена; она была случайно удалена вместе с поддержкой FDDI. (Это отличается от стандартной инкапсуляции Ethernet.) d776dd5fbd48

Теперь можно собрать ядро с поддержкой IPv6 (INET6) без IPv4 (INET). 6df9fa1c6b83 и другие

Модуль netgraph ng_ipfw(4) больше не обрезает cookie до 16 бит, позволяя использовать полные 32 бита. dadf64c5586e

Добавлена поддержка AIM (Adaptive Interrupt Moderation) в драйвер igc(4). 472a0ccf847a (Sponsored by Rubicon Communications, LLC ("Netgate") and BBOX.io)

Эта функция также добавлена в драйверы lem(4), em(4) и igb(4). Считается, что серьезный регресс производительности UDP, появившийся в FreeBSD 12.0, включая NFS поверх UDP, исправлен этим изменением. 49f12d5b38f6 (Sponsored by Rubicon Communications, LLC ("Netgate") and BBOX.io)

Добавлена возможность ip6addrctl(8) присоединяться и запускаться в клетке. Это упростит управление политиками выбора адресов для vnet клетки, особенно для легковесных контейнеров OCI или slim-клетки. b709f7b38cc4

Пакетный фильтр pf(4) получил новый параметр времени выполнения loader.conf(5) 'net.pf.default_to_drop', а также опцию времени компиляции PF_DEFAULT_TO_DROP, делая правило по умолчанию — «отбрасывать». 7f7ef494f11d, 3965be101c43

Новая опция пула route-to "prefer-ipv6-nexthop" в pf(4) позволяет маршрутизировать IPv4-пакеты через IPv6-шлюзы. 65c318630123 d2761422eb0a (Sponsored by InnoGames GmbH)

pf(4) теперь поддерживает синтаксис NAT в стиле OpenBSD. Можно использовать "nat-to", "rdr-to" и "binat-to" в правилах "pass" и "match". Старый синтаксис "nat on …​" по-прежнему можно использовать. e0fe26691fc9 (Sponsored by InnoGames GmbH)

Протокол pfsync(4) обновлен для синхронизации нескольких отсутствующих атрибутов. Это исправляет синхронизацию состояний с опциями route-to, af-to, rtable, dummynet, tags и scrub. Если требуется синхронизация с более старой версией FreeBSD, версию протокола можно настроить с помощью ifconfig pfsync0 version $VERSION, где $VERSION — 1301 для релизов 13.X или 1400 для 14.X. По умолчанию используется 1500 для синхронизации между хостами под управлением FreeBSD 15.0. 99475087d63b (Sponsored by InnoGames GmbH)

Поддержка Kernel TLS теперь включена по умолчанию в ядрах GENERIC (по умолчанию) для aarch64, amd64, powerpc64 и powerpc64le. b2f7c53430c3 (Sponsored by Chelsio Communications)

Добавлены настраиваемые параметры net.inet.{tcp,udp,raw}.bind_all_fibs. По умолчанию они установлены в 1 для обратной совместимости. Установка их в 0 изменяет поведение сокета соответствующего протокола таким образом, что игнорируются пакеты, поступающие не с интерфейса в том же FIB, что и сокет. В этом случае TCP- и UDP-сокеты, принадлежащие разным FIB, также могут быть привязаны к одному адресу. Поведение по умолчанию не изменено. 5dc99e9bb985, 08e638c089ab, 4009a98fe80b (Sponsored by Klara, Inc.) (Sponsored by Stormshield)

Подключение к INADDR_ANY, т.е. использование его в качестве псевдонима для localhost, теперь отключено по умолчанию. Эту функциональность можно повторно включить, установив sysctl net.inet.ip.connect_inaddr_wild в 1. cd240957d7ba (Sponsored by The FreeBSD Foundation)

Новая встроенная инфраструктура разгрузки IPSEC в ядре. См. также примечание о поддержке этого в драйвере mlx5(4). ef2a572bf6 (Sponsored by NVIDIA networking)

Новый флаг ngctl(8), -j, позволяет ему присоединяться и работать внутри клетки, что дает возможность управлять узлами netgraph в клетке, даже если ngctl(8) не установлен внутри него. 72d01e62b082

sockstat(4) теперь по умолчанию будет отображать конечные точки UDP-Lite. 978615d7bf7c

Код совместимости ядра, поддерживающий бинарники ipfw(8) из FreeBSD 7 и 8, был удален. 660255be1ed9 (Sponsored by The FreeBSD Foundation)

Сетевые протоколы

Множество улучшений сетевого стека, включая улучшения производительности и исправления ошибок для стека sctp(4).

Дескрипторы, возвращаемые sctp_peeloff(2), теперь наследуют права доступа Capsicum rights(4) от родительского сокета. ae3d7e27abc9 (Sponsored by The FreeBSD Foundation)

Значение по умолчанию переменной sysctl net.inet.tcp.nolocaltimewait изменилось с 1 на 0. Это означает, что FreeBSD больше не пропускает состояние TIME_WAIT для конечных точек, удаленный адрес которых является локальным. Новая переменная sysctl net.inet.tcp.msl_local может использоваться для контроля времени пребывания этих конечных точек в состоянии TIME_WAIT. Переменная sysctl net.inet.tcp.nolocaltimewait устарела и планируется к удалению в FreeBSD 16. c3fc0db3bc50 (Sponsored by Netflix)

Локальные потоковые сокеты (AF_UNIX/SOCK_STREAM) и сокеты последовательного потока пакетов (AF_UNIX/SOCK_SEQPACKET) были улучшены для лучшей передачи больших объемов данных и времени цикла (round trip). Сокет SOCK_SEQPACKET был доведен до соответствия спецификации и теперь ведет себя как настоящий потоковый сокет, тогда как в предыдущих выпусках FreeBSD он мог проявлять особенности датаграммного сокета. Приложения, которые использовали SOCK_SEQPACKET некорректно и полагались на старые ошибки реализации, возможно, потребуется скорректировать. d15792780760

Беспроводные сети

Слой совместимости LinuxKPI 802.11 linuxkpi_wlan(4) получил поддержку протокола Galois/Counter Mode Protocol (GCMP) из wlan_gcmp(4). (Sponsored by The FreeBSD Foundation)

Вслед за другими драйверами прошивка iwlwififw(4) была удалена из базовой системы в пользу решения на основе портов и поддержки fwget(8). В случае обновления с более ранних выпусков пользователи должны предварительно установить пакеты прошивки. (Sponsored by The FreeBSD Foundation)

Беспроводной драйвер iwlwifi(4) поддерживает 802.11ac (VHT) для некоторого оборудования Intel Wi-Fi 5 и для всего оборудования Intel Wi-Fi 6 и Wi-Fi 7. (Sponsored by The FreeBSD Foundation) Беспроводной драйвер iwx(4) поддерживает 802.11ac (VHT) для оборудования Intel Wi-Fi 6. (Sponsored by The FreeBSD Foundation) Беспроводной драйвер rtwn(4) поддерживает 802.11ac (VHT) для чипсетов RTL8812A и RTL8821A. Беспроводной драйвер rtw89(4) поддерживает 802.11g для некоторого оборудования Realtek Wi-Fi 6 и Wi-Fi 7. a2d1e07f6451 (Sponsored by The FreeBSD Foundation)

Поддержка оборудования

Этот раздел охватывает общую поддержку оборудования для физических машин, гипервизоров и сред виртуализации, а также изменения и обновления оборудования, которые не подходят в другие разделы этого документа.

Пожалуйста, ознакомьтесь со списком оборудования, поддерживаемым 15.0-RELEASE, а также с страницей платформ для полного списка поддерживаемых архитектур процессоров.

Поддержка виртуализации

bhyve(8) и vmm(4) теперь поддерживают платформы arm64 и riscv. Порты sysutils/u-boot-bhyve-arm64 и sysutils/u-boot-bhyve-riscv предоставляют загрузчики для использования на этих платформах. 47e073941f4e d3916eace506 (Sponsored by Arm Ltd) (Sponsored by Innovate UK) (Sponsored by The FreeBSD Foundation) (Sponsored by University Politehnica of Bucharest)

bhyve(4) теперь поддерживает сетевой бэкенд «slirp», который обеспечивает непривилегированную пользовательскую сеть. В настоящее время поддерживаются только входящие подключения к гостевой системе, исходящие подключения от гостевой системы — нет. Для этой функции требуется порт net/libslirp. c5359e2af5ab (Sponsored by Innovate UK)

bhyve(4) теперь может настраивать топологию NUMA для памяти гостевой системы. Кроме того, можно определить политику domainset(9) для каждого гостевого домена NUMA, в которой можно указать память хоста, используемую для поддержки физической памяти каждого гостевого домена NUMA, аналогично опции -n в cpuset(1). Пока это поддерживается только для гостевых систем amd64. f1d705d4f431

Сервер VNC в bhyve(8) теперь будет показывать правильные цвета при использовании клиента www/novnc. f9e09dc5b1d5

При запуске гостевых систем bhyve(8) с загрузочным ПЗУ (т.е. когда bhyveload(8) не используется), bhyve теперь предполагает, что загрузочное ПЗУ включит декодирование PCI BAR. Это несовместимо с некоторыми загрузочными ПЗУ, особенно устаревшими сборками edk2-bhyve. Чтобы восстановить старое поведение, добавьте pci.enable_bars='true' в вашу конфигурацию bhyve. Примечание: пакет uefi-edk2-bhyve был переименован в edk2-bhyve. e962b37bf0ff (Sponsored by Innovate UK)

Опции lpc.bootrom и lpc.bootvars для amd64 bhyve(8) устарели. Вместо них используйте опции верхнего уровня bootrom и bootvars. 43caa2e805c2 (Sponsored by Innovate UK)

Теперь обнаруживается гипервизор NVMM. 34f40baca641

В Hyper-V очистка TLB теперь выполняется с использованием гипервызовов, а не IPI, что обеспечивает улучшение производительности TBL до 40%. 7ece5993b787 (Sponsored by Microsoft)

Совместимость с Linux-бинарниками (Linuxulator)

Флаг AT_NO_AUTOMOUNT теперь игнорируется для всех вариантов stat() в Linuxulator (поскольку поведение, задаваемое флагом, уже соответствует поведению FreeBSD), что улучшает совместимость с Linux-приложениями. 99d3ce80ba07 (Sponsored by The FreeBSD Foundation)

Системные вызовы inotify(2) для Linux теперь реализованы в Linuxulator. (Sponsored by Klara, Inc.)

Мультимедиа

Многочисленные улучшения звукового стека, включая поддержку горячей замены в mixer(8) и добавление mididump(1). cf9d2fb18433 (Sponsored by The FreeBSD Foundation) 7224e9f2d4af (Sponsored by The FreeBSD Foundation)

Добавлена новая утилита sndctl(8), которая объединяет различные интерфейсы для просмотра и управления настройками аудиоустройств (sysctls, /dev/sndstat) в одной утилите с интерфейсом, управляемым элементами управления, аналогичным интерфейсу mixer(8). 44e5a0150835, 9a37f1024ceb (Sponsored by The FreeBSD Foundation)

virtual_oss импортирован в базовую систему. Начиная с FreeBSD 15.0, порт audio/virtual_oss перестанет собираться. Что касается изменений для пользователей, единственное практическое отличие — это процесс установки. Всё предоставляется базовой системой, за исключением следующих опциональных компонентов, которые можно установить из портов:

  • Поддержка бэкенда sndio: audio/virtual_oss_sndio

  • Поддержка бэкенда bluetooth: audio/virtual_oss_bluetooth

  • virtual_equalizer(8): audio/virtual_oss_equalizer

Помимо этого, virtual_oss должен работать как ожидается. Пользователи virtual_oss могут удалить audio/virtual_oss и с этого момента использовать версию из базовой системы. 5a31c623143f (Sponsored by The FreeBSD Foundation)

Документация

В этом разделе рассматриваются изменения на страницах Справочника (man(1)) и другой документации, поставляемой в составе базовой системы.

Страницы Справочника

Новое руководство freebsd-base(7) предоставляет подробности о структуре пакетов базовой системы и о том, как обновлять систему с их помощью. e1632b827b1a

Руководства по файловым системам были перемещены в раздел четыре, Руководство по интерфейсам ядра. 1687d77197c0

Руководство builtin(1) было переписано, содержит оптимизированную информацию и новый раздел о сочетаниях клавиш, встроенных в интерфейс командной строки FreeBSD. 42df4faf7004

Новая страница руководства networking(7) предоставляет краткое руководство по подключению системы к сетям, включая Wi-Fi, и содержит ссылки на другие страницы руководств и справочник. 39f92a4c4c49

Руководство build(7) было пересмотрено, включив инструкции по сборке системы из исходного кода. 275f61111f43

В ccdconfig(8) теперь указаны ссылки на graid(8) и zfs(8) вместо gvinum(8). 55cb3a33d920

Страница руководства ps(1) была переработана, чтобы объяснить общие принципы, и описания в ней были обновлены в соответствии с реальностью. Введение было переработано, чтобы дать полный обзор различных аспектов команды ps(1). Описания нескольких опций и некоторых ключевых слов были исправлены в соответствии с их фактическим поведением и/или расширены. Разделы STANDARDS и BUGS были расширены. ddf144a04b53 (Sponsored by The FreeBSD Foundation)

Страница руководства mac_do(4) была переработана в рамках добавления поддержки нескольких пользователей и групп в качестве целей для одного правила, что привело к изменению синтаксиса правил. В частности, были добавлены разделы JAIL SUPPORT и SECURITY CONSIDERATIONS. bc201841d139 (Sponsored by The FreeBSD Foundation)

Существующее содержание страницы руководства mdo(1) было расширено в рамках документирования новой поддержки полного указания всех пользователей и групп в учетных данных цели. Теперь оно содержит более длинное введение и новый раздел SECURITY CONSIDERATIONS. 20ebb6ec5ac0 (Sponsored by The FreeBSD Foundation) (Sponsored by Google LLC (GSoC 2025))

Контроллеры коммутаторов Ethernet mtkswitch(4), ip17x(4), ar40xx(4) и e6000sw(4) получили начальные страницы руководств. 37f00bc257d, f750a114d2c, 91c975c3913, 6da793a8caa

mount(8) получил пример повторного монтирования всех файловых систем в режиме чтения/записи в однопользовательском режиме. c3e06b23b417

Описания на страницах руководств для модулей lua loader(8) были переформулированы для оптимизации результатов apropos(1). 5d59c1b4f14e

Руководство по стилю для страниц руководств, style.mdoc(5), получило раздел для перечисления поддерживаемого оборудования. При таком перечислении поддерживаемое оборудование будет указано в информации о поддерживаемом оборудовании. В этом выпуске этот раздел был добавлен или переформулирован во многих руководствах.

Проделана большая работа по добавлению sysctl(8) и переменных окружения в Справочник. Попробуйте искать их с помощью apropos Va=here.is.the.sysctl или apropos Ev=here_is_the_environment_variable.

Руководство intro(1) по общим командам было пересмотрено, включив утверждение об установке дополнительных команд и список канонических каталогов команд. cc0af6d5a6c2

Руководство intro(2) по системным вызовам было пересмотрено, включив ссылки и раздел HISTORY из OpenBSD. 9a62cdc01327, 69ff2d754c1c, 6dfbe695c322, de525c502a3a, d846f33bb6d4, 4696ca7baf2f, 9e8df7900f52, bcc57e971597

Раздел intro(5) Справочника по форматам файлов был пересмотрен с включением улучшений из OpenBSD. 8d65152cbfc8, 26ec37653662, 37508388d066, a6175f28da70

Индексное руководство по иерархии файловой системы, hier(7), было пересмотрено, включив множество перекрестных ссылок и более подробную информацию о /usr/local.

Коллекция портов и инфраструктура пакетов

В этом разделе рассматриваются изменения в Коллекции портов FreeBSD, инфраструктуре пакетов, а также в инструментах обслуживания и установки пакетов.

Новый репозиторий FreeBSD-kmods включен в конфигурационный файл pkg(8) по умолчанию /etc/pkg/FreeBSD.conf. Этот репозиторий содержит модули ядра, скомпилированные специально для 15.0-RELEASE, а не для ветки 15-STABLE. Установка модулей ядра из этого репозитория позволяет драйверам с нестабильными интерфейсами ядра, в частности графическим драйверам, работать даже тогда, когда основной репозиторий 15-STABLE содержит пакеты, собранные на предыдущем выпуске. (a47542f71511).

Репозитории FreeBSD и FreeBSD-kmods, определенные в /etc/pkg/FreeBSD.conf, были переименованы в FreeBSD-ports и FreeBSD-ports-kmods соответственно. Пользователям, которые переопределяют их в /usr/local/etc/pkg/repos, необходимо скорректировать свою конфигурацию в соответствии с новыми именами.

Установщик

Установщик FreeBSD, bsdinstall(8), теперь поддерживает загрузку и установку пакетов с прошивками после завершения установки базовой системы FreeBSD. 03c07bdc8b31 (Спонсировано The FreeBSD Foundation)

Изменения в упаковке

The bootonly ISO and mini-memstick image now include the net/wifi-firmware-iwlwifi-kmod and net/wifi-firmware-rtw88-kmod packages, making installations possible over a wireless connection (on systems supported by these firmware packages). 655fcdde1aff (Sponsored by The FreeBSD Foundation)

Пакет net/wifi-firmware-kmod@release был добавлен в набор пакетов на DVD для предоставления необходимых прошивок для большего количества Wi-Fi драйверов. 8c6df7ead19c (Спонсировано The FreeBSD Foundation)

Общие замечания относительно будущих выпусков FreeBSD


Дата последнего изменения: 2 декабря 2025 г. выполнил Vladlen Popolitov