![](https://habrastorage.org/getpro/habr/post_images/b6b/b83/981/b6bb83981fbf54ec2dac724d8d446c5b.jpg)
Если помните, был такой мем: «Джва года ждал». И мы тут действительно ждали даже не два года, а два с половиной, пока выйдет новый релиз FreeBSD 14.0. Он уже готов, а его установочные образы заботливо подготовлены для таких архитектур, как amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 и riscv64.
Эта ветка, к слову, последняя, где будут поддерживаться 32-х разрядные платформы. В 15-й обеспечат поддержку только 64-разрядных, правда, с возможностью сборки 32-разрядных программ и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в 64-разрядном окружении. Но давайте посмотрим, что нам подготовили в FreeBSD 14.0.
Сразу стоит начать с предупреждения, опубликованного ответственным за выпуск релизов. Оно заключается в возможности появления проблем при обновлении с прошлой ветки. Крайне рекомендуется перед обновлением выполнить команду «freebsd-update fetch install». Если этого не сделать, может возникнуть сбой. Причина — в прежней утилите freebsd-update не поддерживается возможность существования одного имени файла и каталога в разных релизах. Также сообщается о возможности появления проблем с обработкой изменений в master.passwd. Собственно, всего этого можно избежать при выполнении рекомендации, указанной выше.
Что убрали из нового релиза?
Довольно много всего, в новинке вычистили многие устаревшие системы, которые более неактуальны. В их число входят:
- Одноразовые пароли OPIE (если они нужны, потребуется установить порт security/opie).
- Драйвера для звуковых карт с ISA-интерфейсом.
- Утилиты утилиты fmtree и minigzip.
- Компоненты ATM в netgraph (NgATM).
- Фоновый процесс telnetd (можно использовать порт net/freebsd-telnetd).
- Класс VINUM в geom.
- Устаревшие драйверы amr, iscsi_initiator, iir, mn, mly, nlmrsa и twa.
- Поддержка асимметричных криптографических операций из работающего на уровне ядра криптографического фреймворка OCF (Open Cryptographic Framework).
- Сборочной настройки PROFILE больше нет, ее отключили.
- Утилита mergemaster, вместо которой следует использовать etcupdate.
- Утилита portsnap (для извлечения портов следует использовать «git clone git.FreeBSD.org/ports.git /usr/ports»).
- Убрана поддержка архитектуры MIPS.
А что появилось нового?
Почищено много всего, но наиболее важные «ликвидации» мы указали выше. Все остальное, в большинстве своем, то, о чем уже многие и думать забыли. Ну а теперь давайте посмотрим, что изменилось:
- Дефолтный командный интерпретатор для пользователя root — /bin/sh.
- Активирована сборка исполняемых файлов для 64-разрядных архитектур в режиме PIE (Position Independent Executable).
- Для NVME-устройств по дефолту теперь используется nda-драйвер. Если нужен старый, тогда в loader.conf нужно прописать «hw.nvme.use_nvd=1».
- Появилась новая утилита fwget, которая позволяет определять оборудование, для которого требуются прошивки. Утилита устанавливает соответствующие пакеты, правда, пока лишь для PCI-устройств и прошивки для GPU Intel и AMD.
- Для кодирования и декодирования данныхх в base64 добавлена одноименная утилита.
- Теперь в качестве почтового агента используется dma (DragonFly Mail Agent). Sendmail сохранён в базовой поставке и обновлён до версии 8.17.1.
- Также добавлена поддержка аппаратного ускорения TLS 1.3 в KTLS.
- По дефолту pw и bsdinstall пользователи создаются в каталоге "/home", а не в "/usr/home".
- Включена сборка исполняемых файлов для 64-разрядных архитектур в режиме PIE (Position Independent Executable).
- В гипервизор Bhyve добавлена возможность проброса доступа к TPM (Trusted Platform Module) и GPU (в виртуальные окружения для чипов AMD и Intel).
![](https://habrastorage.org/webt/au/j4/h4/auj4h4dcfw4ipieenxqmazu-crc.png)
- Еще хорошая новость в том, что ZFS обновлена до выпуска OpenZFS 2.2. Появилась и возможность создания пула ZFS, который связан с одним виртуальным диском vdev.
- Существенно увеличилось число поддерживаемых ядер CPU — с 256 сразу до 1024, для систем на архитектурах amd64 и arm64.
- Появилась файловая система tarfs, которую можно использовать с tar-архивами, сжатыми при помощи zstd.
- Еще одна хорошая новость — добавление параметра настройки ядра FIRECRACKER для обеспечения запуска FreeBSD в системе виртуализации Firecracker, рассчитанной на запуск виртуальных машин с минимальными накладными расходами.
- Также расширена поддержка NFS, в релизе появилась новая опция монтирования «syskrb5» для поддержки Kerberos в NFSv 4.1/4.2, а также реализована поддержка операции ExchangeID.
- В криптоподсистеме ядра появилась поддержка алгоритма шифрования XChaCha20-Poly1035 AEAD, а также добавлен API для использования эллиптической кривой curve25519 (для WireGuard).
- Время перезагрузки уменьшилось. Так, появился новый параметр sysctl-параметр kern.reboot_wait_time, через который можно изменить задержку перед фактической перезагрузкой после вывода всех диагностических сообщений в консоль.
- Также увеличена скорость передачи данных через последовательный порт в ядре, загрузчиках и пространстве пользователя — с 9600 до 115200 bps.
- По умолчанию для TCP задействован механизм управления сетевой перегрузкой CUBIC вместо NewReno, что позволило расширить использование доступной полосы пропускания.
![](https://habrastorage.org/getpro/habr/post_images/d1b/b0a/2ec/d1bb0a2ecc1986482516a9b5b2f5adf5.jpg)
- Кроме того, в IPv4 отключена отправка широковещательных пакетов на нулевой адрес подсети, если такой адрес явно не объявлен широковещательным. Изменение позволяет использовать для хостов адреса, заканчивающиеся на ".0".
- Изменены настройки OpenSSH: в scp по умолчанию задействован протокол SFTP вместо scp/rcp, отключена поддержка подписей RSA/SHA-1, параметры VerifyHostKeyDNS и X11Forwarding выставлены в значение «no», удалена директива VersionAddendum, удалена поддержка настроек HPN.
- Стоит обратить внимание на то, что версии входящих в базовую систему сторонних приложений и библиотек обновлены: 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.
- Также оптимизирована поддержка облачных систем. Например, для AWS EC2 добавлены экспериментальные сборки с корневой ФС ZFS и cloud-init. Для Azure предоставлены образы для архитектур arm64 и amd64, на выбор c UFS или ZFS. Добавлен драйвер для виртуальной сетевой карты gve (Google Virtual NIC).
Собственно, о самом важном сказано. Если вы уже установили эту версию, расскажите, как она вам — есть ли глюки, проблемы? Или все работает гладко и без перебоев?