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


  1. Hivemaster
    24.11.2023 02:29
    +15

    Если помните, был такой мем: «Джва года ждал», еще с баша.

    Этот "мем" из 2001-го года, когда баша ещё даже в мыслях не было.


    1. Vsevo10d
      24.11.2023 02:29

      Тем более баш вообще не для лонгридов был ни разу, а в пасте все подробно сформулировано,

      даже чатгпт в ТЗ это смог переделать:

      I can provide you with an outline of how the game mechanics might work:

      1. 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.

      2. Implement the different playable characters: forest elves, palace guards, and villains. Each character should have different abilities and weapons.

      3. Create enemy AI for the soldiers from the palace and villains, as well as for the spies and elf guerrillas.

      4. Allow players to raid caravans for loot, and implement a buying system for weapons, armor, and prosthetics.

      5. 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.

      6. Create a save feature that allows players to save their progress and continue the game at a later time.

      7. 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.

      8. Use an engine that allows trees in the distance to appear as pictures, but transform into 3D trees as the player approaches.

      9. Implement a commander for the palace guard zone, who gives orders to the player and directs them in raids against the enemy.

      10. 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.


      1. Asaphalandor
        24.11.2023 02:29

        В слове "caravans" допущена ошибка.


    1. MiyuHogosha
      24.11.2023 02:29

      Баш появился в 2001м. но это была примепно диночная страничка сделанная в блокнотике, в домене bash.org (из-за чего кнфликтовала с американским bash.org).


  1. 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"...


    1. dsh2dsh
      24.11.2023 02:29

      Есть gitup, т.ч. в удобстве разницы на самом деле никакой. Да даже и с git, тоже разницы нет. git clone делается один раз.


      1. HardWrMan
        24.11.2023 02:29

        А кто обновит дерево портов через полгода, когда понадобится что-нибудь пересобрать?


        1. nuclight
          24.11.2023 02:29
          +2

          Админ, кто ж еще.


          1. HardWrMan
            24.11.2023 02:29

            А ты хорош!


        1. kekoz
          24.11.2023 02:29

          git -C /usr/src pull хоть по десять раз на дню, некоторые даже в cron вставляют.


          1. HardWrMan
            24.11.2023 02:29
            +1

            Т.е. вместо 2х слов всё равно учить ещё 3 + адрес репы при первичном разворачивании. Так в чём удобство, если портснап делал всё сам автоматически уже 15+ лет? Кому он помешал то?


    1. erley
      24.11.2023 02:29

      Всегда делал штатным "make -C /usr/ports update", в зависимости от содержимого /etc/make.conf он делает что нужно. C git аналогично всё настраивается.
      То есть по факту в итоге вообще ничего не меняется в повседневном использовании.


  1. micronull
    24.11.2023 02:29
    +1

    Где сейчас имеет лучше всего использовать фряху?


    1. moooV
      24.11.2023 02:29
      +5

      TrueNAS Core. Лучшая хранилка на zfs, стабильная как боженька.


      1. eugenebliznyuk
        24.11.2023 02:29

        Ещё pfsense, кажется до сих пор на фряхе


        1. werter_l
          24.11.2023 02:29

          Живее всех живых.

          2.7.1 выкатили на днях.


      1. werter_l
        24.11.2023 02:29

        А чем scale не угодил? )


    1. Dorlas
      24.11.2023 02:29
      +3

      Очень сложный вопрос - каждый решает для себя сам.

      Могу сказать лично за себя - у меня на двух домашних серверах стоит FreeBSD, недавно обновил до 13.2. Несколько JAIL контейнеров с софтом (управляю с помощью CBSD). Файлы, вики, NextCloud, OpenVPN, Transmission/miniDLNA и т.д.

      В офисе пара серверов файловых, тоже с клетками.

      Естественно везде ZFS.


      1. micronull
        24.11.2023 02:29
        +1

        Получается годится для серверов которые один раз настроил и забыл на десяток лет.

        У ZFS недавно вроде нашли проблему с драйвером на Linux, из-за которой портились файлы. У freeBSD нет такой проблемы?

        @moooV


        1. Dorlas
          24.11.2023 02:29
          +1

          *Забыл на десяток лет* - этой не мой вариант, я эти сервера с 2016 года обслуживаю, раз в квартал обновляю софт, раз в год обновляю операционку. Ну и бывает новые сервисы в клетках поднимаю.


        1. 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


          1. moooV
            24.11.2023 02:29
            +1

            Там написано что на моей версии трунаса (13.1-RELEASE-p7) тоже воспроизводится в некоторых случаях. ???? ???? ????

            Там три бага аж разных. Просто скопирую комментарий из гитхаба:

            1. 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.

            2. 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.

            3. 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 в линухе.


            1. Dorlas
              24.11.2023 02:29

              спасиб, исправил у себя


      1. werter_l
        24.11.2023 02:29

        Свят-свят )

        Proxmox VE в помощь для такого - там и VM и lxc имеются + zfs свежайшая с qemu.

        https://forum.netgate.com/topic/163435/proxmox-ceph-zfs-pfsense-и-все-все-все-часть-2


    1. DenSyo
      24.11.2023 02:29
      +2

      pfSense / OPNsense - NGFW с богатой историей и хорошей поддержкой. Надеемся, что с новым ядром драйверов WiFi и LTE побольше завезут...


      1. micronull
        24.11.2023 02:29
        +3

        Короче для маршрутизаторов, работу с трафиком, файрволов, в целом для железяк работающих с сетями.


        1. select26
          24.11.2023 02:29
          +1

          Точнее - там где есть повышенные требования к надёжности. А на наличие последних фич.
          Я с 2000 года на Debian. Но для ответственных приложений (pfSense, NAS) использую FreeBSD based решения. Ибо настроенные однажды - работают десятилетиями.


          1. Dorlas
            24.11.2023 02:29
            +1

            Я в работе использую все подряд (FreeBSD, Debian, Windows, Mikrotik, vSphere, ProxMox и т.д.). На текущий момент 99% решений, хорошо настроенных, работают десятилетиями.
            НО...всегда есть это неудобное НО - везде находят дырки в ИБ. И приходится обновлять-латать... А это уже изменения в коде, изменения в версии библиотек, изменения в конфигах и т.д. И если ты обновляешь систему - всегда есть шанс что-то сломать, так как теперь в новой версии нужно настраивать по новому, изменился конфиг и т.д.
            Т.е. - настроил и не трогаешь - будет десятилетиями работать (да почти что угодно будет), трогаешь - что угодно может сломаться ) И FreeBSD тоже может )


          1. werter_l
            24.11.2023 02:29

            NAS и на deb прекрасен - omv и truenas scale , напр.


        1. fshp
          24.11.2023 02:29

          При этом выпили поддержку MIPS, который на маршрутизаторах пока ещё живой


          1. werter_l
            24.11.2023 02:29

            У вас mips-марш-ры на bsd ??


    1. dsh2dsh
      24.11.2023 02:29
      +1

      Так где вам нравиться, там и используйте. Я использую везде, и на десктопе и на сервере. Хотя, скажу вам честно, если у вас возникает такой вопрос, то не нужно. Не для вас оно. Не хочу вас обидеть, не подумайте. Такой вопрос - он что-то вроде "куда сейчас лучше пойти в айти".


      1. micronull
        24.11.2023 02:29

        Такой вопрос - он что-то вроде "куда сейчас лучше пойти в айти".

        Для меня выбор ОС, это как выбор инструмента. Сейчас все свои потребности покрываю Linux.
        Но вижу что freeBSD развивается, что заинтересовало в профессиональном плане, а именно в каких областях это будет лучшим выбором чем Linux.

        Если что разобраться с freeBSD не будет проблем, так как везде UNIX.

        P.S. Дома винда из-за игр.


        1. Dorlas
          24.11.2023 02:29
          +2

          лучшим выбором чем Linux

          Вот это реально сложно аргументировать. Linux умеет практически все, что умеет FreeBSD. НО, у Linux есть Docker/K8S/KVM/etc, которые либо в FreeBSD нет в 100% идентичном виде, либо это немного другое. В начале 2000 ситуация была другая, сейчас Linux во многих нишах топчик.

          Я использовал FreeBSD как Desktop на работе, сейчас использую Manjaro и Windows. Но первая любовь (FreeBSD) была и будет на части серверов, надеюсь навсегда )


  1. 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 then git clone https://git.FreeBSD.org/ports.git /usr/ports


    1. Semy
      24.11.2023 02:29

      Есть еще gitup, про который постоянно забывают.


    1. erley
      24.11.2023 02:29

      Снапшот портов скачивается тарболом во время установки или позже когда захочется (ссылку лень искать, но это подробно описано в документации).


  1. 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.


    1. kekoz
      24.11.2023 02:29
      +2

      From Colin Percival: «The security team put the wrong EoL timestamp into the freebsd-update bits. Ignore the warning.»


  1. Gorthauer87
    24.11.2023 02:29

    Как-то она все медленнее и медленнее развивается, такое ощущение. Релиз раз в 2,5 года, а почти ни слова про поддержку оборудования нового, да и фичей не больше, чем в одном релизе Linux.


    1. Dorlas
      24.11.2023 02:29

      В этом году было 2 релиза, в прошлом тоже 2 - см. по ссылке.

      2.5 года считали от даты начала среза до 14.0-RELEASE.

      Насчет фичей - ну какое финансирование, такая и интенсивность внесения новых функций. Мы же понимаем, что главное для конечного потребителя не ОС, а ПО, которое там крутится. С ПО в целом все нормально, pkg/ports обеспечивают 99% софта, аналогичного Linux, версии свежие/регулярно обновляются.


    1. Lazhu
      24.11.2023 02:29

      Релиз раз в 2,5 года

      Вы так говорите, будто это что-то плохое


    1. kekoz
      24.11.2023 02:29
      +3

      Linux 3 — 06.2011
      Linux 4 — 04.2015 (почти 4 года)
      Linux 5 — 03.2019 (почти 4 года)
      Linux 6 — 10.2022 (3 с половиной года)

      Нет ощущения “медленно развивается”? :)

      Мажорные релизы — не единственные.


      1. Gorthauer87
        24.11.2023 02:29
        -1

        Так, а какой смысл в мажорной версии? Мне раньше казалось, что первая версия во фряхе во время релиза меняется когда обновляется ядро, большая часть базовой системы, а вторая цифра это как бы багфикс выпуски? ну типа как релизы Debian 12.1, 12.2 и так далее.

        А в Linux там первая цифра меняется просто когда вторая становится большой, а по факту каждый новый релиз ядра несет в себе новый функционал и очередное перетряхивание внутренних ядерных API.


  1. ciuafm
    24.11.2023 02:29

    Раз уж тут слёт FreeBSD'шников образовался, спрошу, а как там с Pí платами? Есть ли сборки чтобы работало "из коробки" на OrangePi например без перекомпиляции ядра и сборки драйверов?


    1. Lazhu
      24.11.2023 02:29
      +2

      Качаете arm образ и uboot загрузчик, и вперед к PiBSDецу!


    1. Semy
      24.11.2023 02:29
      -1

      Мне кажется, вы слишком много хотите. Для OrangePi даже версия Ubuntu отдельной сборкой от энтузиастов, что бы без проблем с драйверами.

      На RaspberryPi 3b+ и 4 я ставил сборки FreeBSD без проблем, когда нужна была функциональность роутера. GPIO, думаю, завести можно. С видео-чипом точно будут проблемы.


      1. kekoz
        24.11.2023 02:29
        +1

        Я ещё две недели назад обновил Pi2 с 13-STABLE на 14-STABLE. Не совсем понял, что значит

        GPIO, думаю, завести можно

        оно чудесно работает, и ни в каком особом заводе не нуждается. Или это про Orange?

        Про видео ничего не скажу, нет у меня Orange, а какой там чип такой экзотический — не знаю. А на Pi2 всё хорошо.


  1. Aleho
    24.11.2023 02:29
    -1

    В свое время преимущество FreeBSD перед Linux было подвергнуто сомнению в плане производительности сетевой подсистемы.
    Честно говоря, вникнуть в тему тогда руки так и не дошли, а в закладках сохранилось только вот такое исследование: https://matteocroce.medium.com/linux-and-freebsd-networking-cbadcdb15ddd, которое раскритиковали за не-бареметал стенд.


    1. Semy
      24.11.2023 02:29
      +1

      На мой взгляд, FreeBSD и Linux в плане производительности сетевой системы идут волнами: то одна догонит и перегонит, то вторая вырвется. В последнее время во FreeBSD здорово сетевой стек прокачали благодаря Netflix, Yandex и др.


      1. Aleho
        24.11.2023 02:29
        -1

        Вот буквально недавно попадался комент на хабре про "однопоточность" сетевого стека FreeBSD )


    1. Lazhu
      24.11.2023 02:29
      +1

      В линух уже добавили нетграф? О какой сетевой производительности тогда речь?


      1. Dorlas
        24.11.2023 02:29

        Да банально, драйверы на 25/40/100 Gb сетевухи лучше (есть), стабильнее. Тесты у местного провайдера (который был большим фанатом FreeBSD в начале 2000, а теперь все смигрировал на Linux) показали, что Linux стек ни разу не проигрывает по скорости.


      1. Aleho
        24.11.2023 02:29
        +1

        Помнится на хабре уже были лозунги с нетграфом, к сожалению без какого-либо подкрепления также.
        Вполне вероятно что эта сетевая подсистема и есть та причина, по которой Netflix построила свою CDN именно на FreeBSD.
        Но для более прозаических кейсов netgraf скорее как тот неуловимый Джо из анекдота.
        Собственно приведенная статья как раз о производительности сетевых подсистем, с графиками вполне красноречивыми.


        1. kekoz
          24.11.2023 02:29

          mpd — вполне себе прозаический и весьма популярный кейс. Или сеть bhyve-VMs.

          Немалая часть пользователей FreeBSD действительно не нуждаются (а некоторые и не подозревают о существовании) в netgraph. Использование его подразумевает достаточно высокий уровень сетевого инженера, хорошо понимающего то, что находится ниже уровня ip. А условный Вася Пупкин, который сетевик лишь потому, что поднял ipv4 на офисной сети и сделал доступным интернет для пользователей, с ним точно разбираться не станет, особенно в условиях отсутствия документации в стиле “how to”.


          1. Aleho
            24.11.2023 02:29

            большая часть пользователей в бсд и вовсе не нуждаются.
            использование netgrath предполагает, прежде всего, понимание почему это вообще нужно в конкретном случае.
            а так то да, микроскопом орехи колоть незапрещено.


  1. KReal
    24.11.2023 02:29

    KDE под неё пропатчили уже?


    1. caes
      24.11.2023 02:29
      +2

      Спросите в канале про аниме.


  1. GoodOldDude
    24.11.2023 02:29
    -3

    Надеюсь что в 14 версии патчить KDE2 под FreeBSD уже ненужно...


    1. HardWrMan
      24.11.2023 02:29

      Конечно, для этого есть KDE5!


  1. kekoz
    24.11.2023 02:29
    +2

    Из того, что весьма существенно, но в статье совсем не отмечено — теперь полноценно работает NFS в VNET jail.

    А ещё время сборки полной системы из исходников (buildworld buildkernel) радикально сократилось.