Релиз FreeBSD 14.0

После двух с половиной лет с момента публикации ветки 13.0 сформирован релиз FreeBSD 14.0. Установочные образы подготовлены для архитектур amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 и riscv64. Дополнительно подготовлены сборки для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Vagrant. Ветка FreeBSD 14 станет последней с поддержкой 32-разрядных платформ. Во FreeBSD 15 останется только поддержка 64-разрядных систем, но при этом сохранится возможность сборки 32-разрядных программ и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в 64-разрядном окружении.

Основные изменения:

  • В качестве командного интерпретатора для пользователя root по умолчанию выставлен /bin/sh.
  • Для NVME-устройств по умолчанию на всех платформах задействован драйвер nda. Для возвращения старого драйвера nvd в loader.conf предусмотрена настройка «hw.nvme.use_nvd=1».
  • Добавлена новая утилита «fwget», определяющая оборудование, которому необходимы прошивки, и устанавливающая соответствующие пакеты с прошивками. В настоящее время поддерживаются только PCI-устройства и прошивки для GPU Intel и AMD.
  • Добавлена новая утилита base64 для кодирования и декодирования данных в формате base64.
  • Добавлена утилита tcpsso, позволяющая выставлять опции сокета для существующих соединений TCP (например, можно поменять модуль контроля за перегрузкой или TCP-стек).
  • В качестве агента доставки почты по умолчанию вместо sendmail задействован dma (DragonFly Mail Agent). Sendmail сохранён в базовой поставке и обновлён до версии 8.17.1.
  • В KTLS, реализацию протокола TLS, работающую на уровне ядра FreeBSD, добавлена поддержка аппаратного ускорения TLS 1.3 на принимающей стороне. Ускорение обеспечено через вынос на сторону сетевой карты некоторых операций, связанных с обработкой зашифрованных пакетов.
  • В файл конфигурации jail.conf добавлена директива «.include», позволяющая подключать при загрузке конфигурации дополнительные файлы, в путях к которым допускается использование масок. Расширен sysctl-параметр security.bsd.see_jail_proc, при помощи которого неавторизированным пользователям в отдельном jail-окружении теперь можно запретить принудительное завершение, изменение приоритета и отладку процессов.
  • Программы pw и bsdinstall теперь по умолчанию создают пользователей в каталоге «/home», а не в «/usr/home». Символическая ссылка для «/home», указывающая на «/usr/home», больше не создаётся.
  • Отключена по умолчанию сборочная настройка PROFILE — профилированные версии системных библиотек больше не предоставляются, вместо них следует использовать аппаратные средства профилирования (hwpmc).
  • Включена сборка исполняемых файлов для 64-разрядных архитектур в режиме PIE (Position Independent Executable).
  • В гипервизор Bhyve добавлена возможность проброса доступа к TPM (Trusted Platform Module) и GPU (в виртуальные окружения для чипов AMD и Intel).
  • Реализация файловой системы ZFS обновлена до выпуска OpenZFS 2.2. В утилиту makefs добавлена поддержка файловой системы ZFS. Предоставлена возможность создания пула ZFS, связанного с одним виртуальным диском vdev.
  • С 256 до 1024 увеличено число поддерживаемых ядер CPU (параметр MAXCPU) в системах на базе архитектуры amd64 и arm64.
  • В UFS для конфигураций, в которых включено журналирование (soft updates) разрешено выполнение фоновой проверки файловой системы, используя снапшоты UFS. В суперблоки, карты групп цилиндров и inode добавлены дополнительные проверки хэшей для выявления повреждений.
  • Добавлена файловая система tarfs, которую можно использовать с tar-архивами, сжатыми при помощи zstd.
  • Добавлен инструментарий boottrace для отслеживания событий, произошедших на этапе загрузки и завершении работы системы.
  • Добавлена параметр настройки ядра FIRECRACKER для обеспечения запуска FreeBSD в системе виртуализации Firecracker, рассчитанной на запуск виртуальных машин с минимальными накладными расходами. Время загрузки ядра FreeBSD 14 под управлением Firecracker доведено до 25 миллисекунд, что позволяет запускать окружения с FreeBSD по мере необходимости для реализации инфраструктуры бессерверных вычислений.
  • В загрузчике, написанном на языке Lua, в специальном sandbox-окружении реализована поддержка выполнения lua-файлов, размещённых в каталоге loader_conf_files.
  • Расширена поддержка NFS. Добавлена новая опция монтирования «syskrb5» для поддержки Kerberos в NFSv 4.1/4.2, а также реализована поддержка операции ExchangeID. Реализована возможность запуска nfsd, nfsuserd, mountd, gssd и rpc.tlsservd в изолированном сетевом окружении vnet.
  • В скрипте growfs реализована возможность размещения раздела подкачки в конце расширяемой области на диске.
  • Добавлен новый DTrace-провайдер kinst (dtrace_kinst), позволяющий проводить трассировку структур ядра.
  • В криптоподсистему ядра добавлена поддержка алгоритма шифрования XChaCha20-Poly1035 AEAD, а также добавлен API для использования эллиптической кривой curve25519 (для WireGuard).
  • Сокращено время перезагрузки. Добавлен sysctl-параметр kern.reboot_wait_time, через который можно изменить задержку перед фактической перезагрузкой после вывода всех диагностических сообщений в консоль. По умолчанию задержка убрана.
  • В ядро добавлена подсистема timerfd, упрощающая портирование программ из Linux.
  • Добавлен sysctl machdep.mitigations.zenbleed.enable для блокирования уязвимости Zenbleed в процессорах AMD Zen2.
  • В wpa_supplicant и hostapd добавлена поддержка Wi-Fi 6. В драйвере iwlwifi обеспечена работа с чипами Intel, поддерживающими Wi-Fi 6E AX411/AX211/AX210.
  • Для ядра на системах amd64 обеспечена поддержка инструментов AddressSanitizer и MemorySanitizer от проекта LLVM.
  • В скриптах rc.d разрешено использование метода status, даже если в скрипте не определено имя программы (procname) и PID-файл.
  • Скорость передачи данных через последовательный порт в ядре, загрузчиках и пространстве пользователя по умолчанию увеличена с 9600 до 115200 bps. Тон гудка по умолчанию выставлен в 800Hz. Обеспечена интеграция с devd для вывода гудка через звуковую карту. Для консоли vt гудок по умолчанию отключён (для включения нужно выполнить команды «sysctl kern.vt.enable_bell=1» и «kbdcontrol -b normal»).
  • Улучшена поддержка архитектуры аппаратного ускорения сетевых операций NXP DPAA2 (Data Path Acceleration Architecture Gen2).
  • Добавлен драйвер igc для Ethernet-контроллеров Intel I225, поддерживающий скорость 2.5 Gbps.
  • По умолчанию активирована настройка net.inet.tcp.nolocaltimewait, отключающая создание timewait-записей для TCP-соединений, разорванных на стороне локальной системы.
  • Расширена и включена по умолчанию поддержка коммуникационного протокола Netlink (RFC 3549), применяемого в Linux для организации взаимодействия ядра с процессами в пространстве пользователя. Некоторые сетевые утилиты переведены на использование Netlink.
  • В пакетном фильтре pf обеспечена совместимость с синтаксисом и поведением операций нормализации пакетов (scrubbing) версии pf из OpenBSD. В pfsync реализована возможность использования транспорта IPv6. Формат пакетов pfsync расширен для поддержки очередей, нормализации пакетов и правил route-to.
  • В сетевой интерфейс if_stf (IPv6 over IPv4) добавлена поддержка IPv6 Rapid Deployment (RFC 5969). По умолчанию отключён режим IPv6 nodeinfo (RFC 4620).
  • Включён по умолчанию sysctl-параметр net.inet.tcp.nolocaltimewait, отключающий создание записей с состоянием timewait для локально прерванных TCP-соединений.
  • По умолчанию для TCP задействован механизм управления сетевой перегрузкой CUBIC вместо NewReno, что позволило расширить использование доступной полосы пропускания.
  • В IPv4 отключена отправка широковещательных пакетов на нулевой адрес подсети, если такой адрес явно не объявлен широковещательным. Изменение позволяет использовать для хостов адреса, заканчивающиеся на «.0».
  • Изменены настройки OpenSSH: в scp по умолчанию задействован протокол SFTP вместо scp/rcp, отключена поддержка подписей RSA/SHA-1, параметры VerifyHostKeyDNS и X11Forwarding выставлены в значение «no», удалена директива VersionAddendum, удалена поддержка настроек HPN.
  • В утилиту date добавлена опция «-z» для преобразования часовых поясов.
  • В утилиту diff добавлена опция «—color» для наглядной визуализации изменений цветом.
  • В утилиту sleep добавлена поддержка единиц измерения, отличных от секунд (например, можно указать «sleep 1h 30m»).
  • В утилиты head и tail добавлена поддержка опций «-q» и «-h», а также реализована возможность задания величин с суффиксами в международной системе единиц СИ. В head убрано ограничение на максимальное число строк 2^31.
  • В утилиту systat добавлена команда «iolat» для вывода сведений о задержках ввода/вывода, вычисленных планировщиком CAM.
  • Библиотека libncursesw разделена на две библиотеки libtinfow и libncursesw. Добавлена поддержка использования в ncurses базы terminfo, а не только termcap.
  • Для архитектуры aarch64 (arm64) реализована и включена по умолчанию сборочная опция COMPAT_LIB32, обеспечивающая сборку 32-разрядных библиотек для систем ARM64, позволяющих запускать исполняемые файлы, собранные для платформы armv7.
  • Улучшена поддержка облачных систем. Для AWS EC2 добавлены экспериментальные сборки с корневой ФС ZFS и cloud-init. Для Azure предоставлены образы для архитектур arm64 и amd64, на выбор c UFS или ZFS. Добавлен драйвер для виртуальной сетевой карты gve (Google Virtual NIC).
  • В систему ACPI добавлена поддержка порогового значения _CR3, позволяющего выставить температуру, при достижении которой система будет переведена в режим сна (S3).
  • Обновлены версии входящих в базовую систему сторонних приложений и библиотек: OpenSSH 9.5p1, OpenSSL 3.0.12 (ранее использовалась ветка 1.1.1), awk 2021072, bc 6.6.0, libbsdxml 2.4.7, libfido2 1.13.0, tcpdump 4.99.4, libpcap 1.10.4, xz 5.4.3, zlib 1.3, zstd 1.5.2. Реализация утилиты objdump заменена на llvm-objump. Компилятор Clang обновлён до ветки 16.
  • Проведена чистка устаревших систем:
    • Из базовой системы удалена поддержка одноразовых паролей OPIE (для возобновления использования можно установить порт security/opie).
    • Удалены драйверы для звуковых карт с интерфейсом ISA.
    • Удалены утилиты fmtree и minigzip.
    • Удалены компоненты ATM в netgraph (NgATM).
    • Удалён фоновый процесс telnetd (можно использовать порт net/freebsd-telnetd).
    • Удалён класс VINUM в geom.
    • Удалены устаревшие драйверы amr, iscsi_initiator, iir, mn, mly, nlmrsa и twa.
    • Из ядер GENERIC и MINIMAL удалён параметр VESA.
    • Из работающего на уровне ядра криптографического фреймворка OCF (Open Cryptographic Framework) удалена поддержка асимметричных криптографических операций.
    • Объявлена устаревшей утилита mergemaster, вместо которой следует использовать etcupdate.
    • Удалена утилита portsnap (для извлечения портов следует использовать «git clone https://git.FreeBSD.org/ports.git /usr/ports»).
    • Прекращено формирование сборок для архитектуры armv6.
    • Удалена поддержка архитектуры MIPS.

Источник: opennet.ru

Добавить комментарий