Информация о релизе FreeBSD 15.1-RELEASE
Аннотация
Примечания к выпуску FreeBSD 15.1-RELEASE содержат краткий обзор изменений, внесённых в операционную систему в рамках ветки разработки 15-STABLE. В этом документе перечислены соответствующие бюллетени безопасности и исправления, выпущенные после предыдущего релиза, а также значительные изменения в экосистеме.
- Аннотация
- Введение
- Безопасность и информация об ошибках
- Пользовательское окружение
- Поддержка облачных решений
- Ядро
- Устройства и драйверы
- Системы хранения данных
- Изменения в загрузчике
- Сеть
- Поддержка оборудования
- Документация
- Коллекция портов и инфраструктура пакетов
- Общие комментарии относительно будущих выпусков FreeBSD
Введение
В этом документе подробно описаны изменения, внесённые начиная с FreeBSD 15.0-RELEASE.
Инструкции по установке см. в главе Установка FreeBSD Руководства FreeBSD.
Инструкции по обновлению см. в разделе Инструкция по обновлению до FreeBSD 15.1-RELEASE.
Информацию о поддерживаемом оборудовании см. в Списке совместимости оборудования FreeBSD 15.1-RELEASE.
Всем читателям рекомендуется ознакомиться с исправлениями к FreeBSD 15.1-RELEASE перед установкой или обновлением. Документ с исправлениями содержит информацию, обнаруженную на поздних стадиях цикла выпуска, например, известные ошибки, бюллетени безопасности или исправления документации.
Безопасность и информация об ошибках
В этом разделе перечислены различные Бюллетени безопасности и Уведомления об ошибках, появившиеся после 15.0-RELEASE.
Бюллетени безопасности
| Бюллетень | Дата | Тема |
|---|---|---|
22 октября 2025 г. |
SO_REUSEPORT_LB нарушает работу connect(2) для сокетов UDP |
|
26 ноября 2025 г. |
Отравление кэша в службе local-unbound |
|
16 декабря 2025 |
Удалённое выполнение кода через ND6 Router Advertisements |
|
27 января 2026 |
Несколько уязвимостей в OpenSSL |
|
10 февраля 2026 |
Утечка идентификаторов сетевых соединений в blocklistd(8) |
|
24 февраля 2026 |
Локальный отказ в обслуживании и возможное повышение полномочий через маршрутизирующие сокеты |
|
26 марта 2026 |
TCP: возможность дистанционной DoS-атаки (утечка mbuf) |
|
26 марта 2026 |
Дистанционный отказ в обслуживании через обращение к нулевому указателю |
|
26 марта 2026 |
Дистанционное выполнение кода через проверку корректности пакета в RPCSEC_GSS |
|
25 марта 2026 |
pf игнорирует определённые правила, не сообщая об этом |
|
21 апреля 2026 |
Ошибка использования памяти после её высвобождения в коде обработчика TIOCNOTTY в ядре |
|
21 апреля 2026 |
Отсутствие обработки больших страниц памяти в pmap_pkru_update_range() |
|
29 апреля 2026 |
Дистанционный запуск кода через злонамеренную настройку параметров DHCP |
|
29 апреля 2026 |
Локальное повышение полномочий через execve() |
|
29 апреля 2026 |
Обработка особым образом сформированных пакетов SCTP в pf может привести к переполнению стека |
|
29 апреля 2026 |
Дистанционно вызываемая запись в область вне границы выделенной памяти в dhclient |
|
29 апреля 2026 |
Переполнение стека через превышение количества файловых дескрипторов в select() |
|
29 апреля 2026 |
Переполнение распределённой памяти в libnv |
|
20 мая 2026 |
Переполнение буфера стека через setcred(2) |
|
20 мая 2026 |
Обращение к памяти в ядре после её высвобождения через системные вызовы, работающие с файловыми дескрипторами |
|
20 мая 2026 |
Переполнение распределённой памяти в FUSE_LISTXATTR |
|
20 мая 2026 |
Отсутствующая проверка достоверности в ptrace(PT_SC_REMOTE) |
|
20 мая 2026 |
Превышение количества файловых дескрипторов в select(2) вызывает переполнение стека |
|
20 мая 2026 |
Дистанционное выполнение кода при помощи сканирования точек доступа Wi-Fi в программе установки |
|
20 мая 2026 |
Некорректная обработка списка ограничений в libcap_net(3) |
|
9 июня 2026 г. |
Отсутствие проверки разрешений в thr_kill2(2) |
|
9 июня 2026 г. |
Произвольная перезапись файлов через путь приёма KTLS |
|
9 июня 2026 г. |
Множественные уязвимости в пути mmap sound(4) |
|
9 июня 2026 г. |
Отсутствие ограничения режима возможностей в sigqueue(2) |
|
9 июня 2026 г. |
Ошибка использования после освобождения в обработчике параметра сокета IPV6_MSFILTER |
|
9 июня 2026 г. |
Ошибка в Linuxulator при выполнении двоичных файлов setugid |
|
9 июня 2026 г. |
Ошибки в процессорах Arm могут обходить изменения разрешений таблицы страниц |
|
9 июня 2026 г. |
Обход ASLR для исполняемых файлов setuid через procctl(2) |
|
9 июня 2026 г. |
Множественные уязвимости в unbound |
|
9 июня 2026 г. |
Целочисленное переполнение в ioctl CONS_HISTORY vt(4) |
|
9 июня 2026 г. |
Множественные уязвимости в OpenSSL |
|
9 июня 2026 г. |
Недостаточная проверка ответов в резолвере-заглушке ldns |
Уведомления об ошибках
| Уведомление | Дата | Тема |
|---|---|---|
16 декабря 2025 |
Непривилегированное обращение к указателю NULL на уровне ядра |
|
16 декабря 2025 |
Некорректная реализация сквозного доступа к PCI в bhyve(8) |
|
27 января 2026 |
Некорректный формат выдачи команды devinfo |
|
27 января 2026 |
Некорректное выравнивание контекста регистров при обработке сигналов на системах arm64 с поддержкой SVE |
|
27 января 2026 |
Обработчик событий отсутствия страниц памяти обнуляет её некорректно |
|
10 февраля 2026 |
Аварийное завершение работы ядра при сохранении образа памяти процесса на системах arm64 |
|
21 апреля 2026 |
Обработчик событий отсутствия страниц памяти обнуляет её некорректно |
|
21 апреля 2026 |
Повторяющиеся таймеры timerfd(2) могут выдавать некорректные результаты |
|
21 апреля 2026 |
Ошибка компиляции пакетов из базового установочного набора с обновлёнными версиями libucl |
|
29 апреля 2026 |
Некорректное распознавание повторяющихся правил для автоматических таблиц |
|
29 апреля 2026 |
Обновление информации в базе данных часовых поясов |
|
29 апреля 2026 |
Программная ошибка при устаревании TLB в системах AMD с поддержкой INVLPGB |
|
1 мая 2026 |
Чрезмерно строгая проверка запросов в dhclient(8) |
|
20 мая 2026 |
freebsd-update(8) пытается выполнить слияние со сгенерированным файлом |
|
9 июня 2026 г. |
Утечка памяти в syslogd(8) в casper_ttymsg() |
|
9 июня 2026 г. |
Обновление OpenSSL до версий 3.0.20 и 3.5.6 |
Пользовательское окружение
Этот раздел охватывает изменения и дополнения в пользовательских приложениях, системном программном обеспечении сторонних разработчиков и системных утилитах.
Изменения в системных пакетах
Изменения в этом разделе относятся только к системам, установленным из базовых системных пакетов (иногда их называют pkgbase), которые поддерживаются во FreeBSD 15.0 и более поздних версиях.
Программное обеспечение OpenPAM перемещено в новый пакет FreeBSD-pam.
Системы с установленными наборами пакетов FreeBSD-set-minimal или FreeBSD-set-minimal-jail будут выполнять установку этого пакета в автоматическом режиме, каких-либо пользовательских действий не требуется.
В системы, в которых не установлен ни тот, ни другой минимальный набор, в обязательном порядке должен быть установлен этот новый пакет, если требуется поддержка аутентификации через PAM, например, для login(1) или sshd(8).
95cc7f59b7ce.
Программное обеспечение Zstandard, включая утилиту zstd(1), перемещено в новый пакет FreeBSD-zstd.
Системы с установленными наборами пакетов FreeBSD-set-minimal или FreeBSD-set-minimal-jail будут выполнять установку этого пакета в автоматическом режиме, каких-либо пользовательских действий не требуется.
Для остальных систем при наличии потребности в поддержке Zstandard этот пакет должен быть установлен в ручном режиме.
8c61751d078e.
Цели installworld и installkernel теперь блокируются в системах, установленных из пакетов, чтобы избежать неконсистентности базы данных пакетов.
Пользователи, желающие выполнить модернизацию систем из исходного кода, должны сначала отменить регистрацию базовых системных пакетов, как описано в freebsd-base(7).
ef82bdc864c5, 235cb4b4970f.
Изменения в конфигурации пользовательского окружения
Устанавливается и доступна к использованию в консоли vt(4) раскладка клавиатуры us.intl.acc.kbd.
34196ce83f9c.
Устанавливается и доступна к использованию в консоли vt(4) раскладка клавиатуры ноутбука Lenovo. 23eaa98d6dc1.
Оболочка командной строки csh(1), используемая по умолчанию для пользователей root и 'freebsd' в образах релизов, заменена на sh(1). c8763bd078d8.
rc.subr теперь поддерживает указание аудирующего пользователя для сервисов через директивы rc.conf, что позволяет администраторам переопределять идентификатор аудирующего пользователя при запуске сервисов и предотвращать доступ к журналам аудита в ситуациях перезапуска сервисов непривилегированными пользователями при помощи sudo. 7edef9117688. (Sponsored by Modirum MDPay; Klara, Inc.)
Изменения в пользовательских приложениях
Утилита find(1) теперь поддерживает первичные параметры -xattr и -xattrname для поиска файлов по расширенным атрибутам. Параметр -xattr выбирает файлы, имеющие хоть какой-то расширенный атрибут, тогда как -xattrname выполняет отбор по названию конкретного атрибута, перед которым опционально указано некоторое пространство имён, например, "user:" или "system:". 5cbb1e05086c. (Sponsored by Klara, Inc.)
Утилита newfs(8) теперь не разрешает одновременное использование журналирования GEOM и асинхронного обновления. При запросе журналирования GEOM асинхронное обновление автоматически не активируется, а явный запрос обеих функций приводит к сообщению об ошибке. f758262e66dd.
Утилита tr(1) теперь корректно обрабатывает класс символов CCLASS ([:alpha:]) в режиме Unicode, что исправляет ошибку в операциях преобразования регистров для буквенных символов. a51ec1cc5a82.
Режим объединения утилиты diff3(1) сделан совместимым с GNU diff3, что улучшает взаимную заменяемость с другими системами и инструментами. a6f17dd2430b.
Утилита pwd(1) теперь по умолчанию использует параметр -L (логический) в соответствии с семантикой POSIX. Пути, содержащие точки или двойные точки, в логическом режиме отклоняются. 24b95c5ece3d.
В bectl(8) был добавлен флаговый параметр -E для создания пустых загрузочных окружений без клонирования работающего в данный момент окружения. Это позволяет пользователям создавать новое независимое загрузочное системное окружение для установки или настройки в неавтоматизированном режиме. 2b5087e9850b.
Утилита daemon(8) теперь поддерживает указание режима файла выдачи при помощи нового параметра, что позволяет получать доступ к файлам журналов и собирать их пользователям без полномочий root, улучшая совместимость с инструментами ротации журналов. 4bc40d5a624e.
Утилита newfs(8) получила флаговый параметр -u для отключения асинхронных обновлений и их журналирования, что даёт способ отключить асинхронные обновления для файловых систем UFS2, где эти обновления используются по умолчанию.
f5a51cfba15c.
(Sponsored by Klara, Inc.; NetApp, Inc.)
Команда clone в zfs(8) теперь принимает параметр -u, предотвращающий автоматическое монтирование новых созданных наборов данных. Это позволяет пользователям создавать клоны без немедленного их монтирования, что может оказаться полезным при использовании в скриптах или при подготовке наборов данных для последующего использования.
6ab8f46c6c47.
Утилита zdb(8) получила параметр -O для использования совместно с -r для явного указания идентификатора объекта, что позволяет копировать файл по идентификатору объекта, а не по имени.
ccb7c82aa15b.
Для управления политиками аудита была добавлена утилита setaudit(8). dc88f0003e85. (Sponsored by Modirum MDPay; Klara, Inc.)
Утилита ipfs(8) по умолчанию отключена, а её поддержка на уровне ядра теперь не является обязательной. Пользователи, работающие с ipfs, должны обязательно активировать её в конфигурации ядра. 91de9b501aa7.
Утилита sockstat(1) теперь по умолчанию отображает конечные точки UDP-Lite. c10317b0c455.
Утилита dtrace(1) теперь поддерживает переменную ustackdepth на системах arm64, что даёт пользователям возможность для данной архитектуры запрашивать глубину стека в пользовательском пространстве в скриптах DTrace.
00412df3265e.
В диагностических сообщениях ядра, относящихся к DTrace, теперь используется более интуитивно понятный префикс dtrace, что улучшает единообразие поиска в журнале событий.
7781f5e09ffc.
Скрипт bsdinstall теперь по умолчанию выполняет установку pkgbase с компонентами, заданными в переменной COMPONENTS, при этом старый метод установки дистрибутивных наборов остаётся доступным, если определена переменная DISTRIBUTIONS. cb7880bb0900. (Sponsored by ConnectWise)
В cron(8) теперь реализован полный цикл сеанса PAM для пользовательских заданий, что даёт возможность модулям PAM получать учётные данные и устанавливать сеансы до выполнения заданий. Переменные окружения PAM экспортируются процессам задания, при этом пользовательские переменные crontab имеют более высокий приоритет. В /etc/pam.d/cron добавлено используемое по умолчанию правило pam_permit.so для сеанса, что позволяет активировать поддержку сеансов без изменения стандартного поведения. 770479c4cea0.
Системное программное обеспечение сторонних разработчиков
Набор авторизованных сертифицирующих центров был повторно сгенерирован из NSS 3.123.1, при этом были добавлены новые доверенные сертификаты (OISTE Server Root ECC G1, OISTE Server Root RSA G1, SwissSign RSA TLS Root CA 2022, TrustAsia TLS ECC Root CA, TrustAsia TLS RSA Root CA, Certigna Root CA, e-Szigno TLS Root CA 2023, Atos TrustedRoot Root CA ECC G2 2020 и Atos TrustedRoot Root CA RSA G2 2020), а несколько сертификатов были удалены. Несколько центров сертификации, ранее считавшихся доверенными, были перенесены в категорию недоверенных, также было добавлено некоторое количество новых недоверенных сертификатов. 5bb9cd154dfa.
Код для работы с часовыми поясами был обновлён до версии 2026b. b72580fcb0a7.
База данных tzdata была обновлена до версии 2026b. 1e5aff8e5bc6.
Программное обеспечение OpenSSL обновлено до версии 3.5.6. e2fcde7333a5.
Библиотека libfido2 обновлена до версии 1.16.0. a54428834b9d. (Sponsored by The FreeBSD Foundation)
Библиотека expat обновлена до версии 2.7.5. 0b94911946e9.
Утилита xz(1) обновлена до версии 5.8.3. 7176f76d2251.
Библиотека libcbor обновлена до версии 0.13.0. 967186fe0a54. (Sponsored by The FreeBSD Foundation)
Утилита tcpdump(1) обновлена до версии 4.99.6. 6af32a9d37ad. (Sponsored by The FreeBSD Foundation)
Библиотека libpcap обновлена до версии 1.10.6. e0ae00f43186. (Sponsored by The FreeBSD Foundation)
Библиотека zlib(3) обновлена до версии 1.3.2. 74f357256769.
Программное обеспечение OpenZFS обновлено до версии 2.4.2. 409247a6cbd1.
База данных вендоров USB обновлена до версии 2025.12.13. 9b2cba4a8a69.
База данных вендоров PCI, обеспечивающая идентификацию имеющегося оборудования для таких инструментов, как pciconf(8), обновлена до версии 2026-02-10. 2483216eecf3.
Даемон blocklistd(8) обновлён до версии 2026-02-07. d73fac00cdd4.
Шрифт spleen обновлён до версии 2.2.0. В ней добавлены несколько ранее отсутствующих символов, критически важных для страниц Справочника на дисплеях с высоким разрешением, в том числе длинное тире, короткое тире, дефис, угловые скобки, белый квадрат, типографский крестик и двойной крестик. Также в нём улучшено выравнивание символов для различных размеров шрифта. da4c7b4518dd.
Пакет GoogleTest обновлён до версии 1.17.0. Новой версии для компиляции теперь требуется C++17. 0029027156f4.
Библиотека ncurses(3) обновлена до версии 6.6. Обновление совместимо с версией 6.5 на уровне ABI. Документация в формате HTML была удалена. 297d5bf89067.
Утилита nvi(1) обновлена до версии 2.2.2. b840145f1985.
Утилита mtree(8) обновлена до версии 20260111 из NetBSD. e2e7269461e9.
Поддержка Unicode обновлена до версии Unicode 17.0.0 и CLDR 48, при этом было добавлено 4803 символов и 4 новых письменности (сидетская, толонг-сики, загава, тай-йо). Это затрагивает определения региональных настроек, сравнения, отображение финансовой информации и числовых данных для региональных настроек UTF-8. 476a063a88aa.
Утилита bmake(1) обновлена до версии 20251111. 11aa32794394.
Библиотека sqlite3(1) обновлена до версии 3.50.4. e37206a66db0.
Программное обеспечение unbound(8) обновлено до версии 1.25.1. 1b6c85cfac36.
Подсистема blacklist переименована в blocklist (blocklistd(8)) во всей операционной системе. Старые имена в скриптах rc, правилах межсетевых экранов и конфигурационных параметрах продолжают функционировать, однако выдают предупреждающие сообщения. Это изменение соответствует обновлению терминологии в оригинальном коде. 7f6f2139eef9.
Утилита bsddialog(1) обновлена до версии 1.0.5. aa2fe36f5e4b. (Sponsored by The FreeBSD Foundation)
Утилита less(1) обновлена до версии 692. 109324d5e7ab.
Утилита zstd обновлена до версии 1.5.7. 1aa2b46a0707.
Библиотека MIT krb5 обновлена до версии 1.22.2. 3de8ca652d93.
Библиотека Heimdal (Kerberos) обновлена до версии 1.22.2. 3ee9a0f8924d.
Выводимые из эксплуатации приложения
Набор lpr утилит для печати (lpr(1), lpd(8), lpc(8), lpq(1), lprm(1), lp(1), pac(8), lptest(1) и chkprintcap(8)) выводится из эксплуатации и может быть удалён до выпуска FreeBSD 16.0. Пользователям рекомендуется использовать такие альтернативы, как print/cups или sysutils/LPRng из Коллекции портов. 9b75d6ec6929.
Утилита bsdlabel(8) спланирована к удалению во FreeBSD 16.0. Пользователи должны перейти на использование gpart(8) для разметки диска. be24d85ec784. (Sponsored by The FreeBSD Foundation)
Утилита fdisk(8) спланирована к удалению во FreeBSD 16.0. Пользователи должны перейти на использование gpart(8) или bsdinstall(8) для разбиения диска на разделы. 2be4c64a0d27. (Sponsored by The FreeBSD Foundation)
Программные библиотеки и API
Интерфейс posix_spawn(3) теперь поддерживает файловые операции chdir и fchdir, требуемые в POSIX, что позволяет процессам менять их рабочий каталог при порождении дочернего процесса.
43347b26fb46.
Добавлены функции posix_spawnattr_getexecfd_np(3) и posix_spawnattr_setexecfd_np(3), что позволяет использовать файловый дескриптор в качестве исполнимого файла для posix_spawn. 6b9e7e922d8b.
Добавлена функция pthread_tryjoin_np(), которая позволяет одному потоку попытаться присоединиться к другому потоку без блокировки. a8891c29d6a0.
В библиотеке libc функции работы со строками memcpy(3), memmove(3) и memset(3) в архитектуре AArch64 теперь используют аппаратные инструкции работы с памятью (MOPS) при их доступности, что улучшает производительность этих часто используемых операций. d8e700f2eeb9. (Sponsored by Arm Ltd)
В библиотеку libc добавлена совместимая с glibc функция tdestroy(3), что даёт стандартный способ удалять деревья бинарного поиска и улучшает совместимость с программным обеспечением, предполагающим наличие этой функции. 6197518ee905.
Добавлены функции strdupa(3) и strndupa(3), которые выделяют память для копии строки в стеке при помощи alloca(3). Это даёт удобную альтернативу strdup(3) и strndup(3) для временных копий строк, которые автоматически удаляются при возвращении из функции. b2e649a0b98d.
SONAME для библиотек libzfs и libzpool были изменены на libzfs7 и libzpool7 ввиду изменений, меняющих ABI и требующих перекомпиляцию зависимых приложений. 5b2489caf266.
Добавлена библиотека libuvmem, представляющая собой перенос функций распределения памяти ядра vmem(9) на уровень пользовательского окружения и обеспечивающая аналогичный интерфейс для пользовательских приложений. 3ae14e8f332f.
Теперь доступна частичная поддержка версии C23 языка программирования C. Она будет продолжать расширяться, при этом полная поддержка этой версии ожидается во FreeBSD 16. К новым функциям относится появление заголовочного файла <stdbit.h> и функции memalignment(3), обновления в заголовочных файлах <limits.h> и <stdint.h>, включая макросы _WIDTH и char8_t, а также различные другие расширения.
275c11b7ccff,
104488641aca,
24ea81047de7,
5656d0f7453e,
72609bb2bb25,
ff50ace5fe0e,
cbad54ba46e6,
6fc280810ead.
Поддержка облачных решений
В этом разделе описываются изменения в поддержке облачных системных окружений.
Скрипты для сборки Oracle Cloud Infrastructure (OCI) и соответствующие цели удалены. Последние официальные образы OCI относятся к FreeBSD 15.0-RELEASE. 2702a3ac1ab6. (Sponsored by SkunkWerks, GmbH)
Пакет pkg(7) теперь присутствует в образах виртуальных машин и образах, предназначенных для облачных платформ, в которых используется пакетированная базовая система, что позволяет выполнять обновление базовой системы без необходимости установки pkg в ручном режиме из хранилища портов. c8d759230a0e. (Sponsored by Amazon)
В названиях образов семейства GCE теперь присутствуют TARGET и FS, что обеспечивает уникальность наборов образов для каждой архитектуры и файловой системы. Это позволяет избегать выбора несовместимого образа на уровне API инсталляций GCE при использовании названия семейства образов. 0005bb76e2e7.
Прерывания ввода/вывода от устройства ena(4) в системах Graviton (arm64) теперь распределяются между процессорами, а не направляются все на CPU 0; это даёт существенно более высокую производительность работы сети на таких типах инсталляций в EC2. b2ba4131b9b0. (Sponsored by Amazon)
В конфигурациях образов, предназначенных для облачных платформ, появилось автоматическое обновление пакетов при первой загрузке. При первом запуске пакеты базовой системы автоматически актуализируются для обновления системы. 10c4498f93d2. (Sponsored by Google Cloud)
В варианте "small" образов виртуальных машин для EC2 по умолчанию firstboot_pkgs больше не запускается; пользователи, указывающие список пакетов для установки через настройку firstboot_pkgs_list в пользовательских данных EC2, должны теперь также указывать firstboot_pkgs_enable="YES".
b9ee42d7712b.
(Sponsored by Amazon)
Ядро
В этом разделе рассматриваются изменения в конфигурациях ядра, настройке системы и параметрах системного управления, которые не отнесены к другим категориям.
Общие изменения в ядре
На 32-разрядной платформе powerpc и на powerpc64le теперь включён механизм System Dynamic Tracing (SDT), что даёт пользователям возможность использовать пробы DTrace на указанных архитектурах. 769bc6877399.
Добавлен механизм выбора планировщика, позволяющий выбирать различные планировщики ЦПУ при загрузке через настраиваемый параметр. Это даёт основу для будущих реализаций планировщиков. 159a66aecc9c.
Планировщик sched_ule теперь реализован как экземпляр планировщика, что может повлиять на производительность системы и поведение планировщика с точки зрения пользователей.
ec10524db95a.
Конфигурация ядра GENERIC для amd64 включает как планировщик SCHED_ULE, так и SCHED_4BSD, что даёт пользователям возможность выбирать между ними при загрузке при помощи sysctl-параметра kern.sched.
a3b5daf4242f.
В конфигурацию ядра MINIMAL включён драйвер virtio_scsi, позволяющий осуществлять загрузку в виртуальных машинах qemu/kvm. 80dec91da334. (Sponsored by Klara, Inc.; NetApp, Inc.)
Добавлен системный вызов pdwait(2), предназначенный для ожидания дескрипторов процессов, что даёт альтернативу wait4(2) для процессов, созданных при помощи pdfork(2). 758de6465572.
Добавлен системный вызов pdrfork(2), дающий новый механизм создания процесса с предопределённым наследованием ресурсов. 4ae6f372e26c.
Решена проблема конкурентности в коде переключения потоков powerpc, которая могла приводить к зависанию системы при загрузке в многопроцессорных гостевых средах power9 pseries. a50789d8b89b.
sysctl-параметры hw.ata.rotating и hw.ata.unmapped_io спланированы к удалению во FreeBSD 16 вместо FreeBSD 15.
469ab88d107c.
(Sponsored by The FreeBSD Foundation)
vfs.zfs.min_auto_ashift и другие устаревшие sysctl-параметры для ZFS теперь выдают предупреждения при их использовании, указывая на их вывод из эксплуатации и последующее удаление. Пользователи должны адаптировать скрипты и конфигурации к использованию новых названий sysctl-параметров, таких как vfs.zfs.vdev.min_auto_ashift.
f0033878b92e.
(Sponsored by The FreeBSD Foundation)
В слой совместимости с Linux добавлена поддержка команды F_DUPFD_QUERY для fcntl, которая используется с KCMP_FILE из kcmp(2) для проверки эквивалентности файлового дескриптора в контейнерах Linux.
ec8d0b5f5dfb.
Устройства и драйверы
В этом разделе рассматриваются изменения и дополнения в устройствах и драйверах устройств, появившиеся после 15.0-RELEASE.
Драйверы устройств
Драйвер ena(4) обновлён до версии v2.8.3. В неё включено исправление ошибки приёма маршрута для гигантских сетевых пакетов, что может дать более чем десятикратный рост производительности сети. b949f8292de5. (Sponsored by Amazon, Inc.)
Драйвер bcm2838_xhci теперь корректно распознаёт оборудование Raspberry Pi 400 по строке совместимости, что даёт полноценную инициализацию xhci и функциональность USB (включая внешние порты и встроенную клавиатуру) на этой платформе. 861deac98c4c.
Добавлен драйвер bcm2835-virtgpio контроллера GPIO, имеющегося в Raspberry Pi 3B и некоторых адаптерах Compute Module. Это позволяет реализовать управление (зелёным) индикатором ACT LED через gpioled(4). fb10574334ca.
Драйвер smartpqi был обновлён до вендорской версии 14.4690.0.2008 - 15.2.0.2008. В обновлении содержится поддержка новых контроллеров и увеличение лимита на размер буфера ввода/вывода для прозрачного преобразования ioctl из 16 разрядов в 32. 0c370a416b68. (Sponsored by Microchip Technology Inc.)
Драйвер asmc(4) больше не поддерживает 32-разрядные Mac на платформе Intel, явным образом указывая на то, что оборудование i386 не поддерживается. e16f1bf3baa1.
Драйвер mfi(4) теперь поддерживает Fujitsu RAID Controller SAS 6Gbit/s 1GB (D3116), используемый в серверах Fujitsu PRIMERGY. e16e4cd25c1d.
Добавлена поддержка датчика мониторинга аппаратной производительности (hwpmc) для дополнительных моделей процессоров Intel: Alder Lake (модели 6-B7, 6-BA, 6-BF), Alder Lake-N и Emerald Rapids. Пользователи, использующие эти процессоры, могут теперь собирать события при помощи pmc(3) и соответствующих инструментов. В поддержку Emerald Rapids включены определения событий в формате JSON, которые были импортированы из perfmon версии 1.06 компании Intel, что даёт полноценное покрытие событий. a40167734ecb, 6b0cb6ea249e, 9ac702781508. (Sponsored by Stormshield)
Драйвер hid(4) теперь позволяет участникам группы 'game' обращаться к событиям игрового контроллера, что даёт возможность использования контроллеров в непривилегированном режиме через библиотеки, подобные libsdl. d0e1b3edee70.
Драйвер iwx(4) был включён в конфигурацию для построения ядра, что обеспечивает поддержку беспроводных сетевых адаптеров Intel AX210/AX211/AX411 Wi-Fi 6E и Wi-Fi 7. 0f9ab6c5232b.
Драйвер NVMe теперь поддерживает BAR5 для Table BIR и PBA BIR, обеспечивая работоспособность FreeBSD на машинах Google Compute Engine C4 с контроллерами NVMe, которые используют раздельные 32-разрядные регистры BAR4 и BAR5. 6c321dc15d52. (Sponsored by Google)
Драйвер ice(4) теперь поддерживает сетевой адаптер Intel E835-XXV-4. b59a9230a6a8. (Sponsored by Intel Corporation)
Драйвер ice(4) теперь поддерживает адаптеры Intel E835 Ethernet с функциями обеспечения безопасности SPDM и технологией RDMA на подключениях 100Gbps и 200Gbps. 16004d2a9eee. (Sponsored by Intel Corporation)
Драйвер qat(4) теперь поддерживает устройство 402xx (идентификаторы 0x4944/0x4945) через существующих драйвер qat_4xxx. Были добавлены файлы с микропрограммным обеспечением, специфичным для этого драйвера. 88c0ce38bc18. (Sponsored by Intel Corporation)
Драйвер padlock_rng теперь компилируется в архитектуре amd64, что обеспечивает аппаратную генерацию случайных чисел на 64-разрядных процессорах Via Nano, Nano X2 и некоторых процессорах Zhaoxin. 191573ce0bfd.
Удалённые и выводимые из поддержки драйверы
Драйвер hifn(4) помечен как запланированный к удалению во FreeBSD 16.0, что предупреждает пользователей о подготовке к будущим изменениям в совместимости. ba6c676ef3ac.
Драйвер safe(4) помечен к удалению во FreeBSD 16.0, что указывает на вывод из эксплуатации и удаление этого драйвера в будущем. 0ef2ecd0ced4.
Уведомление о выводе драйвера agp(4) из эксплуатации было обновлено для указания его удаления во FreeBSD 16.0, а не 15.0. 92f169fe0f19. (Sponsored by The FreeBSD Foundation)
Драйвер fdc(4) и утилиты для работы с дискетами (fdcontrol(8), fdformat(8), fdread(1) и fdwrite(1)) выводится из эксплуатации. Удаление поддержки планируется осуществить во FreeBSD 16.0. 661b40ffdee2. (Sponsored by The FreeBSD Foundation)
Уведомление о выводе драйвера le(4) из эксплуатации было обновлено для отражения того, что он не был удалён до FreeBSD 15.0, и его поддержка продолжается. 59ba7278499f. (Sponsored by The FreeBSD Foundation)
Системы хранения данных
В этом разделе рассматриваются изменения и дополнения в файловых системах и других системах хранения данных, как локальных, так и сетевых.
Общие изменения в системах хранения
В утилиту mt(1) и библиотеку libmt добавлена поддержка кодов плотности лент LTO-10 и LTO-10P и спецификации. Ленточные устройства LTO-10 обратно не совместимы с предыдущим поколением лент LTO. 7fe98ee4d49a. (Sponsored by Spectra Logic)
ZFS
Минимальные значения времени для scrub и resilver в ZFS были снижены с нескольких секунд до долей секунд, что позволяет завершать циклы групповых транзакций на современном оборудовании быстрее и улучшить производительность операций записи при высокой нагрузке. 35ee242abcba.
Введён новый параметр настройки, zfs_arc_evict_batches_limit, улучшающий производительность параллельного высвобождения памяти в ZFS ARC. Это изменение снижает конкурентность блокировок и может существенно улучшить пропускную способность при определённых видах нагрузок.
8a79d0968006.
Команда zpool(8) prefetch теперь поддерживает метаданные BRT (Block Reference Table), что улучшает производительность для операций клонирования блоков и высвобождения клонированных блоков. Параметр -t теперь является необязательным; при его отсутствии команда выполняет предварительную загрузку как метаданных DDT, так и BRT.
41878d57eaf3.
NFS
Клиент NFS теперь полноценно работает с файловыми системами, не чувствительными к регистру, подобными msdosfs(4), при их экспортировании через NFS. Кэширование имён скорректировано так, чтобы исключить ситуацию неверной диагностики отсутствия в кэше для различных вариантов написания одного и того же имени файла. 406c98d2ca1d.
Бездисковая загрузка в NFSv4 теперь поддерживает конфигурации, использующие nfsuserd(8) для сопоставления имён и идентификаторов. Ядро использует кэш сопоставлений с необходимыми записями для того, чтобы избежать блокировок во время загрузки. Пользователи должны в обязательном порядке задать параметры boot.nfsroot.options="nfsv4" и boot.nfsroot.user_domain="<user.domain>" в файле loader.conf. 692a289922d2.
Добавлена внутренняя инфраструктура для ACL из предварительной версии POSIX в виде расширения NFSv4.2, основанная на Internet Draft. Эти изменения подготавливают клиент и сервер NFS к будущей поддержке, однако на данный момент изменения в логике, видимые пользователям, отсутствуют. Заметьте, что, ввиду внутренних изменений в KAPI, после обновления модули nfscommon.ko, nfscl.ko и nfsd.ko должны быть перекомпилированы из исходного кода. 20bfa56c514b, 2eddaeb3e505, d842c511d84c, dccf41dd1834, 144c1eda3973.
Клиент и сервер NFSv4 теперь поддерживают признак архивности (UF_ARCHIVE), который используется клиентами Windows NFSv4.1, несмотря на вывод его из использования в RFC8881. Это улучшает совместную работу с клиентами Windows NFS. 3a64c667f16f.
Добавлена поддержка монтирования бездисковой корневой файловой системы через NFSv4. Она требует специфичной настройки сервера и клиента в loader.conf(5) и sysctl.conf(5). 2a97b49bc472.
Проверка соответствия iSCSI TargetName при регистрации теперь снова является нечувствительной к регистру, что возвращает соответствие RFC 3722. 379805b29732. (Sponsored by ConnectWise)
Изменения в загрузчике
Этот раздел касается загрузчика, загрузочного меню и других изменений, связанных с загрузкой.
Изменения в загрузчике
К функции ядра splash(4) добавлена демонстрация заставки при завершении работы системы. Пользователи могут настроить эту заставку, указав изображение в формате PNG при помощи директивы shutdown_splash в loader.conf(5).
При аварийном завершении работы ядра экранная заставка поверх выдачи отладчика не выдаётся, что делает доступной информацию об аварийном завершении при отключенном ddb(4).
0bd9b26d19e2,
6a3966f363d3.
(Sponsored by Defenso)
Загрузчик EFI теперь использует функции Blt, реализованные в микропрограммном обеспечении, только при использовании GOP (Graphics Output Protocol), но не UGA (Universal Graphics Adapter). Это улучшает совместимость с более старыми системами MacBook, где функции Blt, реализованные в UGA, работали ненадёжно. d3902baca506.
Сеть
Этот раздел описывает изменения, влияющие на сетевые функции во FreeBSD.
Изменения в сетевых функциях общего характера
Добавлена поддержка для поиска IP-адресов в таблицах ipfw(8) по маске, что даёт возможность использовать префиксы с промежутками и создавать конфигурации межсетевого экрана, более эффективные с точки зрения потребления вычислительной мощности. a9b93531788c. (Sponsored by Yandex LLC)
Межсетевой экран ipfw(8) теперь поддерживает поиск IP-адресов в таблицах по маске, что даёт возможность использовать префиксы с промежутками для повышения эффективности настроек правил межсетевого экрана. Это позволяет создавать конфигурации межсетевого экрана, более эффективные с точки зрения потребления вычислительной мощности, за счёт маскирования несущественных битов в ключах поиска и записях таблиц. a9b93531788c. (Sponsored by Yandex LLC)
Пакеты IPv6 теперь передаются в divert-сокеты, что снимает существовавшее ограничение на использование таких сокетов только для IPv4. Это даёт возможность обрабатывать пакеты IPv6 в приложениях, работающих с divert-сокетами. e5cf3437275f. (Sponsored by OPNsense, Klara, Inc.)
Добавлен настроечный sysctl-параметр net.inet.ipf.jail_allowed для того, чтобы оперировать возможностью изолятора управлять собственными правилами, пулами и настройками ipfilter. По умолчанию доступ запрещён, что требует вмешательства со стороны хостирующей системы в настройки правил изолятора через подключение интерфейса или включения этого sysctl-параметра для управления изолированным окружением.
65bc0a1ade72.
Удалён код совместимости с ipfw(8) версии 3 для FreeBSD 8 и более ранних версий, так как он устарел и больше не нужен. Эта оптимизация может повлиять на системы, всё ещё использующие очень старые конфигурации, однако функциональность для сопровождаемых в настоящее время релизов не изменяется. 9657c50cdd77. (Sponsored by The FreeBSD Foundation)
Добавлена поддержка RFC 7217 в части генерации стабильных адресов IPv6 через новый флаговый параметр 'stableaddr' в ifconfig, а также связанные с этим настраиваемые sysctl-параметры. По умолчания эта возможность отключена и не изменяет актуального поведения системы. Актуализирована документация на странице Справочника о ifconfig(8). 865e0b20ca3c.
Работа с беспроводными сетями
Драйвер беспроводных устройств iwlwifi(4) обновлён на основе версии 7.0 из Linux. В это обновление включены изменения, связанные с поддержкой новых беспроводных устройств Intel. f45e34316eb7. (Sponsored by The FreeBSD Foundation)
Драйвер беспроводных устройств rtw89(4) обновлён на основе версии 7.0 из Linux, что обеспечивает поддержку более новых наборов микросхем Realtek и улучшает стабильность и функциональность. Для нескольких наборов микросхем известные проблемы ещё не устранены. 7ffebcdb702d. (Sponsored by The FreeBSD Foundation)
Драйвер rtw88(4) обновлён на основе версии 7.0 из Linux, в которую включены различные исправления и улучшения для беспроводных устройств Realtek. С некоторыми наборами микросхем наблюдаются проблемы. bcdf750def1d. (Sponsored by The FreeBSD Foundation)
Активирована первичная поддержка драйверов беспроводных устройств, основанных на LinuxKPI, в частности, iwlwifi(4), для систем RISC-V. Хотя на этой архитектуре ACPI поддерживается ещё не полностью, структура драйвера была адаптирована для обеспечения компиляции и работы там, где это возможно. Заметьте, что драйвер rtw89(4) временно не доступен для RISC-V из-за неустранённых зависимостей ACPI. 7990fa2a819c, 24777428cbc2, d301aadc994f, 4a56313c73eb. (Sponsored by The FreeBSD Foundation)
Поддержка оборудования
Этот раздел охватывает общую поддержку оборудования для физических машин, гипервизоров и сред виртуализации, а также изменения и обновления оборудования, которые не подходят в другие разделы этого документа.
Пожалуйста, ознакомьтесь со списком оборудования, поддерживаемым 15.1-RELEASE, а также со страницей платформ для получения полного списка поддерживаемых архитектур процессоров.
Поддержка виртуализации
Добавлен новый настраиваемый параметр изоляторов allow.vmm_ppt для управления сквозным доступом к PCI в изолированных окружениях bhyve(8). Изменение требует явной настройки функциональности сквозного доступа к PCI в изоляторах, что заменяет ранее отсутствующее ограничение. 94066f9a07ad. (Sponsored by The FreeBSD Foundation; Klara, Inc.)
Драйвер работы с GPU, virtio, теперь работает с Parallels Desktop, разделяя запросы на присоединение ресурса, и обеспечивает поддержку работы с графикой в этом виртуализированном окружении. 91ce7a19120a. (Sponsored by Arm Ltd)
Добавлена поддержка регистров Fine-Grained Trap (FGT) в arm64, что обеспечивает расширенные возможности виртуализации для гипервизоров. 89776ce6a7b7. (Sponsored by Arm Ltd)
Выполнено изменение, позволяющее использовать набор инструкций Memory Operations (MOPS) в пользовательском окружении arm64 при наличии соответствующей аппаратной поддержки. Это даёт возможность пользовательским приложениям использовать инструкции MOPS для повышения производительности операций с памятью. 2a9a92ba7bd7. (Sponsored by Arm Ltd)
В удалённый видеобуфер bhyve(8) добавлена поддержка сокетов домена UNIX. Теперь графическая консоль доступна экземплярам bhyve в изоляторах без поддержки сетевых функций. d29dd64b3f88. (Sponsored by Defenso)
Архитектура amd64 теперь поддерживает LASS (Linear Address Space Separation), функцию безопасности, которая помогает изолировать адресные пространства ядра и пользователей. Это изменение может влиять на отладку и низкоуровневое системное программирование. 532c8d3f90b9.
Архитектура amd64 теперь поддерживает стандарт Extended Destination ID, что даёт возможность поддерживать вплоть до 32768 идентификаторов APIC и MSI без переназначения прерываний; в частности, это обеспечивает поддержку для систем "r8i.96xlarge" в EC2. b54646e37a2b. (Sponsored by Amazon)
Документация
В этом разделе рассматриваются изменения страниц Справочника (man(1)) и другой документации, поставляемой в составе базовой системы.
Страницы Справочника
На странице Справочника о sh(1) теперь имеется подробная документация об управлении заданиями, в которой стандартный текст POSIX адаптирован к реализации FreeBSD. 0b5ced487a28.
Добавлены страницы Справочника pdfork(2) и pdwait(2), документирующие системные вызовы pdrfork и pdwait. 780b7f9e0ece.
Задокументирован системный вызов renameat2(2), что даёт пользователям информацию о расширенной функциональности переименований. 3ccc39d38ed8.
Страница Справочника о write(2) теперь включает новый раздел, описывающий гарантированность атомарных операций записи. 514c8f173ce0.
Добавлена страница Справочника о недокументированной функции mq_getfd_np(3) из библиотеки librt(3). Она документирует функцию, присутствующую со времён FreeBSD 11. 992f994bb71e.
Добавлены страницы Справочника о posix_spawnattr_getprocdescp_np(3) и posix_spawnattr_setprocdescp_np(3), документирующие расширения для управления дескрипторами процессов в posix_spawn. 4d8e4b67f5b5.
Добавлена страница Справочника о posix_spawnattr_getexecfd_np(3). ad6a63b4ec6b.
Страница Справочника о pthread_join(3) дополнена документированием функции pthread_tryjoin_np(3), которая даёт пользователям неблокирующую альтернативу для присоединения потоков. d1ac644ccc43.
Добавлены страницы Справочника для нескольких сервисов DTrace, в том числе dtrace_vfs(4) (активность VFS), dtrace_pid(4) (трассировка процесса на пользовательском уровне), dtrace_priv(4) (проверки полномочий) и dtrace_callout_execute(4) (вызов обработчика запланированных функций). 09af13403983, 20fc2b332bd2, 443b7c41d619, 1c0178baa7c3.
Добавлена страница Справочника geom_zero(4), документирующая класс GEOM ZERO и его возможности. 32ef68b0f30d.
Добавлена документация для двух новых sysctl-параметров, tx_reclaim_ticks и tx_reclaim_thresh (iflib(4)). Эти sysctl-параметры влияют на поведение сетевого драйвера в части передачи данных. ef8c912aadad. (Sponsored by Netflix)
Страница Справочника nfsv4(4) теперь включает документацию о настройке корневой файловой системы NFSv4, что даёт руководство к действию пользователям, которые имеют желание использовать эту возможность. 6ef2df5e8e7a.
В базовую систему добавлена новая страница Справочника nlsysevent(4). 56a5d11dd69f.
Добавлена страница Справочника vmgenc(4), документирующая драйвер VM Generation ID Counter, который повторно инициализирует энтропийный пул ядра, когда выявляется клонирование виртуальной машины или восстановление мгновенной копии. 252f0c28855b.
Справка vt(4) теперь включает пример увеличения размера обратной прокрутки и раздел, описывающий консольные шрифты, в том числе преобразование, поддержку и использование. 2da71ee296ad.
Страница Справочника pf.conf(5) теперь содержит nat-to и rdr-to в нотации BNF, что уточняет синтаксис для пользователей.
1c7c2027f2d1.
(Sponsored by Rubicon Communications, LLC ("Netgate"))
Страница Справочника resolver(5) теперь документирует параметры edns0, inet6, insecure1,insecure2, no-check-names и rotate, которые обрабатываются в res_init(3), но ранее не были описаны.
c988f316d6c6.
В d(7) добавлена документация для нескольких функций работы со строками: strchr, strjoin, strrchr, strstr, strtok, strlen и substr.
d086bf34b56f.
Добавлена новая страница Справочника groups(7), описывающая стандартные названия групп. 0ac3db880552.
Страница Справочника ports(7) была существенно улучшена. Раздел FILES расширен и для большей ясности преобразован в три таблицы с кратким описанием отдельных файлов порта. Кроме того, теперь задокументирована переменная DEFAULT_VERSIONS, что даёт пользователям информацию об установке используемых по умолчанию версий для параметров портов.
1b5b7867b67f,
782ea981ea72,
0ebf602e1785.
Страница Справочника tuning(7) теперь документирует параметры планировщика ядра, предоставляя пользователям информацию о доступных параметрах настройки планировщика. 4e5c15f3107e.
Добавлены страницы Справочника для утилит blacklist, выводимых из эксплуатации (blacklistctl(8), blacklistd(8), blacklistd.conf(5) и libblacklist(3)), в которых документируется их вывод из поддержки и прочие нюансы. Это даёт пользователям актуализированную документацию для инструментов blacklist, которые выводятся из эксплуатации и переименованы в blocklist. f935c0f66f75.
Страница Справочника cron(8) обновлена для уточнения формата системного файла crontab. d2fb6b8f80cc.
Форматирование страницы Справочника ifconfig(8) было скорректировано для улучшения её читабельности. c20f5fd44322.
Страница Справочника jail(8) теперь документирует два метода создания изоляторов: из базового пакета и из дистрибутивного набора. f467eb078f51, 5d7cd576d99b.
Страница Справочника shutdown(8) теперь документирует дополнительные форматы времени, которые принимает команда shutdown, что улучшает понятность для пользователей. c13157b87b00.
Добавлена страница Справочника deadfs(9), описывающая соответствующую файловую систему. d8097cf79cfa.
Коллекция портов и инфраструктура пакетов
В этом разделе рассматриваются изменения в Коллекции портов FreeBSD, инфраструктуре пакетов, а также в инструментах обслуживания и установки пакетов.
Для того, чтобы уложиться в ограничение размера DVD в 4.7 GB, оболочка KDE была удалена из образа dvd1.iso, а editors/emacs и editors/vim были добавлены. 142df248ac06.
Изменения в пакетах
Изменения в конфигурации хранилища пакетов обеспечивают перенаправление запросов к пакетам от pkgbase.freebsd.org на зеркала pkg.freebsd.org, что добавляет примерно 70 секунд к операциям установки/модернизации системы pkgbase. Системы с установленными 15.0-PRERELEASE, ALPHA или BETA обрабатываются отдельно, так как они ожидают пакеты, подписанные старыми ключами pkg, а не новыми ключами для подписания pkgbase. 0c87d29a54da.
Пакеты с микропрограммным обеспечением из хранилища kmods записываются на установочный носитель DVD, что обеспечивает возможность использования модулей с микропрограммным обеспечением в релизной версии. b0fbed20ceb9. (Sponsored by https://www.patreon.com/cperciva)
Пакеты ext2 и ntfs добавлены на носители с релизом, что помогает пользователям при переносе пакетов с систем Linux или Windows. 8c8ec2cdc9a9.
Общие комментарии относительно будущих выпусков FreeBSD
Последнее изменение: 16 июня 2026 г. от Vladlen Popolitov