
Если помните, был такой мем: «Джва года ждал». И мы тут действительно ждали даже не два года, а два с половиной, пока выйдет новый релиз 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).

- Еще хорошая новость в том, что 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, что позволило расширить использование доступной полосы пропускания.

- Кроме того, в 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).
Собственно, о самом важном сказано. Если вы уже установили эту версию, расскажите, как она вам — есть ли глюки, проблемы? Или все работает гладко и без перебоев?
Читайте также
Комментарии (61)
HardWrMan
24.11.2023 02:29+3Утилита portsnap (для извлечения портов следует использовать «git clone git.FreeBSD.org/ports.git /usr/ports»).
Это же так удобно: вместо "portsnap fetch" написать "git clone git.FreeBSD.org/ports.git /usr/port"...
dsh2dsh
24.11.2023 02:29Есть gitup, т.ч. в удобстве разницы на самом деле никакой. Да даже и с git, тоже разницы нет. git clone делается один раз.
HardWrMan
24.11.2023 02:29А кто обновит дерево портов через полгода, когда понадобится что-нибудь пересобрать?
kekoz
24.11.2023 02:29git -C /usr/src pull
хоть по десять раз на дню, некоторые даже вcron
вставляют.HardWrMan
24.11.2023 02:29+1Т.е. вместо 2х слов всё равно учить ещё 3 + адрес репы при первичном разворачивании. Так в чём удобство, если портснап делал всё сам автоматически уже 15+ лет? Кому он помешал то?
erley
24.11.2023 02:29Всегда делал штатным "make -C /usr/ports update", в зависимости от содержимого /etc/make.conf он делает что нужно. C git аналогично всё настраивается.
То есть по факту в итоге вообще ничего не меняется в повседневном использовании.
micronull
24.11.2023 02:29+1Где сейчас имеет лучше всего использовать фряху?
moooV
24.11.2023 02:29+5TrueNAS Core. Лучшая хранилка на zfs, стабильная как боженька.
Dorlas
24.11.2023 02:29+3Очень сложный вопрос - каждый решает для себя сам.
Могу сказать лично за себя - у меня на двух домашних серверах стоит FreeBSD, недавно обновил до 13.2. Несколько JAIL контейнеров с софтом (управляю с помощью CBSD). Файлы, вики, NextCloud, OpenVPN, Transmission/miniDLNA и т.д.
В офисе пара серверов файловых, тоже с клетками.
Естественно везде ZFS.micronull
24.11.2023 02:29+1Получается годится для серверов которые один раз настроил и забыл на десяток лет.
У ZFS недавно вроде нашли проблему с драйвером на Linux, из-за которой портились файлы. У freeBSD нет такой проблемы?
Dorlas
24.11.2023 02:29+1*Забыл на десяток лет* - этой не мой вариант, я эти сервера с 2016 года обслуживаю, раз в квартал обновляю софт, раз в год обновляю операционку. Ну и бывает новые сервисы в клетках поднимаю.
apro
24.11.2023 02:29+1Проблему нашли в OpenZFS, это общий проект для Linux и FreeBSD. И проблема также воспроизводиться на FreeBSD, https://github.com/openzfs/zfs/issues/15526 :
https://github.com/openzfs/zfs/issues/15526#issuecomment-1823682717
moooV
24.11.2023 02:29+1Там написано что на моей версии трунаса (13.1-RELEASE-p7) тоже воспроизводится в некоторых случаях. ???? ???? ????
Там три бага аж разных. Просто скопирую комментарий из гитхаба:
With strict hole reporting (i.e. zfs_dmu_offset_next_sync set to 1). This has been a silent disk corruption issue since 2.1.4 and a fix is not in any current release.
With block cloning which results in silent disk corruption. This is only an issue in 2.2.0 and has been resolved in 2.2.1 by disabling it, but no long term fix exists yet.
When using LUKS which results in write errors with ZFS on 2.2.1. A fix is not in any current release.
У меня подходит только пункт 1, отключается/фиксится установкой vfs.zfs.dmu_offset_next_sync=0 в sysctl под фряхой и zfs_dmu_offset_next_sync=0 в линухе.
werter_l
24.11.2023 02:29Свят-свят )
Proxmox VE в помощь для такого - там и VM и lxc имеются + zfs свежайшая с qemu.
https://forum.netgate.com/topic/163435/proxmox-ceph-zfs-pfsense-и-все-все-все-часть-2
DenSyo
24.11.2023 02:29+2pfSense / OPNsense - NGFW с богатой историей и хорошей поддержкой. Надеемся, что с новым ядром драйверов WiFi и LTE побольше завезут...
micronull
24.11.2023 02:29+3Короче для маршрутизаторов, работу с трафиком, файрволов, в целом для железяк работающих с сетями.
select26
24.11.2023 02:29+1Точнее - там где есть повышенные требования к надёжности. А на наличие последних фич.
Я с 2000 года на Debian. Но для ответственных приложений (pfSense, NAS) использую FreeBSD based решения. Ибо настроенные однажды - работают десятилетиями.Dorlas
24.11.2023 02:29+1Я в работе использую все подряд (FreeBSD, Debian, Windows, Mikrotik, vSphere, ProxMox и т.д.). На текущий момент 99% решений, хорошо настроенных, работают десятилетиями.
НО...всегда есть это неудобное НО - везде находят дырки в ИБ. И приходится обновлять-латать... А это уже изменения в коде, изменения в версии библиотек, изменения в конфигах и т.д. И если ты обновляешь систему - всегда есть шанс что-то сломать, так как теперь в новой версии нужно настраивать по новому, изменился конфиг и т.д.
Т.е. - настроил и не трогаешь - будет десятилетиями работать (да почти что угодно будет), трогаешь - что угодно может сломаться ) И FreeBSD тоже может )
dsh2dsh
24.11.2023 02:29+1Так где вам нравиться, там и используйте. Я использую везде, и на десктопе и на сервере. Хотя, скажу вам честно, если у вас возникает такой вопрос, то не нужно. Не для вас оно. Не хочу вас обидеть, не подумайте. Такой вопрос - он что-то вроде "куда сейчас лучше пойти в айти".
micronull
24.11.2023 02:29Такой вопрос - он что-то вроде "куда сейчас лучше пойти в айти".
Для меня выбор ОС, это как выбор инструмента. Сейчас все свои потребности покрываю Linux.
Но вижу что freeBSD развивается, что заинтересовало в профессиональном плане, а именно в каких областях это будет лучшим выбором чем Linux.Если что разобраться с freeBSD не будет проблем, так как везде UNIX.
P.S. Дома винда из-за игр.
Dorlas
24.11.2023 02:29+2лучшим выбором чем Linux
Вот это реально сложно аргументировать. Linux умеет практически все, что умеет FreeBSD. НО, у Linux есть Docker/K8S/KVM/etc, которые либо в FreeBSD нет в 100% идентичном виде, либо это немного другое. В начале 2000 ситуация была другая, сейчас Linux во многих нишах топчик.
Я использовал FreeBSD как Desktop на работе, сейчас использую Manjaro и Windows. Но первая любовь (FreeBSD) была и будет на части серверов, надеюсь навсегда )
Lazhu
24.11.2023 02:29+1Утилита portsnap (для извлечения портов следует использовать «git clone git.FreeBSD.org/ports.git /usr/ports»).
Чтобы скачать порты, надо установить гит из портов. Тру *никс рекурсия
UPD: Автор забыл перевести первую половину фразы из relnotes: Users are encouraged to fetch the ports tree by using
pkg install git
and thengit clone https://git.FreeBSD.org/ports.git /usr/ports
erley
24.11.2023 02:29Снапшот портов скачивается тарболом во время установки или позже когда захочется (ссылку лень искать, но это подробно описано в документации).
BjLomax
24.11.2023 02:29-1А это что значит ?
No updates needed to update system to 14.0-RELEASE-p0.
WARNING: FreeBSD 14.0-RELEASE is approaching its End-of-Life date.
It is strongly recommended that you upgrade to a newer
release within the next 2 months.kekoz
24.11.2023 02:29+2From Colin Percival: «The security team put the wrong EoL timestamp into the freebsd-update bits. Ignore the warning.»
Gorthauer87
24.11.2023 02:29Как-то она все медленнее и медленнее развивается, такое ощущение. Релиз раз в 2,5 года, а почти ни слова про поддержку оборудования нового, да и фичей не больше, чем в одном релизе Linux.
Dorlas
24.11.2023 02:29В этом году было 2 релиза, в прошлом тоже 2 - см. по ссылке.
2.5 года считали от даты начала среза до 14.0-RELEASE.
Насчет фичей - ну какое финансирование, такая и интенсивность внесения новых функций. Мы же понимаем, что главное для конечного потребителя не ОС, а ПО, которое там крутится. С ПО в целом все нормально, pkg/ports обеспечивают 99% софта, аналогичного Linux, версии свежие/регулярно обновляются.
kekoz
24.11.2023 02:29+3Linux 3 — 06.2011
Linux 4 — 04.2015 (почти 4 года)
Linux 5 — 03.2019 (почти 4 года)
Linux 6 — 10.2022 (3 с половиной года)Нет ощущения “медленно развивается”? :)
Мажорные релизы — не единственные.
Gorthauer87
24.11.2023 02:29-1Так, а какой смысл в мажорной версии? Мне раньше казалось, что первая версия во фряхе во время релиза меняется когда обновляется ядро, большая часть базовой системы, а вторая цифра это как бы багфикс выпуски? ну типа как релизы Debian 12.1, 12.2 и так далее.
А в Linux там первая цифра меняется просто когда вторая становится большой, а по факту каждый новый релиз ядра несет в себе новый функционал и очередное перетряхивание внутренних ядерных API.
ciuafm
24.11.2023 02:29Раз уж тут слёт FreeBSD'шников образовался, спрошу, а как там с Pí платами? Есть ли сборки чтобы работало "из коробки" на OrangePi например без перекомпиляции ядра и сборки драйверов?
Semy
24.11.2023 02:29-1Мне кажется, вы слишком много хотите. Для OrangePi даже версия Ubuntu отдельной сборкой от энтузиастов, что бы без проблем с драйверами.
На RaspberryPi 3b+ и 4 я ставил сборки FreeBSD без проблем, когда нужна была функциональность роутера. GPIO, думаю, завести можно. С видео-чипом точно будут проблемы.
kekoz
24.11.2023 02:29+1Я ещё две недели назад обновил Pi2 с 13-STABLE на 14-STABLE. Не совсем понял, что значит
GPIO, думаю, завести можно
оно чудесно работает, и ни в каком особом заводе не нуждается. Или это про Orange?
Про видео ничего не скажу, нет у меня Orange, а какой там чип такой экзотический — не знаю. А на Pi2 всё хорошо.
Aleho
24.11.2023 02:29-1В свое время преимущество FreeBSD перед Linux было подвергнуто сомнению в плане производительности сетевой подсистемы.
Честно говоря, вникнуть в тему тогда руки так и не дошли, а в закладках сохранилось только вот такое исследование: https://matteocroce.medium.com/linux-and-freebsd-networking-cbadcdb15ddd, которое раскритиковали за не-бареметал стенд.Semy
24.11.2023 02:29+1На мой взгляд, FreeBSD и Linux в плане производительности сетевой системы идут волнами: то одна догонит и перегонит, то вторая вырвется. В последнее время во FreeBSD здорово сетевой стек прокачали благодаря Netflix, Yandex и др.
Aleho
24.11.2023 02:29-1Вот буквально недавно попадался комент на хабре про "однопоточность" сетевого стека FreeBSD )
Lazhu
24.11.2023 02:29+1В линух уже добавили нетграф? О какой сетевой производительности тогда речь?
Dorlas
24.11.2023 02:29Да банально, драйверы на 25/40/100 Gb сетевухи лучше (есть), стабильнее. Тесты у местного провайдера (который был большим фанатом FreeBSD в начале 2000, а теперь все смигрировал на Linux) показали, что Linux стек ни разу не проигрывает по скорости.
Aleho
24.11.2023 02:29+1Помнится на хабре уже были лозунги с нетграфом, к сожалению без какого-либо подкрепления также.
Вполне вероятно что эта сетевая подсистема и есть та причина, по которой Netflix построила свою CDN именно на FreeBSD.
Но для более прозаических кейсов netgraf скорее как тот неуловимый Джо из анекдота.
Собственно приведенная статья как раз о производительности сетевых подсистем, с графиками вполне красноречивыми.kekoz
24.11.2023 02:29mpd
— вполне себе прозаический и весьма популярный кейс. Или сеть bhyve-VMs.Немалая часть пользователей FreeBSD действительно не нуждаются (а некоторые и не подозревают о существовании) в netgraph. Использование его подразумевает достаточно высокий уровень сетевого инженера, хорошо понимающего то, что находится ниже уровня ip. А условный Вася Пупкин, который сетевик лишь потому, что поднял ipv4 на офисной сети и сделал доступным интернет для пользователей, с ним точно разбираться не станет, особенно в условиях отсутствия документации в стиле “how to”.
Aleho
24.11.2023 02:29большая часть пользователей в бсд и вовсе не нуждаются.
использование netgrath предполагает, прежде всего, понимание почему это вообще нужно в конкретном случае.
а так то да, микроскопом орехи колоть незапрещено.
kekoz
24.11.2023 02:29+2Из того, что весьма существенно, но в статье совсем не отмечено — теперь полноценно работает NFS в VNET jail.
А ещё время сборки полной системы из исходников
(buildworld buildkernel
) радикально сократилось.
Hivemaster
Этот "мем" из 2001-го года, когда баша ещё даже в мыслях не было.
Vsevo10d
Тем более баш вообще не для лонгридов был ни разу, а в пасте все подробно сформулировано,
даже чатгпт в ТЗ это смог переделать:
I can provide you with an outline of how the game mechanics might work:
Create a 3D environment for the game, with a forest for the elf zone, a palace for the palace guard zone, and a mountainous fort for the villain zone.
Implement the different playable characters: forest elves, palace guards, and villains. Each character should have different abilities and weapons.
Create enemy AI for the soldiers from the palace and villains, as well as for the spies and elf guerrillas.
Allow players to raid caravans for loot, and implement a buying system for weapons, armor, and prosthetics.
Implement the ability for players to jump, as well as the ability to chop off limbs or gouge out eyes. If a player is not healed after losing a limb or eye, they will die.
Create a save feature that allows players to save their progress and continue the game at a later time.
Divide the game into four zones: a neutral human zone, an emperor's zone (where the palace is located), an elf zone, and a villain zone.
Use an engine that allows trees in the distance to appear as pictures, but transform into 3D trees as the player approaches.
Implement a commander for the palace guard zone, who gives orders to the player and directs them in raids against the enemy.
Allow players to make their own decisions as the commander in the villain zone, and order their own troops to attack the palace or go on the offensive.
While this is not the full code for a game, it outlines some of the key elements that would need to be included in order to create a game with the features described in the original prompt.
Asaphalandor
В слове "caravans" допущена ошибка.
MiyuHogosha
Баш появился в 2001м. но это была примепно диночная страничка сделанная в блокнотике, в домене bash.org (из-за чего кнфликтовала с американским bash.org).