Подготовлен первый бета-выпуск FreeBSD 14.0. Выпуск FreeBSD 14.0-BETA1 доступен для архитектур i386, amd64, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 и riscv64. Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2. Релиз FreeBSD 14.0 намечен на 23 октября 2023 года.
Ветка FreeBSD 14 станет последней с поддержкой 32-разрядных платформ. Во FreeBSD 15 останется только поддержка 64-разрядных систем, но при этом сохранится возможность использования COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в 64-разрядном окружении, а также останется возможность сборки 32-разрядных программ.
Среди изменений во FreeBSD 14:
- Компилятор Clang обновлён до ветки 16.
- С 256 до 1024 увеличено число поддерживаемых ядер CPU (параметр MAXCPU) в системах на базе архитектуры amd64 и arm64.
- В загрузчике, написанном на языке Lua, реализована поддержка выполнения lua-файлов, размещённых в каталоге loader_conf_files, в специальном sandbox-окружении.
- Для NVME-устройств по умолчанию на всех платформах задействован драйвер nda.
Для возвращения старого драйвера nvd в loader.conf предусмотрена настройка “hw.nvme.use_nvd=1”. - Добавлена новая утилита “fwget”, определяющая оборудование, которому необходимы прошивки, и устанавливающая соответствующие пакеты с прошивками. В настоящее время поддерживаются только PCI-устройства и прошивки для GPU Intel и AMD.
- Расширена поддержка NFS. Добавлена новая опция монтирования “syskrb5” для поддержки Kerberos в NFSv 4.1/4.2, а также реализована поддержка операции ExchangeID. Реализована возможность запуска nfsd, nfsuserd, mountd, gssd и rpc.tlsservd в изолированном сетевом окружении vnet.
- В скрипте growfs реализована возможность размещения раздела подкачки в конце расширяемой области на диска.
- Реализация утилиты objdump заменена на llvm-objump.
- В качестве агента доставки почты по умолчанию вместо sendmail задействован dma (DragonFly Mail Agent). sendmail сохранён в базовой поставке и обновлён до версии 8.17.1.
- Добавлен новый DTrace-провайдер kinst (dtrace_kinst), позволяющий проводить трассировку структур ядра.
- В утилиту makefs добавлена поддержка файловой системы ZFS, среди прочего предоставлена возможность создания пула ZFS, связанного с одним виртуальным диском vdev.
- В утилиту boottrace добавлен интерфейс для сохранения данных трассировки событий, произошедших на этапе загрузки и завершении работы системы.
- В KTLS, реализацию протокола TLS, работающую на уровне ядра FreeBSD, добавлена поддержка аппаратного ускорения TLS 1.3 на принимающей стороне. Ускорение обеспечено через вынос на сторону сетевой карты некоторых операций, связанных с обработкой зашифрованных пакетов.
- В wpa_supplicant добавлена поддержка Wi-Fi 6.
- По умолчанию активирована настройка net.inet.tcp.nolocaltimewait, отключающая создание timewait-записей для TCP-соединений, разорванных на стороне локальной системы.
- В качестве командного интерпретатора для пользователя root по умолчанию выставлен /bin/sh.
- Для ядра на системах amd64 обеспечена поддержка инструментов AddressSanitizer и MemorySanitizer от проекта LLVM.
- Из работающего на уровне ядра криптографического фреймворка OCF (Open Cryptographic Framework) удалена поддержка асимметричных криптографических операций.
Дополнительно можно отметить работу о сокращению времени загрузки FreeBSD 14 в системе виртуализации Firecracker, рассчитанной на запуск виртуальных машин с минимальными накладными расходами (используются легковесные виртуальные машины, для изоляции которых применяются технологии аппаратной виртуализации на базе гипервизора KVM, но при этом обеспечивается производительность и гибкость на уровне обычных контейнеров). Время загрузки ядра FreeBSD 14 под управлением Firecracker снижено до 25 миллисекунд, что позволяет запускать окружения с FreeBSD по мере необходимости для реализации инфраструктуры бессерверных вычислений. Для сравнения время загрузки ядра Linux в аналогичной конфигурации оценивается в 75-80 миллисекунд. До проведения оптимизации ядро FreeBSD загружалось за 10 секунд, т.е. было ускорено примерно в 400 раз.