---
title: "Информация о релизе FreeBSD 15.0-RELEASE"
sidenav: download
---

:localRel: 15.0
:releaseCurrent: 15.0-RELEASE
:releaseBranch: 15-STABLE
:releasePrev: 14.0-RELEASE
:releaseNext: 15.1-RELEASE
:releaseType: "release"

include::shared/ru/urls.adoc[]

= Информация о релизе FreeBSD {releaseCurrent}
:doctype: article
:toc: macro
:toclevels: 2
:icons: font

== Аннотация

[.abstract-title]
Информация о релизе FreeBSD {releaseCurrent} содержит сводку изменений, внесённых в базовую систему FreeBSD на линии разработки {releaseBranch}.
Этот документ перечисляет применимые рекомендации по безопасности, выпущенные с момента последнего релиза, а также значительные изменения в ядре FreeBSD и пользовательском пространстве.
Также представлены некоторые краткие замечания по обновлению.

toc::[]

[[intro]]
== Введение

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

Дистрибутив {releaseType}, к которому относится эта информация о релизе, представляет собой последнюю точку на ветке разработки {releaseBranch} между {releasePrev} и будущим {releaseNext}.
Информацию о предварительно собранных, бинарных дистрибутивах {releaseType} на этой ветке можно найти на https://www.FreeBSD.org/releases/[].
Дополнительную информацию о получении этого (или другого) дистрибутива {releaseType} FreeBSD можно найти в link:{handbook}mirrors[приложении по получению FreeBSD] к link:{handbook}[руководству FreeBSD].

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

В этом документе описаны наиболее заметные для пользователя новые или измененные функции в FreeBSD после {releasePrev}.
Как правило, описанные здесь изменения уникальны для ветки {releaseBranch}, если они не отмечены специально как функции MERGED.

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

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

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

[[upgrade-fu]]
=== Обновление из дистрибутивных наборов

Бинарные обновления между промежуточными сборками и релизными версиями поддерживаются с помощью утилиты man:freebsd-update[8].
Ознакомьтесь с процедурой обновления конкретного релиза, с link:../installation/#upgrade-binary[Информацией об обновлении FreeBSD {releaseCurrent}] и с более подробной информацией в разделе Руководства FreeBSD о link:{handbook}cutting-edge/#freebsdupdate-upgrade[процедуре бинарного обновления].
При этом будут обновлены неизменённые пользовательские утилиты, а также неизменённые ядра GENERIC, распространяемые как часть официального релиза FreeBSD.
Утилита man:freebsd-update[8] требует, чтобы обновляемая система имела подключение к сети Интернет.

[[upgrade-rc]]
== Обновление из пакетов

[IMPORTANT]
====
Для пользователей FreeBSD 15.0 сборок PRERELEASE, ALPHA и BETA прямое обновление с помощью утилиты man:pkg[8] выполнить невозможно ввиду последних изменений в инфраструктуре FreeBSD.org.
====

Для систем, установка которых выполнена из пакетов, требуется либо ручное копирование необходимых файлов из копии дерева исходного кода с тегом `15.0-RELEASE`, либо использование альтернативного варианта в виде принудительной установки пакета `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
....

Пользователи, у которых не установлен актуальный исходный код, могут использовать менее безопасный, но более простой подход, включающий проверку контрольных сумм после установки. Поскольку эти файлы не зависят от архитектуры, соответствующие контрольные суммы будут совпадать на всех платформах. Перед обновлением через man:pkg[8] будет необходима активация репозитория пакетов FreeBSD-base:

....
# 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
# mkdir -p /usr/local/etc/pkg/repos
# echo "FreeBSD-base: { enabled: yes }" > /usr/local/etc/pkg/repos/FreeBSD.conf

....

[[upgrade-mk]]
=== Обновление из исходного кода

Обновления с предыдущих версий из исходного кода поддерживаются через компиляцию ветки releng/15.0.
Обратитесь к соответствующим инструкциям в [.filename]#/usr/src/UPDATING#.

[[security-errata]]
== Включенные исправления безопасности и патчи

В этом разделе перечислены различные уведомления о безопасности и исправления, выпущенные после {releasePrev}, которые были устранены в {releaseCurrent}.

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

[.informaltable]
[cols="1,1,1", frame="none", options="header"]
|===
| Бюллетень
| Дата
| Тема

|https://www.freebsd.org/security/advisories/FreeBSD-SA-23:17.pf.asc[FreeBSD-SA-23:17.pf]
|5 декабря 2023 г.
|Уязвимость подмены TCP в man:pf[4]

|https://www.freebsd.org/security/advisories/FreeBSD-SA-23:18.nfsclient.asc[FreeBSD-SA-23:18.nfsclient]
|12 декабря 2023 г.
|Повреждение данных клиента NFS и раскрытие памяти ядра

|https://www.freebsd.org/security/advisories/FreeBSD-SA-23:19.openssh.asc[FreeBSD-SA-23:19.openssh]
|19 декабря 2023 г.
|Атака усечения префикса в протоколе SSH

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:01.bhyveload.asc[FreeBSD-SA-24:01.bhyveload]
|14 февраля 2024 г.
|Доступ man:bhyveload[8] к файлам хоста

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:02.tty.asc[FreeBSD-SA-24:02.tty]
|14 февраля 2024 г.
|Утечка информации man:jail[2]

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:03.unbound.asc[FreeBSD-SA-24:03.unbound]
|28 марта 2024 г.
|Множественные уязвимости в unbound

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:04.openssh.asc[FreeBSD-SA-24:04.openssh]
|1 июля 2024 г.
|Удаленное выполнение кода в OpenSSH до аутентификации

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:05.pf.asc[FreeBSD-SA-24:05.pf]
|7 августа 2024 г.
|pf некорректно сопоставляет различные состояния ICMPv6 в таблице состояний

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:06.ktrace.asc[FreeBSD-SA-24:06.ktrace]
|7 августа 2024 г.
|man:ktrace[2] не отключается при выполнении setuid-бинарника

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:07.nfsclient.asc[FreeBSD-SA-24:07.nfsclient]
|7 августа 2024 г.
|Клиент NFS принимает имена файлов, содержащие разделители пути

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:08.openssh.asc[FreeBSD-SA-24:08.openssh]
|7 августа 2024 г.
|Проблема безопасности асинхронных сигналов в OpenSSH до аутентификации

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:09.libnv.asc[FreeBSD-SA-24:09.libnv]
|4 сентября 2024 г.
|Множественные уязвимости в libnv

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:10.bhyve.asc[FreeBSD-SA-24:10.bhyve]
|4 сентября 2024 г.
|Привилегированный выход гостя из man:bhyve[8] через проброс устройства TPM

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:11.ctl.asc[FreeBSD-SA-24:11.ctl]
|4 сентября 2024 г.
|Множественные проблемы в man:ctl[4] CAM Target Layer

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:12.bhyve.asc[FreeBSD-SA-24:12.bhyve]
|4 сентября 2024 г.
|Привилегированный выход гостя из man:bhyve[8] через контроллер USB

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:13.openssl.asc[FreeBSD-SA-24:13.openssl]
|4 сентября 2024 г.
|Возможная DoS при проверке имен X.509 в OpenSSL

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:14.umtx.asc[FreeBSD-SA-24:14.umtx]
|4 сентября 2024 г.
|Паника ядра или Use-After-Free в umtx

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:15.bhyve.asc[FreeBSD-SA-24:15.bhyve]
|19 сентября 2024 г.
|Чтение за пределами допустимого диапазона в man:bhyve[8] через эмуляцию XHCI

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:16.libnv.asc[FreeBSD-SA-24:16.libnv]
|19 сентября 2024 г.
|Переполнение целого числа в libnv

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:17.bhyve.asc[FreeBSD-SA-24:17.bhyve]
|29 октября 2024 г.
|Множественные проблемы в гипервизоре bhyve

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:18.ctl.asc[FreeBSD-SA-24:18.ctl]
|29 октября 2024 г.
|Неограниченное выделение памяти в man:ctl[4] CAM Target Layer

|https://www.freebsd.org/security/advisories/FreeBSD-SA-24:19.fetch.asc[FreeBSD-SA-24:19.fetch]
|29 октября 2024 г.
|Опция man:fetch[1] для списка отзыва сертификатов не работает

|https://www.freebsd.org/security/advisories/FreeBSD-SA-25:01.openssh.asc[FreeBSD-SA-25:01.openssh]
|29 января 2025 г.
|Обход маскировки нажатий клавиш в OpenSSH

|https://www.freebsd.org/security/advisories/FreeBSD-SA-25:02.fs.asc[FreeBSD-SA-25:02.fs]
|29 января 2025 г.
|Переполнение буфера в некоторых файловых системах через NFS

|https://www.freebsd.org/security/advisories/FreeBSD-SA-25:03.etcupdate.asc[FreeBSD-SA-25:03.etcupdate]
|29 января 2025 г.
|Непривилегированный доступ к системным файлам

|https://www.freebsd.org/security/advisories/FreeBSD-SA-25:04.ktrace.asc[FreeBSD-SA-25:04.ktrace]
|29 января 2025 г.
|Раскрытие неинициализированной памяти ядра через man:ktrace[2]

|https://www.freebsd.org/security/advisories/FreeBSD-SA-25:05.openssh.asc[FreeBSD-SA-25:05.openssh]
|21 февраля 2025 г.
|Множественные уязвимости в OpenSSH

|https://www.freebsd.org/security/advisories/FreeBSD-SA-25:06.xz.asc[FreeBSD-SA-25:06.xz]
|2 июля 2025 г.
|Использование после освобождения в многопоточном декодере xz

|https://www.freebsd.org/security/advisories/FreeBSD-SA-25:07.libarchive.asc[FreeBSD-SA-25:07.libarchive]
|8 августа 2025 г.
|Переполнение целого числа в libarchive, приводящее к двойному освобождению памяти

|https://www.freebsd.org/security/advisories/FreeBSD-SA-25:08.openssl.asc[FreeBSD-SA-25:08.openssl]
|30 сентября 2025 г.
|Множественные уязвимости в OpenSSL

|https://www.freebsd.org/security/advisories/FreeBSD-SA-25:09.netinet.asc[FreeBSD-SA-25:09.netinet]
|22 октября 2025 г.
|`SO_REUSEPORT_LB` нарушает работу man:connect[2] для UDP-сокетов

|https://www.freebsd.org/security/advisories/FreeBSD-SA-25:10.unbound.asc[FreeBSD-SA-25:10.unbound]
|26 ноября 2025 г.
|Отравление кеша в службе local-unbound
|===

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

[.informaltable]
[cols="1,1,1", frame="none", options="header"]
|===
| Исправление
| Дата
| Тема

|https://www.freebsd.org/security/advisories/FreeBSD-EN-23:15.sanitizer.asc[FreeBSD-EN-23:15:sanitizer]
|1 декабря 2023 г.
|Сбой санитайзера Clang при включенном ASLR

|https://www.freebsd.org/security/advisories/FreeBSD-EN-23:16.openzfs.asc[FreeBSD-EN-23:16:openzfs]
|1 декабря 2023 г.
|Повреждение данных OpenZFS

|https://www.freebsd.org/security/advisories/FreeBSD-EN-23:17.ossl.asc[FreeBSD-EN-23:17:ossl]
|5 декабря 2023 г.
|Реализация AES-GCM в man:ossl[4] может давать некорректные результаты

|https://www.freebsd.org/security/advisories/FreeBSD-EN-23:18.openzfs.asc[FreeBSD-EN-23:18:openzfs]
|5 декабря 2023 г.
|Высокая загрузка ЦП потоками ядра ZFS

|https://www.freebsd.org/security/advisories/FreeBSD-EN-23:19.pkgbase.asc[FreeBSD-EN-23:19:pkgbase]
|5 декабря 2023 г.
|Некорректный номер версии pkgbase для FreeBSD {releasePrev}.

|https://www.freebsd.org/security/advisories/FreeBSD-EN-23:20.vm.asc[FreeBSD-EN-23:20:vm]
|5 декабря 2023 г.
|Некорректные результаты от распределителя физической памяти ядра

|https://www.freebsd.org/security/advisories/FreeBSD-EN-23:21.tty.asc[FreeBSD-EN-23:21:tty]
|24 ноября 2023 г.
|man:tty[4] IUTF8 вызывает панику ядра

|https://www.freebsd.org/security/advisories/FreeBSD-EN-23:22.vfs.asc[FreeBSD-EN-23:22:vfs]
|5 декабря 2023 г.
|Каталоги снимков ZFS недоступны по NFS

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:01.tzdata.asc[FreeBSD-EN-24:01:tzdata]
|14 февраля 2024 г.
|Обновление информации базы данных часовых поясов

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:02.libutil.asc[FreeBSD-EN-24:02:libutil]
|14 февраля 2024 г.
|Обход ограничений ресурсов класса входа и маски ЦП

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:03.kqueue.asc[FreeBSD-EN-24:03:kqueue]
|14 февраля 2024 г.
|Ошибка страницы в man:kqueue_close[2] при выходе с использованием man:rfork[2]

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:04.ip.asc[FreeBSD-EN-24:04:ip]
|14 февраля 2024 г.
|Паника ядра, вызванная man:bind[2]

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:05.tty.asc[FreeBSD-EN-24:05:tty]
|28 марта 2024 г.
|Паника ядра TTY

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:06.wireguard.asc[FreeBSD-EN-24:06:wireguard]
|28 марта 2024 г.
|Недостаточные барьеры в WireGuard man:if_wg[4]

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:07.clang.asc[FreeBSD-EN-24:07:clang]
|28 марта 2024 г.
|Аварийное завершение Clang при включении определенной оптимизации

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:08.kerberos.asc[FreeBSD-EN-24:08:kerberos]
|28 марта 2024 г.
|Segfault в Kerberos при использовании слабой криптографии

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:09.zfs.asc[FreeBSD-EN-24:09:zfs]
|24 апреля 2024 г.
|Высокая загрузка ЦП потоками ядра, связанными с ZFS

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:10.zfs.asc[FreeBSD-EN-24:10:zfs]
|19 июня 2024 г.
|Утечка памяти ядра в ZFS

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:11.ldns.asc[FreeBSD-EN-24:11:ldns]
|19 июня 2024 г.
|LDNS использует серверы имен, закомментированные в resolv.conf

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:12.killpg.asc[FreeBSD-EN-24:12:killpg]
|19 июня 2024 г.
|Инверсия порядка блокировок в killpg, вызывающая взаимную блокировку

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:13.libc%2B%2B.asc[FreeBSD-EN-24:13:libc++]
|19 июня 2024 г.
|Некорректный размер, передаваемый при удалении std::string, выделенного в куче

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:14.ifconfig.asc[FreeBSD-EN-24:14:ifconfig]
|7 августа 2024 г.
|Некорректное назначение маски сети в ifconfig

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:15.calendar.asc[FreeBSD-EN-24:15:calendar]
|4 сентября 2024 г.
|Вход в сеанс man:cron[8] / man:periodic[8]

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:16.pf.asc[FreeBSD-EN-24:16:pf]
|19 сентября 2024 г.
|Некорректная обработка состояния ICMPv6 в pf

|https://www.freebsd.org/security/advisories/FreeBSD-EN-24:17.pam_xdg.asc[FreeBSD-EN-24:17:pam_xdg]
|20 октября 2024 г.
|Утечка файлового дескриптора в каталоге выполнения XDG при входе в систему

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:01.rpc.asc[FreeBSD-EN-25:01.rpc]
|29 января 2025 г.
| Разыменование нулевого указателя в клиенте NFSv4

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:02.audit.asc[FreeBSD-EN-25:02.audit]
|29 января 2025 г.
|Аудит системных вызовов отключен DTrace

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:03.tzdata.asc[FreeBSD-EN-25:03.tzdata]
|29 января 2025 г.
|Обновление информации базы данных часовых поясов

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:04.tzdata.asc[FreeBSD-EN-25:04.tzdata]
|10 апреля 2025 г.
|Обновление информации базы данных часовых поясов

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:05.expat.asc[FreeBSD-EN-25:05.expat]
|10 апреля 2025 г.
|Обновление expat до версии 2.7.1

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:06.daemon.asc[FreeBSD-EN-25:06.daemon]
|10 апреля 2025 г.
|Отсутствующие сигналы в man:daemon[8]

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:07.openssl.asc[FreeBSD-EN-25:07.openssl]
|10 апреля 2025 г.
|Обновление OpenSSL до версии 3.0.16

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:08.caroot.asc[FreeBSD-EN-25:08.caroot]
|10 апреля 2025 г.
|Обновление набора корневых сертификатов

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:09.libc.asc[FreeBSD-EN-25:09:libc]
|2 июля 2025 г.
|Аварийное завершение динамически загружаемых библиотек C++ при выходе

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:10.zfs.asc[FreeBSD-EN-25:10:zfs]
|2 июля 2025 г.
|Повреждение в потоках репликации ZFS из зашифрованных наборов данных

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:11.ena.asc[FreeBSD-EN-25:11:ena]
|2 июля 2025 г.
|Сбросы `ena` и паника ядра на экземплярах Nitro v4 или новее

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:12.efi.asc[FreeBSD-EN-25:12:efi]
|8 августа 2025 г.
|man:bsdinstall[8] не копирует правильный загрузчик на системах с прошивкой IA32 UEFI.

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:13.wlan_tkip.asc[FreeBSD-EN-25:13:wlan_tkip]
|8 августа 2025 г.
|Поддержка криптографии TKIP в net80211 не работает для некоторых драйверов

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:14.route.asc[FreeBSD-EN-25:14:route]
|8 августа 2025 г.
|man:route[8] monitor буферизирует слишком много данных при перенаправлении в файл

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:15.arm64.asc[FreeBSD-EN-25:15:arm64]
|16 сентября 2025 г.
|arm64 man:syscall[2] позволяет непривилегированному пользователю вызвать панику ядра

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:16.vfs.asc[FreeBSD-EN-25:16:vfs]
|16 сентября 2025 г.
|man:copy_file_range[2] не устанавливает выходные параметры

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:17.bnxt.asc[FreeBSD-EN-25:17:bnxt]
|16 сентября 2025 г.
|man:bnxt[4] не устанавливает тип среды в некоторых случаях

|https://www.freebsd.org/security/advisories/FreeBSD-EN-25:18.freebsd-update.asc[FreeBSD-EN-25:18:freebsd-update]
|30 сентября 2025 г.
|man:freebsd-update[8] устанавливает библиотеки в неверном порядке
|===

[[architectures]]
== Архитектуры

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

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

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

[[userland-config]]
=== Изменения конфигурации пользовательского окружения

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

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

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

Репозиторий `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 }`.
gitref:5d832135a971[repository=src]

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

[[userland-programs]]
=== Изменения в пользовательских приложениях

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

Программа man:date[1] теперь поддерживает наносекунды.
Например: `date -Ins` выводит "2024-04-22T12:20:28,763742224+02:00", а `date +%N` выводит "415050400".
gitref:eeb04a736cb9[repository=src]
{{< sponsored "Klara, Inc." >}}

Утилита man:dtrace[1] теперь может генерировать машинно-читаемый вывод в форматах JSON, XML и HTML с использованием man:libxo[3].
gitref:aef4504139a4[repository=src] {{< sponsored "Innovate UK" >}}

Утилита man:lastcomm[1] теперь отображает временные метки с точностью до секунд.
gitref:692c0a2e80c1[repository=src] {{< sponsored "DSS Gmbh" >}}

Утилита man:ldconfig[8] теперь поддерживает файлы подсказок с любым порядком байт.
Формат по умолчанию — собственный порядок байт хоста.
gitref:fa7b31166ddb[repository=src]

Утилита man:usbconfig[8] теперь читает описания производителей и продуктов USB из [.filename]#/usr/share/misc/usb_vendors#, когда они доступны, аналогично тому, как это делает man:pciconf[8].
gitref:7b9a772f9f64[repository=src]

Утилита man:env[1] получила опцию для изменения каталога, которая очень похожа на функцию в версии env от GNU, хотя и не поддерживает длинные опции.
gitref:08e8554c4a39[repository=src] {{< sponsored "Klara, Inc." >}}

Утилита man:ps[1] теперь автоматически удаляет столбцы из готовых представлений, которые содержат те же данные, что и некоторые явно запрошенные столбцы.
До этого изменения, если пользователь запрашивал добавление какого-либо «готового представления» (опции `-j`, `-l`, `-u` или `-v`), столбцы в нем, которые были дубликатами явно запрошенных ранее в командной строке, опускались, но это не работало в обратную сторону, когда готовое представление появлялось перед явно запрошенными столбцами.
Кроме того, столбцы с разными ключевыми словами, которые являются псевдонимами одного и того же ключевого слова, теперь также считаются содержащими одни и те же данные,
в дополнение к столбцам с одинаковыми ключевыми словами.
gitref:cd768a840644[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Опция `-O` утилиты man:ps[1] стала более универсальной и предсказуемой.
Список столбцов для отображения man:ps[1] теперь сначала строится без учета опций `-O`.
На втором шаге все столбцы, переданные через `-O`, наконец вставляются после первого столбца PID (если он существует, иначе в начало) в уже построенном отображении, в порядке их появления в качестве аргументов для опций `-O`.
gitref:5dad61d9b949[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Опции `-a` и `-A` утилиты man:ps[1] теперь всегда показывают все процессы.
При комбинировании с другими опциями, влияющими на выбор процессов, кроме `-X` и `-x`, опция `-a` не имела бы эффекта (а `-A` сводилась бы просто к `-x`).
Это противоречило правилу, применяемому ко всем другим опциям выбора, которое гласит, что процесс отображается, как только любая из этих опций была указана и выбирает его, что требуется POSIX и, вероятно, является естественным ожиданием.
В качестве практического следствия, указание `-a` или `-A` теперь приводит к отображению всех процессов независимо от других опций выбора, таких как `-U`, `-p`, `-G` и т.д., кроме опций фильтрации `-X` и `-x`, которые продолжают применяться.
В частности, чтобы отображать только процессы из определенных клеток, нельзя использовать `-a` вместе с `-J`.
Опция `-J`, вопреки своему кажущемуся первоначальному назначению, на практике никогда не работала как фильтр, кроме как случайно с только `-a` из-за ошибки.
gitref:93a94ce731a8[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Утилита man:ps[1] теперь сопоставляет процессы текущего пользователя, используя эффективный идентификатор пользователя (EUID).
Ранее сопоставление производилось по реальному идентификатору пользователя (RUID).
Это приводит man:ps[1] в соответствие с POSIX по этой теме.
gitref:1aabbb25c9f9c4372[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Флаг `-U` утилиты man:ps[1] теперь выбирает процессы по реальным идентификаторам пользователей.
Это то, что требует POSIX для опции `-U` и, вероятно, поведение, которое большинству пользователей действительно нужно в большинстве случаев.
Раньше `-U` выбирало процессы по их эффективным идентификаторам пользователей (что является поведением, требуемым POSIX для опции `-u`).
gitref:995b690d1398[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Утилита man:sysctl[8] получила флаги для фильтрации переменных jail, prison и vnet, так что пользователям не нужно обращаться к исходному коду,
чтобы определить, является ли переменная jail, prison / vnet или нет.
gitref:615c9ce250ee[repository=src]

Утилита man:grep[1] больше не следует символическим ссылкам по умолчанию при рекурсивном поиске.
Это соответствует задокументированному поведению на странице руководства.
gitref:fc12c191c087[repository=src]

Утилита man:mdo[1] теперь поддерживает полное указание всех пользователей и групп в учетных данных цели.
Для удобства, в дополнение к полному явному указанию, она позволяет начинать с базового набора, предоставляющего значения по умолчанию для всех атрибутов, который представляет собой либо учетные данные входа какого-либо пользователя из базы данных паролей, либо текущие учетные данные, а затем выборочно изменять эти атрибуты.
Страница руководства была обновлена для описания новых опций и их взаимодействия.
gitref:4ffcb1a4a99c[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}
{{< sponsored "Google LLC (GSoC 2025)" >}}

При загрузке в однопользовательском режиме man:init[8] теперь изменяет рабочий каталог на `/root`, используя `/` только как запасной вариант.
Ссылка `/.profile` на `/root/.profile` больше не устанавливается.
gitref:b4b91207ab6f[repository=src],
gitref:ca771d7ae527[repository=src]

Устаревший man:ftpd[8] был удален из базовой системы.
Пользователям, которым он еще нужен, можно установить порт `ftp/freebsd-ftpd`.
gitref:259bb93b80c0[repository=src]

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

Утилиты man:bsdconfig[8] и man:bsdinstall[8] теперь используют man:bsddialog[1] вместо GNU dialog.
gitref:c36b3dbc99d1[repository=src],
gitref:04b465777a09[repository=src]

Команда man:jail[8] теперь поддерживает параметр `zfs.dataset` для присоединения списка наборов данных ZFS к клетке.
gitref:e0dfe185cbca[repository=src]

Команда man:jail[8] теперь поддерживает параметры meta и env, которые представляют собой произвольные строки, связанные с клеткой. Эти параметры можно использовать для пометки клетки определенными метаданными или для безопасной передачи информации, к которой можно будет получить доступ внутри клетки. Их можно добавить при создании клетки или изменить позже с помощью man:jail[8].
gitref:30e6e008bc06[repository=src]
{{< sponsored "SkunkWerks, GmbH" >}}

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

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

* `none`: Никогда не сжимать.
* `legacy`: Историческое поведение (`J`=bzip2, `X`=xz, `Y`=zstd, `Z`=gzip).
* `bzip2`, `xz`, `zstd`, `gzip`: Применить указанный метод сжатия.

gitref:61174ad88e33[repository=src],
gitref:906748d208d3[repository=src],
gitref:39d668f1e09e[repository=src]

[[userland-contrib]]
=== Предоставленное программное обеспечение

One True Awk (man:awk[1]) обновлен до 2-го издания с новой поддержкой -csv и поддержкой UTF-8.
Использован снимок 20250804.
gitref:b45a181a74c8[repository=src]
{{< sponsored "Netflix" >}}

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

Библиотека man:jemalloc[3] обновлена до версии 5.3.0.
gitref:c43cad871720[repository=src]

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

Комплекс man:sendmail[8] обновлен до версии 8.18.1, устраняя CVE-2023-51765.
gitref:58ae50f31e95[repository=src]

Калькулятор man:bc[1] обновлен до версии 7.1.0.
gitref:fdc4a7c8012b[repository=src]

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

Утилита man:bsddialog[1] обновлена до версии 1.0.5.
gitref:0595e10ec773[repository=src]

Генератор парсеров man:byacc[1] обновлен до версии 20240109.
gitref:822ca3276345[repository=src]

Библиотека `libarchive` обновлена до версии 3.8.2.
gitref:8a0b57ba54f0[repository=src]

Библиотека `libcbor` обновлена до версии 0.11.0.
gitref:1755b9daa693[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Библиотека `libcxxrt` обновлена до снимка поставщика 6f2fdfebcd62.
gitref:d0dcee46d971[repository=src]

Библиотека `libfido2` обновлена до версии 1.14.0.
gitref:128bace5102e[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Библиотека `libpcap` обновлена до версии 1.10.5.
gitref:26f21a6494b4[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Библиотека man:ncurses[3] обновлена до версии 6.5.
gitref:21817992b331[repository=src]

Утилита man:tcpdump[1] обновлена до версии 4.99.5.
gitref:ec3da16d8bc1[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Проверяющий DNS-резолвер `unbound` обновлен до версии 1.24.1.
gitref:a988846174e0[repository=src]

Инфраструктура компилятора `llvm` обновлена до 19.1.7-0-gcd708029e0b2.
gitref:dc3f24ea8a25[repository=src]

Файловая система OpenZFS обновлена до zfs-2.4.0-rc4.
gitref:7b5b0f43eb06[repository=src]

Компрессоры данных man:xz[1] обновлены до версии 5.8.1.
gitref:128836d304d9[repository=src]

Программа просмотра man:less[1] обновлена до версии v679.
gitref:76bafc906926[repository=src]

Идентификатор файлов man:file[1] обновлен до версии 5.46.
gitref:ae316d1d1cff[repository=src]

Библиотека сжатия данных man:zlib[3] обновлена до версии 1.3.1.
gitref:6255c67c3d1a[repository=src]

База данных часовых поясов, `tzdata`, обновлена до версии 2025b.
gitref:475082194ac8[repository=src]

OpenSSH обновлен до версии 10.0p2.
gitref:8e28d84935f2[repository=src] {{< sponsored "Фонд FreeBSD" >}}

OpenSSL обновлен до версии 3.5.4.
gitref:c0366f908ff4[repository=src]

Lua обновлена до версии 5.4.8.
gitref:3068d706eabe[repository=src]
{{< sponsored "Netflix" >}}

Среда тестирования Google Test {cpp} обновлена до версии 1.15.2.
Одним из заметных изменений является то, что GoogleTest 1.15.x теперь официально требует {cpp}-14 (1.14.x требовала {cpp}-11).
gitref:1d67cec52542[repository=src]

Шрифт консоли `spleen` для man:vt[4] обновлен до версии 2.1.0.
gitref:26336203d32c[repository=src]

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

Драйвер man:rtw88[4] обновлен до Linux v6.17.
Возможная проблема с тем, что устройства не могут пройти аутентификацию, все еще исследуется.
gitref:c1d365f39e08[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Драйвер man:rtw89[4] обновлен до Linux v6.17.
Драйвер недостаточно протестирован и все еще может иметь проблемы.
gitref:b35044b38f74[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Драйвер man:iwlwifi[4] обновлен до Linux v6.17.
Для наборов микросхем на основе BE200 потребуется более новая прошивка, требующая дальнейших исправлений драйвера, которых нет в этом выпуске.
gitref:69caa1cf3ce5[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

[[userland-libraries]]
=== Библиотеки времени выполнения и API

Функция man:setusercontext[3] в `libutil` теперь будет устанавливать приоритет процесса (nice) из файла [.filename]#.login.conf# в домашнем каталоге при соответствующих условиях, а также из системного man:login.conf[5].
Приоритет теперь может иметь значение `inherit`, указывающее, что приоритет должен быть неизменным от родительского процесса.
Аналогично, umask может иметь значение `inherit`.
gitref:c328e6c6ccaa[repository=src],
gitref:d162d7e2ad32[repository=src],
gitref:f2a0277d3e51[repository=src]
{{< sponsored "Kumacom SAS" >}}

Многие операции со строками и памятью в библиотеке C теперь используют расширения SIMD (single instruction multiple data) для повышения производительности, когда они доступны на системах amd64; см. man:simd[7].
{{< sponsored "The FreeBSD Foundation" >}}

Теперь в математической библиотеке man:math[3] на поддерживающих платформах появилась гораздо лучшая реализация 128-разрядной функции `tgammal`.
gitref:8df6c930c151[repository=src]

man:fma[3] теперь возвращает правильно знаковый ноль при определенных малых входных данных (как замечено в тестовом наборе Python).
gitref:dc39004bc670[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Добавлена функция `cap_rights_is_empty`.
Она сообщает, установлены ли какие-либо права в `cap_rights_t`.
gitref:e77813f7e4a3[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

`libcxxrt` обновлен до вышестоящего 6f2fdfebcd62.
gitref:d9901a23bd2f[repository=src]

Улучшена точность man:asinf[3] и man:acosf[3].
gitref:33c82f11c267[repository=src]

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

`libc` содержит функции совместимости, позволяющие запускать исполняемые файлы/библиотеки, скомпилированные для старых версий FreeBSD.
Те из них, которые сами используют совместимые системные вызовы, не ссылались на них правильно, что вызывало некорректное поведение во время выполнения.
Это было исправлено.
gitref:47f5f89dbd27[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Функция man:readdir_r[3] устарела и может быть удалена в будущих выпусках.
Ее использование в программе приведет к предупреждениям во время компиляции и компоновки.
gitref:2bd157bc732a[repository=src]
{{< sponsored "Klara, Inc." >}}

Динамический компоновщик man:rtld[1] получил поддержку флага статического компоновщика, задаваемого параметром `-z initfirst`.
gitref:78aaab9f1cf359f[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

[[userland-misc]]
=== Разное

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

Поддержка Unicode обновлена до 16.0.0, а CLDR — до 45.0.0.
gitref:ddfc6f84f242[repository=src]

[[userland-deprecated-programs]]
=== Устаревшие приложения

man:fdisk[8] давно устарел в пользу man:gpart[8], но не был удален; запуск этого приложения будет показывать предупреждение о переходе на man:gpart[8].
gitref:3958be5c29da[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Добавлено уведомление об устаревании man:syscons[4].
man:syscons[4] несовместим с UEFI, не поддерживает UTF-8 и блокируется глобальным мютексом Giant.
Конкретных сроков его удаления еще нет, но поддержка блокировки Giant, как ожидается, исчезнет через один или два основных цикла выпуска.
gitref:8c922db4f3d9[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Утилита `shar` была удалена.
Она продолжает существовать как порт package:sysutils/freebsd-shar[].
gitref:3fde39073c72[repository=src]

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

База данных man:publickey[5] была удалена.
Она использует DES, и мы надеемся, что никто не использует это в 2025 году.
gitref:9197c04a251b[repository=src]

[[cloud]]
== Поддержка облачных сред

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

{releaseCurrent} поддерживает cloudinit, включая скрипт запуска `nuageinit` и поддержку раздела `config-drive`.
Он совместим с OpenStack и многими хостинг-провайдерами.
См. веб-сайт https://cloud-init.io[cloud-init] и сообщения коммитов,
gitref:16a6da44e28d[repository=src] gitref:227e7a205edf[repository=src] {{< sponsored "OVHcloud" >}}

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

Проект FreeBSD теперь публикует образы контейнеров, совместимые с OCI.
gitref:8a688fcc242e[repository=src]

Проект FreeBSD теперь публикует образы для Oracle Cloud Infrastructure.
См.
link:https://cloudmarketplace.oracle.com/marketplace/app/freebsd-release[список FreeBSD в Oracle Cloud Infrastructure]
для получения дополнительной информации.
gitref:77b296a2582b[repository=src]

API "shutdown" и "reboot" в облаке Amazon EC2 теперь работают для экземпляров arm64 ("Graviton").
gitref:28b881840df7[repository=src] {{< sponsored "Amazon" >}}

Несколько исправлений ошибок и изменений конфигурации в совокупности позволяют осуществлять горячее подключение устройств как на x86, так и на экземплярах EC2 arm64 ("Graviton").
gitref:ce9a34b1614e[repository=src],
gitref:55c3348ed78f[repository=src],
gitref:d70bac252d30[repository=src]
{{< sponsored "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.
gitref:953142d6baf3[repository=src] {{< sponsored "Amazon" >}}

Проект FreeBSD теперь публикует "сборочные" ("builder") образы EC2; они загружаются в диск в памяти и извлекают чистый образ "base" на корневой диск (смонтированный в `/mnt`) для настройки перед созданием AMI.
gitref:584265890303[repository=src] {{< sponsored "Amazon" >}}

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

AMI EC2 больше не генерируют RSA-ключи хоста по умолчанию для SSH.
Генерацию RSA-ключа хоста можно повторно включить, установив `sshd_rsa_enable="YES"`
в `/etc/rc.conf`, если необходимо поддерживать очень старые SSH-клиенты.
gitref:0aabcd75dbc2[repository=src]
{{< sponsored "Amazon" >}}

FreeBSD {releaseCurrent} теперь поддерживает машины Google Cloud Compute Engine C4.
gitref:7b32f4f0a7fe[repository=src] {{< sponsored "Google" >}}

[[kernel]]
== Ядро

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

[[kernel-general]]
=== Общие изменения в ядре

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

FreeBSD теперь нативно реализует интерфейс man:inotify[2] из Linux.
Сами системные вызовы не являются API-совместимыми, но libc предоставляет API-совместимый интерфейс, поэтому программное обеспечение, зависящее от inotify, может работать без изменений.
gitref:f1f230439fa4[repository=src]
{{< sponsored "Klara, Inc." >}}

Реализованы процедуры `fpu_kern_enter` и `fpu_kern_leave` для powerpc, позволяющие использовать криптографические функции man:ossl[4] в ядре, которые используют регистры с плавающей запятой и векторные регистры.
gitref:91e53779b4fc[repository=src]

Добавлена поддержка устаревшего горячего подключения PCI на arm64.
gitref:355f02cddbf0[repository=src]
{{< sponsored "Arm Ltd" >}}

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

Клетки и дескрипторы клетки теперь имеют связанные фильтры man:kevent[2], которые позволяют отслеживать создание, изменение, присоединение и удаление клеток.
gitref:1bd74d201a53[repository=src],
gitref:9d7f89ef2607[repository=src]

Создан новый общий узел 'mac' для параметров клетки модулей MAC.
Все будущие параметры клетки модулей MAC будут появляться под этим узлом.
См. man:mac[4] для введения в MAC.
Первым потребителем является man:mac_do[4].
gitref:5041b20503db[repository=src], gitref:f3a06ced2568[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

man:mac_do[4] теперь считается готовым к производственному использованию после ряда важных исправлений.
gitref:bbf8af664dc9[repository=src],
gitref:292c814931d9[repository=src],
gitref:53d2e0d48549[repository=src],
gitref:add521c1a5d2[repository=src],
gitref:2a20ce91dc29[repository=src],
gitref:fa4352b74580[repository=src],
gitref:3d8d91a5b32c[repository=src],
gitref:8f7e8726e3f5[repository=src],
gitref:89958992b618[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

man:mac_do[4] теперь поддерживает изменение правил внутри клетки с помощью параметра `security.mac.do.rules` в man:sysctl[8].
gitref:b3f93680e39b[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Представлен системный вызов man:setcred[2] и связанные с ним хуки MAC.
Этот новый системный вызов позволяет установить все необходимые учетные данные процесса за один раз: эффективный, реальный и сохраненный идентификаторы пользователя, эффективный, реальный и сохраненный идентификаторы группы, дополнительные группы и метку MAC.
Помимо обеспечения атомарности, его преимущество перед стандартными системными вызовами установки учетных данных, такими как `setuid()`, `seteuid()` и т.д., заключается в том, что он позволяет модулям MAC, таким как man:mac_do[4], ограничивать набор учетных данных, которые может получить некоторый процесс, точным образом, поскольку теперь они могут видеть конечное желаемое состояние и сравнивать его с исходным.
gitref:ddb3eb4efe55[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

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

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

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

man: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` в очень большое значение.
gitref:960ee8094913[repository=src]
{{< sponsored "Фонд FreeBSD" >}}

Удален параметр man:sysctl[8] `hw.snd.version`.
gitref:7398d1ece5cf[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Код `unit.*` в man:sound[4] был удален, и в рамках этого удален tunable man:loader[8] `hw.snd.maxunit`.
gitref:25723d66369f[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

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

Код, выполняющий итерацию по доменам памяти (NUMA), был улучшен и исправлен несколькими способами, что, в частности, привело к снижению задержки для некоторых графических операций с драйверами DRM.
gitref:da257e519bc0[repository=src],
gitref:83ad6d8d8eee[repository=src],
gitref:b15ff7214020[repository=src]
{{< sponsored "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`, чтобы знать, как адекватно просматривать дополнительные группы.
gitref:be1f7435ef218b1df35[repository=src]
{{< sponsored "the FreeBSD Foundation" >}}

[[kernel-architecture-specific]]
=== Архитектурно-зависимые изменения

В amd64 FreeBSD теперь поддерживает более 4 ТБ оперативной памяти на современных машинах, имеющих функцию CPU LA57.
gitref:d390633cf8cf[repository=src]
{{< sponsored "the FreeBSD Foundation" >}}

В amd64 обработка регистров `%fsbase`/`%gsbase` и базового адреса TLS была переработана, что делает их более полезными для приложений, напрямую манипулирующих контекстом CPU.
gitref:68ba38dad3[repository=src]
{{< sponsored "the FreeBSD Foundation" >}}

[[drivers]]
== Устройства и драйверы

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

[[drivers-device]]
=== Драйверы устройств

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

Доступен драйвер для контроллеров Ethernet серии Intel E800 man:ice[4], поддерживающих работу на скорости 100 Гбит/с.
Он был обновлен до версии 1.43.2-k.
gitref:38a1655adcb3[repository=src] {{< sponsored "Intel Corporation" >}}

В драйвер man:iwlwifi[4] для устройств Wi-Fi от Intel внесены многочисленные улучшения стабильности.
{{< sponsored "The FreeBSD Foundation" >}}

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

Драйвер Ethernet man:smsc[4] теперь может получать значение `smsc95xx.macaddr`, передаваемое некоторыми моделями Raspberry Pi, и использовать его для MAC-адреса.
Он всегда использует стабильный MAC-адрес, даже если в EEPROM нет адреса.
gitref:028e4c6548e4[repository=src]

Фреймворк `snd_clone` был удален из звуковой подсистемы, включая связанные sysctl, упрощая систему.
Узлы на канал ([.filename]#/dev/dspX.Y#) больше не создаются, только основное устройство ([.filename]#/dev/dspX#).
gitref:e6c51f6db8d7[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Теперь звук поддерживает асинхронное отключение устройств.
Это значительно упрощает горячее подключение и отключение таких устройств, как USB-гарнитуры, и облегчает использование PulseAudio в случаях, требующих перехода операционной системы в режим сна и пробуждения (suspend и resume).
gitref:d692c314d29a[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

`ice_ddp` обновлен до версии 1.3.41.0.
gitref:a9d78bb714e3[repository=src] {{< sponsored "Intel Corporation" >}}

Добавлена поддержка Tiger Lake-H в драйвер man:hda[4].
gitref:dbb6f488df6e[repository=src]

Добавлена поддержка Meteor Lake в драйвер man:ichsmb[4].
gitref:14c22e28e4ee[repository=src]
{{< sponsored "Framework Computer Inc" >}}
{{< sponsored "The FreeBSD Foundation" >}}

Добавлена поддержка Meteor Lake в драйвер man:ig4[4].
gitref:56f0fc0011c2[repository=src]

Поддержка Realtek 8156/8156B перенесена из man:cdce[4] в man:ure[4] для повышения производительности и надежности.
gitref:630077a84186[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Добавлена поддержка объектов ACPI GPIO _AEI.
gitref:1db6ffb2a482[repository=src] {{< sponsored "Amazon" >}}

man:nvme[4] и man:nvmecontrol[8] включены для всех архитектур.
gitref:24687a65dd7f[repository=src],
gitref:aba2d7f89dcf[repository=src]
{{< sponsored "Chelsio Communications and Netflix" >}}

Версия драйвера man:mpi3mr[4] обновлена до 8.14.0.2.0.
gitref:e6d4b221ba7c[repository=src]

Заголовок MPI для man:mpi3mr[4] обновлен до версии 36.
Это соответствует последней спецификации MPI.
Это включает обновленные структуры, определения полей и константы, необходимые для совместимости с обновленной прошивкой.
gitref:60cf1576501d[repository=src]

Драйвер man:mpi3mr[4] теперь включен в GENERIC.
gitref:e2b8fb2202c2[repository=src]

man:iwmbtfw[4]: Добавлена поддержка адаптеров Bluetooth 9260/9560.
Необходимые файлы прошивки уже включены в порт package:comms/iwmbt-firmware[].
gitref:8e62ae9693bd[repository=src]

Версия драйвера man:ena[4] обновлена до v2.8.1.
gitref:a1685d25601e[repository=src] {{< sponsored "Amazon, Inc." >}}

man:bnxt[4]: Включена поддержка NPAR на сетевых картах BCM57504 10/25GbE.
gitref:54f842ed8897[repository=src]

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

man:bnxt[4]: Добавлена поддержка модулей скорости 400G.
gitref:32fdad17f060[repository=src]

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

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

Удален старый обработчик sysctl itr из man:em[4].
Эта реализация имела различные ошибки. Преобразование/масштабирование единиц измерения было неверным, и она также неправильно обрабатывала устройства 82574L или man:igb[4].
С новым кодом AIM ожидается, что большинству пользователей не потребуется вручную настраивать этот параметр.
gitref:edf50670e215[repository=src]
{{< sponsored "BBOX.io" >}}

Добавлена поддержка адаптеров USB-to-Serial от Brainboxes в man:uftdi[4].
gitref:47db906375b5[repository=src]

Добавлен драйвер man:iwx[4], поддерживающий серию беспроводных сетевых адаптеров M.2 Intel Wi-Fi 6.
gitref:2ad0f7e91582[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Новый драйвер сотовых модемов поддерживает USB-сетевые устройства, реализующие Mobile Broadband Interface Model (MBIM): man:umb[4].
Сопутствующий инструмент man:umbctl[8] используется для отображения или установки параметров интерфейса сотового модема MBIM (4G/LTE).
gitref:0f1bf1c22a0c[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

man:smbios[4] теперь сначала ищет точку входа SMBIOS v3 (64-разрядную), даже если загрузка произведена из BIOS.
Это позволяет обнаруживать и сообщать правильную версию SMBIOS с BIOS, которые предоставляют только таблицу v3, как это происходит на виртуальных машинах Hetzner.
Для машин, предоставляющих обе таблицы, использовать таблицу v3 в приоритете, согласованно со случаем загрузки EFI.
gitref:bc7f6508363c[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

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

- Мыши с абсолютным позиционированием в виртуализированных средах через man:hms[4]
- Дигитайзеры и устройства-стилусы через man:hpen[4]
- Составные HID-устройства, такие как клавиатуры и мыши,
  совместно использующие один USB-интерфейс
- Специальные функциональные клавиши клавиатуры (громкость, яркость и т.д.)
  через man:hcons[4] и man:hsctrl[4]
- Игровые контроллеры, включая геймпады Xbox 360 и PS4 через man:xb360gp[4] и man:ps4dshock[4],
  а также универсальные контроллеры через man:hgame[4]
- Сырые HID-устройства через man:hidraw[4]

Ключи безопасности FIDO/U2F продолжают поддерживаться через автоматически
загружаемый драйвер man:u2f[4]. Имена устройств и обработка протокола для
этих устройств не изменились.
gitref:74072e9f16c1[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Добавлен драйвер man:udbc[4], обеспечивающий отладку на стороне хоста для целей с использованием xHC debug.
gitref:d566b6a70bcb[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Добавлен драйвер man:ufshci[4], поддерживающий контроллеры Universal Flash Storage (UFS).
gitref:1349a733cf28[repository=src]  {{< sponsored "Samsung Electronics" >}}

Драйвер man:mlx5[4] теперь поддерживает встроенную разгрузку IPSEC на сетевых картах Nvidia ConnectX-6+, используя новую инфраструктуру разгрузки IPSEC в ядре.
gitref:e23731db48ef[repository=src]
{{< sponsored "NVIDIA networking" >}}

Поддержка таймера watchdog в концентраторе ввода-вывода Intel 6300ESB добавлена в драйвер man:ichwd[4].
Это предназначено в первую очередь для пользователей QEMU, где этот таймер watchdog служит таймером по умолчанию и единственным для виртуальных машин x86.
gitref:2b74ff5fceb6623f6[repository=src]

Драйвер man:qat[4] получил поддержку устройства 402xx с ID 0x4944/0x4945.
gitref:138e36514fe8[repository=src]
{{< sponsored "Intel Corporation" >}}

[[drivers-removals]]
=== Устаревшие и удаленные драйверы

Драйвер шины man:agp[4] устарел и планируется к удалению во FreeBSD 16.0.
gitref:92af7c97e197[repository=src],
gitref:cadadd1a0398[repository=src]

Контроллер гибких дисков IBM PC, man:fdc[4], и связанные утилиты устарели и планируются к удалению в FreeBSD 16.0.
gitref:4c736cfc69a7[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Шина man:firewire[4] и связанные драйверы устарели и планируются к удалению в FreeBSD 16.0.
gitref:fc889167c319[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Драйвер Ethernet man:le[4] устарел и планируется к удалению в FreeBSD 16.0.
gitref:e4d6433e9c03[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

man:syscons[4] запланирован к удалению в будущих выпусках, и в руководствах добавлено уведомление об устаревании, чтобы пользователи перешли на man:vt[4].
gitref:2bc5b1d60512[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

USB-драйвер 802.11g man:upgt[4] устарел и планируется к удалению в FreeBSD 16.0.
gitref:7f8a5c5a1585[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

[[storage]]
== Подсистема хранения данных

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

[[storage-general]]
=== Общие изменения в системах хранения

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

Добавлена поддержка доступа к удаленным контроллерам NVMe over Fabrics через транспорт TCP.
В man:nvmecontrol[8] добавлены новые команды для установления соединений с удаленными контроллерами.
После установления соединения они передаются модулю ядра man:nvmf[4], который создает устройства `nvme__X__` и экспортирует удаленные пространства имен как диски man:nda[4].
gitref:a1eda74167b5[repository=src],
gitref:1058c12197ab[repository=src]
{{< sponsored "Chelsio Communications" >}}

Добавлена поддержка экспорта пространств имен удаленным хостам NVMe over Fabrics через транспорт TCP.
Модуль ядра man:nvmft[4] добавляет новый интерфейс в целевой слой CAM, который экспортирует LUN man:ctl[4] как пространства имен NVMe удаленным хостам.
Демон man:ctld[8] теперь поддерживает контроллеры NVMe в дополнение к целям iSCSI и отвечает за прием входящих запросов на подключение и передачу подключенных пар очередей в man:nvmft[4].
gitref:a15f7c96a276[repository=src],
gitref:66b5296f1b29[repository=src]
{{< sponsored "Chelsio Communications" >}}

Добавлена поддержка динамического изменения размера пространств имен NVMe.
Драйверы man:nvd[4] и man:nda[4] теперь уведомляют geom об изменениях размеров в реальном времени.
gitref:86d3ec359a56[repository=src]
{{< sponsored "Netflix" >}}

[[storage-nfs]]
=== NFS

Значение по умолчанию настройки `nfs_reserved_port_only`
в man:rc.conf[5] изменилось.
Сервер NFS FreeBSD теперь требует, чтобы исходный порт
запросов находился в диапазоне привилегированных портов (т.е. ≤ 1023), что, как правило,
требует наличия у клиента повышенных привилегий в его локальной системе.
Предыдущее поведение можно восстановить, установив `nfs_reserved_port_only=NO`
в man:rc.conf[5].
gitref:6d5ce2bb6344[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Определена новая опция командной строки `-a` для man:mountd[8], которая предотвращает экспорт файловой системы с флагом `-alldirs`, если путь к каталогу не является точкой монтирования файловой системы сервера.
gitref:07cd69e272da[repository=src]

Структура NFS-дескрипторов файлов для файловых систем man:tarfs[4], man:tmpfs[4], man:cd9660[4] и man:ext2fs[4] изменилась.
Серверу NFS, экспортирующему любую из этих файловых систем, потребуется, чтобы его клиенты отмонтировали и снова смонтировали экспорты.
gitref:4db1b113b151[repository=src],
gitref:1ccbdf561f41[repository=src],
gitref:205659c43d87[repository=src],
gitref:cf0ede720391[repository=src],
gitref:8ae6247aa966[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

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

Разрешено указывать столько групп в опциях `-maproot` или `-mapall` в man:exports[5], сколько поддерживается системой.
Ранее ограничение было `NGROUPS_MAX + 1`, где `NGROUPS_MAX` — это всего лишь минимальный максимум разрешенного количества дополнительных групп.
Теперь используется правильное значение `{NGROUPS_MAX} + 1`, где `{NGROUPS_MAX}` получается во время выполнения через man:sysconf[3].
gitref:e87848a8150e[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

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

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

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

[[storage-ufs]]
=== UFS

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

Надежность UFS на томах с более чем 2 ГБ inodes значительно улучшена.
Основная проблема заключалась в некорректной интерпретации 32-разрядного номера inode как знакового, который расширялся знаковым битом в `ino_t`.
gitref:c069ca085bd1[repository=src],
gitref:e36f069ecb47[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

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

[[storage-zfs]]
=== ZFS

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

[[storage-geom]]
=== GEOM

Поддержка томов vinum была удалена.
gitref:f87bb5967670[repository=src],
gitref:e51036fbf3f8[repository=src]

[[boot-loader]]
== Изменения в загрузчике

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

ASCII-арт man:loader[8] снова может быть включен на графических системах с помощью необязательной переменной `loader_gfx` в man:loader.conf[5].
gitref:bef6d85b6de5[repository=src]

man:loader[8] теперь читает локальные конфигурационные файлы, перечисленные в переменной `local_loader_conf_files`, после других конфигурационных файлов, по умолчанию это [.filename]#/boot/loader.conf.local#.
gitref:a25531db0fc2[repository=src]

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

Определение консоли в man:loader[8] было улучшено на системах EFI.
Если переменная ConOut отсутствует, проверяется ConIn.
Если найдено несколько устройств, предпочтение отдается последовательному порту.
gitref:20a6f4779ac6[repository=src] {{< sponsored "Netflix" >}}

Поддержка кадрового буфера в man:loader[8] теперь может использовать только текстовый видео-драйвер, что приводит к экономии места.
gitref:57ca2848c0aa[repository=src] {{< sponsored "Netflix" >}}

Обнаружение ACPI теперь выполняется раньше в man:loader.efi[8] на системах arm64.
Копию [.filename]#loader.efi# на разделе EFI следует обновить на системах arm64, использующих ACPI.
gitref:05cf4dda599a[repository=src] gitref:16c09de80135[repository=src]

Загрузчик LinuxBoot можно использовать для загрузки FreeBSD из Linux на aarch64 и amd64.
gitref:46010641267[repository=src] {{< sponsored "Netflix" >}}

В загрузчик BIOS добавлена обратно поддержка gzip и bzip2, но удалена поддержка графического режима (по умолчанию) для решения проблем с размером.
(Загрузчик EFI не изменился, поддерживая все эти функции.)
gitref:4d3b05a8530e[repository=src] {{< sponsored "Netflix" >}}

Загрузчик BIOS теперь может использовать точку входа SMBIOS v3 (64-разрядную), если ее таблица находится ниже 4 ГБ.
Загрузчик BIOS компилируется как 32-разрядный клиент BTX даже на amd64, поэтому не может обращаться к адресам за пределами 4 ГБ.
Однако 64-разрядная точка входа может ссылаться на таблицу структур ниже 4 ГБ, которую можно использовать, если BIOS не предоставляет 32-разрядную точку входа, как это происходит на виртуальных машинах Hetzner.
gitref:7f005c6699f4[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Загрузчик BIOS теперь отдает предпочтение точке входа SMBIOS v3 (64-разрядной).
Когда присутствуют и 32-разрядная, и 64-разрядная точки входа, спецификация SMBIOS гласит, что 64-разрядная точка входа всегда содержит как минимум все структуры, на которые ссылается 32-разрядная точка входа.
Другими словами, 32-разрядная точка входа предоставляется для совместимости, поэтому предполагается, что у 64-разрядной точки входа больше шансов быть заполненной адекватными значениями.
gitref:3f744fb8b2c5[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Загрузчик EFI теперь отдает предпочтение точке входа SMBIOS v3 (64-разрядной), согласованно с тем, что делается при загрузке BIOS.
Однако есть разница: поскольку загрузчик EFI работает в 64-разрядном режиме на 64-разрядных платформах, нет ограничения, чтобы таблица структур точки входа v3 находилась ниже 4 ГБ.
gitref:96f77576e9ea[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

[[network]]
== Сеть

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

[[network-general]]
=== Общие сетевые изменения

FreeBSD теперь реализует интерфейс `SO_SPLICE`, первоначально из OpenBSD.
Эта функция позволяет пользовательским приложениям «сращивать» два соединенных TCP-сокета вместе, после чего данные, поступающие на один сокет, автоматически перенаправляются через сокет, к которому они сращены, вместо доставки приложению.
gitref:a1da7dc1cdad[repository=src]
{{< sponsored "Klara, Inc." >}}
{{< sponsored "Stormshield" >}}

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

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

Модуль netgraph man:ng_ipfw[4] больше не обрезает cookie до 16 бит, позволяя использовать полные 32 бита.
gitref:dadf64c5586e[repository=src]

Добавлена поддержка AIM (Adaptive Interrupt Moderation) в драйвер man:igc[4].
gitref:472a0ccf847a[repository=src] {{< sponsored "Rubicon Communications, LLC (\"Netgate\") and BBOX.io" >}}

Эта функция также добавлена в драйверы man:lem[4], man:em[4] и man:igb[4].
Считается, что серьезный регресс производительности UDP, появившийся в FreeBSD 12.0, включая NFS поверх UDP, исправлен этим изменением.
gitref:49f12d5b38f6[repository=src] {{< sponsored "Rubicon Communications, LLC (\"Netgate\") and BBOX.io" >}}

Добавлена возможность man:ip6addrctl[8] присоединяться и запускаться в клетке.
Это упростит управление политиками выбора адресов для vnet клетки, особенно для легковесных контейнеров OCI или slim-клетки.
gitref:b709f7b38cc4[repository=src]

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

Новая опция пула route-to "prefer-ipv6-nexthop" в man:pf[4] позволяет маршрутизировать IPv4-пакеты через IPv6-шлюзы.
gitref:65c318630123[repository=src] gitref:d2761422eb0a[repository=src] {{< sponsored "InnoGames GmbH" >}}

man:pf[4] теперь поддерживает синтаксис NAT в стиле OpenBSD.
Можно использовать "nat-to", "rdr-to" и "binat-to" в правилах "pass" и "match". Старый синтаксис "nat on ..." по-прежнему можно использовать.
gitref:e0fe26691fc9[repository=src] {{< sponsored "InnoGames GmbH" >}}

Протокол man: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.
gitref:99475087d63b[repository=src] {{< sponsored "InnoGames GmbH" >}}

Поддержка Kernel TLS теперь включена по умолчанию в ядрах `GENERIC` (по умолчанию) для aarch64, amd64, powerpc64 и powerpc64le.
gitref:b2f7c53430c3[repository=src]
{{< sponsored "Chelsio Communications" >}}

Добавлены настраиваемые параметры `net.inet.{tcp,udp,raw}.bind_all_fibs`.
По умолчанию они установлены в 1 для обратной совместимости.
Установка их в 0 изменяет поведение сокета соответствующего протокола таким образом, что игнорируются пакеты, поступающие не с интерфейса в том же FIB, что и сокет.
В этом случае TCP- и UDP-сокеты, принадлежащие разным FIB, также могут быть привязаны к одному адресу.
Поведение по умолчанию не изменено.
gitref:5dc99e9bb985[repository=src],
gitref:08e638c089ab[repository=src],
gitref:4009a98fe80b[repository=src]
{{< sponsored "Klara, Inc." >}}
{{< sponsored "Stormshield" >}}

Подключение к `INADDR_ANY`, т.е. использование его в качестве псевдонима для `localhost`, теперь отключено по умолчанию.
Эту функциональность можно повторно включить, установив sysctl `net.inet.ip.connect_inaddr_wild` в 1.
gitref:cd240957d7ba[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Новая встроенная инфраструктура разгрузки IPSEC в ядре.
См. также примечание о поддержке этого в драйвере man:mlx5[4].
gitref:ef2a572bf6[repository=src]
{{< sponsored "NVIDIA networking" >}}

Новый флаг man:ngctl[8], `-j`, позволяет ему присоединяться и работать внутри клетки, что дает возможность управлять узлами netgraph в клетке, даже если man:ngctl[8] не установлен внутри него.
gitref:72d01e62b082[repository=src]

man:sockstat[1] теперь по умолчанию будет отображать конечные точки UDP-Lite.
gitref:978615d7bf7c[repository=src]

Код совместимости ядра, поддерживающий бинарники man:ipfw[8] из FreeBSD 7 и 8, был удален.
gitref:660255be1ed9[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

[[network-protocols]]
=== Сетевые протоколы

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

Дескрипторы, возвращаемые man:sctp_peeloff[2], теперь наследуют права доступа Capsicum man:rights[4] от родительского сокета.
gitref:ae3d7e27abc9[repository=src]
{{< sponsored "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.
gitref:c3fc0db3bc50[repository=src]
{{< sponsored "Netflix" >}}

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

[[wireless-networking]]
=== Беспроводные сети

Слой совместимости LinuxKPI 802.11 man:linuxkpi_wlan[4] получил поддержку протокола Galois/Counter Mode Protocol (GCMP) из man:wlan_gcmp[4]. {{< sponsored "The FreeBSD Foundation" >}}

Вслед за другими драйверами прошивка man:iwlwififw[4] была удалена из базовой системы в пользу решения на основе портов и поддержки man:fwget[8]. В случае обновления с более ранних выпусков пользователи должны предварительно установить пакеты прошивки. {{< sponsored "The FreeBSD Foundation" >}}

Беспроводной драйвер man:iwlwifi[4] поддерживает 802.11ac (VHT) для некоторого оборудования Intel Wi-Fi 5 и для всего оборудования Intel Wi-Fi 6 и Wi-Fi 7. {{< sponsored "The FreeBSD Foundation" >}}
Беспроводной драйвер man:iwx[4] поддерживает 802.11ac (VHT) для оборудования Intel Wi-Fi 6. {{< sponsored "The FreeBSD Foundation" >}}
Беспроводной драйвер man:rtwn[4] поддерживает 802.11ac (VHT) для чипсетов RTL8812A и RTL8821A.
Беспроводной драйвер man:rtw89[4] поддерживает 802.11g для некоторого оборудования Realtek Wi-Fi 6 и Wi-Fi 7.
gitref:a2d1e07f6451[repository=src] {{< sponsored "The FreeBSD Foundation" >}}


[[hardware]]
== Поддержка оборудования

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

Пожалуйста, ознакомьтесь со link:https://www.freebsd.org/releases/{localRel}R/hardware[списком оборудования], поддерживаемым {releaseCurrent}, а также с link:https://www.freebsd.org/platforms/[страницей платформ] для полного списка поддерживаемых архитектур процессоров.

[[hardware-virtualization]]
=== Поддержка виртуализации

man:bhyve[4] и man:vmm[4] теперь поддерживают платформы arm64 и riscv.
Порты `sysutils/u-boot-bhyve-arm64` и `sysutils/u-boot-bhyve-riscv` предоставляют загрузчики для использования на этих платформах.
gitref:47e073941f4e[repository=src],
gitref:d3916eace506[repository=src]
{{< sponsored "Arm Ltd" >}}
{{< sponsored "Innovate UK" >}}
{{< sponsored "The FreeBSD Foundation" >}}
{{< sponsored "University Politehnica of Bucharest" >}}

man:bhyve[8] теперь поддерживает сетевой бэкенд «slirp», который обеспечивает непривилегированную пользовательскую сеть.
В настоящее время поддерживаются только входящие подключения к гостевой системе, исходящие подключения от гостевой системы — нет.
Для этой функции требуется порт `net/libslirp`.
gitref:c5359e2af5ab[repository=src] {{< sponsored "Innovate UK" >}}

man:bhyve[8] теперь может настраивать топологию NUMA для памяти гостевой системы.
Кроме того, можно определить политику man:domainset[9] для каждого гостевого домена NUMA, в которой можно указать память хоста, используемую для поддержки физической памяти каждого гостевого домена NUMA, аналогично опции `-n` в man:cpuset[1].
Пока это поддерживается только для гостевых систем amd64.
gitref:f1d705d4f431[repository=src]

Сервер VNC в man:bhyve[8] теперь будет показывать правильные цвета при использовании клиента package:www/novnc[].
gitref:f9e09dc5b1d5[repository=src]

При работе гостевых систем man:bhyve[8] с загрузочным ПЗУ, то есть когда man:bhyveload[8] не используется, bhyve теперь будет исходить из того, что загрузочное ПЗУ активирует декодирование PCI BAR.
Это несовместимо с некоторыми загрузочными ПЗУ, особенно устаревшими сборками `edk2-bhyve`.
Чтобы восстановить старое поведение, добавьте `pci.enable_bars='true'` в вашу конфигурацию bhyve.
Примечание: пакет `uefi-edk2-bhyve` был переименован в `edk2-bhyve`.
gitref:e962b37bf0ff[repository=src]
{{< sponsored "Innovate UK" >}}

Опции `lpc.bootrom` и `lpc.bootvars` для amd64 man:bhyve[8] устарели.
Вместо них используйте опции верхнего уровня `bootrom` и `bootvars`.
gitref:43caa2e805c2[repository=src]
{{< sponsored "Innovate UK" >}}

Теперь обнаруживается гипервизор NVMM.
gitref:34f40baca641[repository=src]

В Hyper-V очистка TLB теперь выполняется с использованием гипервызовов, а не IPI, что обеспечивает улучшение производительности TBL до 40%.
gitref:7ece5993b787[repository=src] {{< sponsored "Microsoft" >}}

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

Флаг `AT_NO_AUTOMOUNT` теперь игнорируется для всех вариантов stat() в Linuxulator (поскольку поведение, задаваемое флагом, уже соответствует поведению FreeBSD), что улучшает совместимость с Linux-приложениями.
gitref:99d3ce80ba07[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Системные вызовы man:inotify[2] для Linux теперь реализованы в Linuxulator.
{{< sponsored "Klara, Inc." >}}

[[multimedia]]
== Мультимедиа

Многочисленные улучшения звукового стека, включая поддержку горячей замены в man:mixer[8] и добавление man:mididump[1].
gitref:cf9d2fb18433[repository=src] {{< sponsored "The FreeBSD Foundation" >}}
gitref:7224e9f2d4af[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

Добавлена новая утилита man:sndctl[8], которая объединяет различные интерфейсы для просмотра и управления настройками аудиоустройств (sysctls, `/dev/sndstat`) в одной утилите с интерфейсом, управляемым элементами управления, аналогичным интерфейсу `mixer(8)`.
gitref:44e5a0150835[repository=src],
gitref:9a37f1024ceb[repository=src]
{{< sponsored "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` и с этого момента использовать версию из базовой системы.
gitref:5a31c623143f[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

[[documentation]]
== Документация

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

[[man-pages]]
=== Страницы Справочника

Новое руководство man:freebsd-base[7] предоставляет подробности о структуре пакетов базовой системы и о том, как обновлять систему с их помощью.
gitref:e1632b827b1a[repository=src]

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

Руководство man:builtin[1] было переписано, содержит оптимизированную информацию и новый раздел о сочетаниях клавиш, встроенных в интерфейс командной строки FreeBSD.
gitref:42df4faf7004[repository=src]

Новая страница руководства man:networking[7] предоставляет краткое руководство по подключению системы к сетям, включая Wi-Fi, и содержит ссылки на другие страницы руководств и справочник.
gitref:39f92a4c4c49[repository=src]

Руководство man:build[7] было пересмотрено, включив инструкции по сборке системы из исходного кода.
gitref:275f61111f435[repository=src]

В man:ccdconfig[8] теперь указаны ссылки на man:graid[8] и man:zfs[8] вместо man:gvinum[8].
gitref:55cb3a33d920[repository=src]

Страница руководства man:ps[1] была переработана, чтобы объяснить общие принципы, и описания в ней были обновлены в соответствии с реальностью.
Введение было переработано, чтобы дать полный обзор различных аспектов команды man:ps[1].
Описания нескольких опций и некоторых ключевых слов были исправлены в соответствии с их фактическим поведением и/или расширены.
Разделы STANDARDS и BUGS были расширены.
gitref:ddf144a04b53[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Страница руководства man:mac_do[4] была переработана в рамках добавления поддержки нескольких пользователей и групп в качестве целей для одного правила, что привело к изменению синтаксиса правил.
В частности, были добавлены разделы JAIL SUPPORT и SECURITY CONSIDERATIONS.
gitref:bc201841d139[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}

Существующее содержание страницы руководства man:mdo[1] было расширено в рамках документирования новой поддержки полного указания всех пользователей и групп в учетных данных цели.
Теперь оно содержит более длинное введение и новый раздел SECURITY CONSIDERATIONS.
gitref:20ebb6ec5ac0[repository=src]
{{< sponsored "The FreeBSD Foundation" >}}
{{< sponsored "Google LLC (GSoC 2025)" >}}

Контроллеры коммутаторов Ethernet man:mtkswitch[4], man:ip17x[4], man:ar40xx[4] и man:e6000sw[4] получили начальные страницы руководств.
gitref:37f00bc257d[repository=src],
gitref:f750a114d2c[repository=src],
gitref:91c975c3913[repository=src],
gitref:6da793a8caa[repository=src]

man:mount[8] получил пример повторного монтирования всех файловых систем в режиме чтения/записи в однопользовательском режиме.
gitref:c3e06b23b417[repository=src]

Описания на страницах руководств для модулей lua man:loader[8] были переформулированы для оптимизации результатов man:apropos[1].
gitref:5d59c1b4f14e[repository=src]

Руководство по стилю для страниц руководств, man:style.mdoc[5], получило раздел для перечисления поддерживаемого оборудования.
При таком перечислении поддерживаемое оборудование будет указано в link:https://www.freebsd.org/releases/{localRel}R/hardware[информации о поддерживаемом оборудовании].
В этом выпуске этот раздел был добавлен или переформулирован во многих руководствах.

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

Руководство man:intro[1] по общим командам было пересмотрено, включив утверждение об установке дополнительных команд и список канонических каталогов команд.
gitref:cc0af6d5a6c2[repository=src]

Руководство man:intro[2] по системным вызовам было пересмотрено, включив ссылки и раздел HISTORY из OpenBSD.
gitref:9a62cdc01327[repository=src],
gitref:69ff2d754c1c[repository=src],
gitref:6dfbe695c322[repository=src],
gitref:de525c502a3a[repository=src],
gitref:d846f33bb6d4[repository=src],
gitref:4696ca7baf2f[repository=src],
gitref:9e8df7900f52[repository=src],
gitref:bcc57e971597[repository=src]

Раздел man:intro[5] Справочника по форматам файлов был пересмотрен с включением улучшений из OpenBSD.
gitref:8d65152cbfc8[repository=src],
gitref:26ec37653662[repository=src],
gitref:37508388d066[repository=src],
gitref:a6175f28da70[repository=src]

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

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

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

Новый репозиторий `FreeBSD-kmods` включен в конфигурационный файл man:pkg[8] по умолчанию `/etc/pkg/FreeBSD.conf`.
Этот репозиторий содержит модули ядра, скомпилированные специально для {releaseCurrent}, а не для ветки {releaseBranch}.
Установка модулей ядра из этого репозитория позволяет драйверам с нестабильными интерфейсами ядра, в частности графическим драйверам, работать даже тогда, когда основной репозиторий {releaseBranch} содержит пакеты, собранные на предыдущем выпуске.
(gitref:a47542f71511[repository=src]).

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

[[Installer]]
=== Установщик

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

[[ports-packages]]
=== Изменения в упаковке

The bootonly ISO and mini-memstick image now include the package:net/wifi-firmware-iwlwifi-kmod[] and package:net/wifi-firmware-rtw88-kmod[] packages, making installations possible over a wireless connection (on systems supported by these firmware packages).
gitref:655fcdde1aff[repository=src] {{< sponsored "The FreeBSD Foundation" >}}

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

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

//
// The FreeBSD Russian Documentation Project
//
// Original EN revision (13.02.2026): c43ac4d9e7cf2c74d418af923df3e457fd5bcd85
//
