После шести месяцев разработки сформирован релиз FreeBSD 14.1. Установочные образы подготовлены для архитектур amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 и riscv64. Дополнительно подготовлены сборки для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Vagrant.
Основные изменения:
- Проведена работа по улучшению звукового стека. Реализована возможность отсоединения звуковых устройств в асинхронном режиме, что необходимо, например, для горячего отключения звуковых карт с интерфейсом USB. Удалён фреймворк snd_clone и связанные с ним параметры sysctl, что позволило упростить звуковую подсистему. Вместо отдельных файлов устройств для каждого звукового канала (/dev/dspX.Y) теперь создаётся только основной файл устройства (/dev/dspX).
- Функции работы со строками и памятью в libc оптимизированы с использованием инструкций SIMD на системах с архитектурой AMD64. Предложено 17 функций, оптимизированных при помощи SIMD, а также 9 функций, переведённых на вызов функций, оптимизированных через SIMD. При проведении тестов производительность новых функций при обработке строк размером 64 символа увеличилась в 5.54 раза.
- Добавлена встроенная поддержка настройки при помощи cloud-init, инструментария для настройки системы на стадии загрузки. Среди прочего, поддерживается
создание пользователей/групп, добавление ключей ssh, настройка параметров подключения к сети, определение стартового скрита nuageinit и настройка дисковых разделов (config-drive). Реализация совместима с OpenStack и многими хостинг-провайдерами. - Для новых файловых систем UFS2, создаваемых утилитой newfs, по умолчанию включено журналирование (soft updates).
- Предоставлена возможность сборки ядра только с поддержкой IPv6 (INET6), без IPv4 (INET).
- В утилите adduser, применяемой в bsdinstall, обеспечено создание отдельного ZFS dataset (раздела, снапшота или клона) для домашнего каталога пользователя, если ZFS dataset уже используется для родительского каталога. Также добавлена возможность использования шифрования домашних каталогов средствами ZFS. Для управления активацией данных возможностей в adduser.conf добавлены параметры «Zcreate» и «Zencrypt» .
- В libutil в функцию setusercontext добавлена поддержка выставления приоритета процессам на основании настроек из файла «.login.conf», размещённого в домашнем каталоге. При выставлении приоритета или umask добавлена поддержка значения «inherit», при котором приоритет и umask выставляются такими же как у родительского процесса.
- В утилиту date добавлена поддержка наносекундной точности, например, «date -Ins» выведет «2024-06-04T10:20:28,763742224+05:00», а «date +%N» — «415050400».
- В утилите dtrace реализована возможность формирование вывода в форматах, удобных для автоматического разбора и просмотра, таких как JSON, XML и HTML.
- В утилиту usbconfig встроена возможность вывода дополнительной информации об USB-устройствах и производителях, соответствующей описаниям из файла /usr/share/misc/usb_vendors.
- В драйвер ice добавлена поддержка Ethernet-контроллеров Intel E800 с пропускной способностью 100 Gb/s.
- В Ethernet-драйвер msc добавлена поддержка выставления MAC-адреса на основе параметра smsc95xx.macaddr, передаваемого некоторыми моделями плат Raspberry Pi.
- Проведена работа по повышению стабильности драйвера iwlwifi для беспроводных чипов Intel.
- Добавлена возможность использования нескольких областей PCI MCFG на системах amd64 и i386 для сегментирования адресного пространства для PCI-устройств.
- Расширена поддержка оборудования.
- В NFS-обработчике mountd для декодирования имён каталогов в файле exports задействована библиотека strunvis, что позволило использовать в именах каталогов спецсимволы, например, пробелы. Добавлены новые sysctl-переменные kern.rpc.unenc и kern.rpc.tls для настройки NFS-over-TLS.
- В загрузчике обеспечено чтение файлов конфигурации, перечисленных в переменной local_loader_conf_files, после файлов конфигурации, определённых в файле /boot/loader.conf.local. Также добавлена возможность извлечения настроек из SMBIOS в привязке к идентификаторам производителя и продукта. Улучшено определение консоли на системах с EFI. Реализация фреймбуфера в загрузчике теперь может использовать консольные видеодрайверы.
- Реализована возможность использования загрузчика LinuxBoot (loader.kboot) для загрузки FreeBSD из окружений на базе Linux на системах aarch64 и amd64.
- В rc.conf добавлена поддержка параметра kdc_restart, включающего автоматический перезапуск kdc (сервер Kerberos 5) в случае его аварийного завершения. Дополнительно доступен параметр kdc_restart_delay, через который можно установить задержку перед перезапуском.
- По умолчанию в целях сокращения размера отчётов, отправляемых на email, до минимума сокращены сведения об изменениях при выполнении периодически запускаемых работ и скриптов, проверяющих безопасность.
Для настройки уровня вывода можно использовать параметры daily_diff_flags и security_status_diff_flags в periodic.conf. - Обновлены версии сторонних компонентов: Clang/LLVM 18.1.5, OpenZFS 2.2.4, OpenSSH 9.7p1, awk 2024-01-22 (с поддержкой UTF-8 и режима «-csv»), libarchive 3.7.4, sendmail 8.18.1, unbound 1.20.0.
Источник: http://www.opennet.ru/opennews/art.shtml?num=61305