LINUX.ORG.RU

Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard

 , , ,


1

3

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

Ключевые изменения:

  • Реализована возможность создания снапшотов файловых систем UFS и FFS, на которых включено журналирование (soft updates). Также добавлена поддержка фонового сохранения дампов (запуск dump с флагом "-L") с содержимым примонтированных файловых систем UFS при включённом журналировании. Из возможностей, которые недоступны при использовании журналирования, остаётся фоновое выполнение проверки целостности при помощи утилиты fsck.
  • В основной состав принят работающий на уровне ядра драйвер wg с реализацией сетевого интерфейса для VPN WireGuard. Для использования необходимых драйверу криптографических алгоритмов было произведено расширение API криптоподсистемы ядра FreeBSD, в который была добавлена обвязка, позволяющая использовать через стандартный крипто-API не поддерживаемые во FreeBSD алгоритмы из библиотеки libsodium. В процессе разработки также была проведена оптимизация для равномерной балансировки привязки задач шифрования и расшифровки пакетов к ядрам CPU, что позволило снизить накладные расходы при обработке пакетов WireGuard.

  • Прошлая попытка включения WireGuard в состав FreeBSD была предпринята в 2020 году, но завершилась скандалом, в результате которого уже добавленный код был удалён из-за низкого качества, безалаберной работы с буферами, использования заглушек вместо проверок, неполной реализации протокола и нарушения лицензии GPL. Новая реализация , совместно подготовлена основными командами разработчиков FreeBSD и WireGuard при участии Джейсона Доненфилда (Jason A. Donenfeld), автора VPN WireGuard, и Джона Болдуина (John H. Baldwin), известного разработчика FreeBSD. Перед принятием нового кода при поддержке организации FreeBSD Foundation было проведено полное рецензирование изменений.
  • Реализована поддержка коммуникационного протокола Netlink (RFC 3549), применяемого в Linux для организации взаимодействия ядра с процессами в пространстве пользователя. Проект ограничивается поддержкой семейства операций NETLINK_ROUTE для управления состоянием сетевой подсистемы в ядре, что позволяет использовать во FreeBSD Linux-утилиту ip из пакета iproute2 для управления сетевыми интерфейсами, установки IP-адресов, настройки маршрутизации и манипуляции объектами nexthop, хранящими данные о состоянии, используемом для передачи пакета в желаемую точку назначения.
  • Для всех исполняемых файлов базовой системы на 64-разрядных платформах включена по умолчанию рандомизация адресного пространства (ASLR, Address Space Layout Randomization). Для выборочного отключения ASLR можно использовать команды «proccontrol -m aslr -s disable» или «elfctl -e +noaslr».
  • В ipfw для поиска MAC-адресов задействованы базисные таблицы (Radix table), что позволяет создавать таблицы с MAC-адресами и использовать их для фильтрации трафика. Например:
           ipfw table 1 create type mac
           ipfw table 1 add 11:22:33:44:55:66/48
           ipfw add skipto tablearg src-mac 'table(1)' 
           ipfw add deny src-mac 'table(1, 100)'
           ipfw add deny lookup dst-mac 1 
    
  • Добавлены и доступны для загрузки через loader.conf модули ядра dpdk_lpm4 и dpdk_lpm6 с реализацией алгоритма поиска маршрутов DIR-24-8 для IPv4/IPv6, который позволяет оптимизировать функции маршрутизации для хостов с очень большими таблицами маршрутизации (в тестах наблюдается прирост скорости на уровне 25%). Для настройки модулей может использоваться штатная утилита route (добавлена опция FIB_ALGO).
  • Реализация файловой системы ZFS обновлена до выпуска OpenZFS 2.1.9. В стартовом скрипте zfskeys обеспечена автоматическая загрузка ключей, хранимых в ФС ZFS. Добавлен новый RC-скрипт zpoolreguid для назначения идентификатора GUID к одному или нескольким zpool (например, полезно для окружений виртуализации с общими данными).
  • В гипервизоре Bhyve и модуле vmm реализована поддержка прикрепления к гостевой системе более 15 виртуальных CPU (регулируется через sysctl hw.vmm.maxcpu). В утилите bhyve реализована эмуляция устройства virtio-input, при помощи которого можно подставлять события ввода с клавиатуры и мыши в гостевую систему.
  • В KTLS, реализацию протокола TLS, работающую на уровне ядра FreeBSD, добавлена поддержка аппаратного ускорения TLS 1.3 через вынос на сторону сетевой карты некоторых операций, связанных с обработкой зашифрованных входящих пакетов. Ранее подобная возможность была доступна для TLS 1.1 и TLS 1.2.
  • В стартовом скрипте growfs при расширении корневой ФС обеспечено добавление раздела подкачки, если такой раздел изначально отсутствовал (например, полезно при установке на SD-карту готового системного образа). Для управления размером подкачки в rc.conf добавлен новый параметр growfs_swap_size.
  • В стартовом скрипте hostid обеспечена генерация случайного UUID в случае отсутствия файла /etc/hostid и невозможности получения UUID от аппаратного обеспечения. Также добавлен файл /etc/machine-id с компактным представлением идентификатора хоста (без дефисов).
  • В rc.conf добавлены переменные defaultrouter_fibN и ipv6_defaultrouter_fibN, через которые можно добавить маршруты по умолчанию в FIB-таблицы, отличные от первичной.
  • В библиотеку libmd добавлена поддержка хэшей SHA-512/224.
  • В библиотеке pthread реализована поддержка семантики функций, используемых в Linux.
  • В kdump добавлена поддержка декодирования системных вызовов Linux. В kdump и sysdecode добавлена поддержка трассировки системных вызовов в стиле Linux.
  • В утилите killall появилась возможность отправки сигнала процессам, привязанным к определённому терминалу (например, «killall -t pts/1»).
  • Добавлена утилита nproc для вывода числа доступных текущему процессу вычислительных блоков.
  • В утилиту pciconf добавлена поддержка декодирования параметров ACS (Access Control Services).
  • В ядро добавлена настройка SPLIT_KERNEL_DEBUG, позволяющая сохранять в отдельные файлы отладочную информацию для ядра и модулей ядра.
  • В ABI linux почти завершена реализации поддержки механизма vDSO (virtual dynamic shared objects), предоставляющего ограниченный набор системных вызовов, доступный в пространстве пользователя без переключения контекста. ABI linux на системах ARM64 доведён до паритета с реализацией для архитектуры AMD64.
  • Улучшена поддержка оборудования. Добавлена поддержка мониторинга производительности (hwpmc) для CPU Intel Alder Lake. Обновлён драйвер iwlwifi для беспроводных карт Intel c поддержкой новых чипов и стандарта 802.11ac. Добавлен драйвер rtw88 для беспроводных карт Realtek с интерфейсом PCI. Расширены возможности прослойки linuxkpi для использования во FreeBSD драйверов Linux.
  • Библиотека OpenSSL обновлена до версии 1.1.1t, LLVM/Сlang до версии 14.0.5, а SSH-сервер и клиент обновлены до OpenSSH 9.2p1 (в прошлой версии использовался OpenSSH 8.8p1). Также обновлены версии bc 6.2.4, expat 2.5.0, file 5.43, less 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13.

Дополнительно объявлено о переводе в разряд устаревших и удалении начиная с ветки FreeBSD 14.0 одноразовых паролей OPIE, драйверов ce и cp, драйверов для карт с интерфейсом ISA, утилит mergemaster и minigzip, компонентов ATM в netgraph (NgATM), фонового процесса telnetd и класса VINUM в geom.

>>> Подробности

★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 3)

Обновлён драйвер iwlwifi для беспроводных карт Intel c поддержкой новых чипов и стандарта 802.11ac.

А для Intel 9560 так и не завезли поддержку HOSTAP. Эх...

А так, релиз отличный. На проде под высокой нагрузкой чувствуется прирост производительности.

iron ★★★★★
()

Обновил (почти) все машины. На ноуте обнаружилось, что нормально собрать awesome из git/master не получилось — сегфолтится. Абсолютно тот же ебилд порт, собранный на 13.1, работает в том числе на 13.2 (ABI совместим).

// Пришёл поплакаться, ага.

mord0d ★★★★★
()

обновлен […] sendmail

Интересно, к 14.0-RELEASE его наконец удалят из базовой системы, или снова отложат (до 15.0)?

mord0d ★★★★★
()
Ответ на: комментарий от iron

А для Intel 9560 так и не завезли поддержку HOSTAP. Эх…

Даже полноценной поддержки IPv6 и WPA3 в базовой системе нет.

mord0d ★★★★★
()
Ответ на: комментарий от zx_gamer

13.2 минорным считается?

Официально это всё же минорный релиз. Даже ABI совместим (порты можно не обновлять… почти, модули ядра придётся-таки пересобрать).

mord0d ★★★★★
()
Ответ на: комментарий от iZEN

Через месяц откроется ветка stable/14.

Есть где-нить список вкусностей которые там появятся? Чтоб понимать, есть ли смысл переключить десктоп на 14-STABLE.

iron ★★★★★
()
Ответ на: комментарий от iron

Эти «вкусности» сейчас прилетают в виде MFC в ветку stable/13, правда раз в квартал. С открытием ветки stable/14 все «вкусности» прилетать будут уже в неё, а 13-я ветка будет довольствоваться лишь «крошками пирога» и поддерживать «связь времён».

Что касается «вкусностей», то я рассчитываю на LLVM15 в базовой системе и адаптацией LLVM16 к сборке портов. Базовые интерпретаторы Perl 5.36.1, Python 3.11 должны, наконец, быть по умолчанию. Ну и драйверы для относительно новых сетевых карт (2.5Gb) всё же должны быть в составе ядра, а не где-то «сбоку».

iZEN ★★★★★
()

Добавлен драйвер rtw88 для беспроводных карт Realtek с интерфейсом PCI.

Они его допилили до рабочего состояния? Пробовал его полгода назад на ноуте с картой RTL8821CE. Нормально он так и не заработал, постоянно отваливалась сеть.

Wens
()

DPAA2 попал в заметки к релизу. Мну радостный, мну гордый :D

dsl
()
Ответ на: комментарий от iZEN

рассчитываю на LLVM15 в базовой системе

В stable/13 уже.

$ cc -v
FreeBSD clang version 15.0.7 (https://github.com/llvm/llvm-project.git llvmorg-15.0.7-0-g8dfdcc7b7bf6)
Target: x86_64-unknown-freebsd13.2
Thread model: posix
InstalledDir: /usr/bin

argv_0_
()

pkg все еще рутом скачивает пакеты?

untitl3d
()
Ответ на: комментарий от Udacha

Чем оно лучше DragonFly BSD?

Тем, что оно как минимум загружается и не падает в панику еще на стадии загрузки ядра.

iron ★★★★★
()
Ответ на: комментарий от Udacha

Чем Windows хуже FreeBSD?

У Windows хуже поддержка железа.

На моей машине прекрасно работает последняя версия FreeBSD и вообще не работает последняя версия Windows.

James_Holden ★★★
()
Ответ на: комментарий от Udacha

У меня на ноуте была карта broadcom и было все печально, даже с линуксом. Потом она сгорела и я поставил туда Atheros - и теперь красота. WiFi работает даже в Haiku.

James_Holden ★★★
()
Ответ на: комментарий от iron

Делать драйверы через виртуалки - это конечно гениальная идея была, до сих пор ржут все. 20 лет непрерывных побед))

Clayman ★★
()
Ответ на: комментарий от Clayman

Делать драйверы через виртуалки - это конечно гениальная идея была, до сих пор ржут все. 20 лет непрерывных побед))

Пускай себе ржут. Я уж лучше посижу на стабильной фре, с дровами через виртуалку, чем буду красноглазить какой-нить линукс упавший после очередного апдейта. Наелся уже этого в студенческие годы.

iron ★★★★★
()
Ответ на: комментарий от iZEN

Я не смог установить Windows 10 на свой домашний компьютер.

А я могу сломать любую версию Windows за десять минут. Причём это никогда не являлось целью, просто непонимание как оно работает приводит к вполне закономерному результату. (%

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Пока он нужен кому-то и этим кем-то поддерживается, не удалят

mandala ★★★★★
()
Ответ на: комментарий от Udacha

DragonFly BSD

Уместнее вопрос, зачем вообще нужна стрекоза

mandala ★★★★★
()
Ответ на: комментарий от iZEN

Windows 10

Я ставил лет восемь назад на хлам её, маме, еще жива была, шесть лет будет как померла

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от mord0d

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

mandala ★★★★★
()
Ответ на: комментарий от mandala

Страшно спросить, сколько твоей машине лет.

По моим оценкам, где-то 14-15.

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

Как и линукс на одноплатниках.

James_Holden ★★★
()
Ответ на: комментарий от mandala

6-летние компы многие не поддерживаются 11ой. и да - мне бук выдали в начале 2019 (4 года), под 11ой он работать нормально не будет по ряду причин.

mumpster ★★★★★
()
Ответ на: комментарий от mumpster

Да я задолбался в каждом джейле перенастраивать умолчальный sendmail в dma. Обещали сделать дефолтом, но это не раньше следующего мажорного релиза случится.

mord0d ★★★★★
()
Ответ на: комментарий от mumpster

format c: что ли? ;-)

Случается так, что через десять-двадцать минут Windows выпадает в перманентный BSoD, который не лечится ни ребутом, ни восстановлением системы. Причём случается это при совершенно разных обстоятельствах.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

На ноуте обнаружилось, что нормально собрать awesome из git/master не получилось — сегфолтится.

То есть на awesome сейчас нет смысла переходить? ladno.

Clockwork ★★★★★
()
Ответ на: комментарий от mumpster

А я не говорил, что причин этому нет, просто я их не понимаю. И не представляю как дебажить и уж тем более исправлять.

mord0d ★★★★★
()
Ответ на: комментарий от Clockwork

На ноуте обнаружилось, что нормально собрать awesome из git/master не получилось — сегфолтится.

То есть на awesome сейчас нет смысла переходить?

Не исключаю что у меня билдферма где-то настроена криво и/или какие-то зависимости не подтянулись и/или подтянулись не тех версий. Мы работаем над этим.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

это да. недавно на бук венда не ставилась, в конце установки хурму какую-то писала. на сайте m$ сответовали логи посмотреть, нашёл где. но там ничего полезного не было. от слова - ВООБЩЕ!

по итогу пришлось отключить в uefi другой диск - тогда наконец взлетело. кароч, всё как обычно в этой убогой by design системе.

из альтернативный мнений мне «понравился» совет отформатировать все диски, толково придумано! дескать не нравится ей разметка.

ИЧСХ diskpart ничего криминального не видел. offline кстати не помог. только отключение в uefi.

mumpster ★★★★★
()
Ответ на: комментарий от mumpster

на сайте m$ сответовали логи посмотреть, нашёл где. но там ничего полезного не было. от слова - ВООБЩЕ!

Потому что оно где хочет нормальный debug level выставляет, а где надо — низкий. В этом плане macOS (в которой мне логи понадобились ровно один раз, и то это был хакинтош) довольно информативна.

из альтернативный мнений мне «понравился» совет отформатировать все диски, толково придумано! дескать не нравится ей разметка.

ИЧСХ diskpart ничего криминального не видел. offline кстати не помог. только отключение в uefi.

Суёт свой нос куда не надо. Пытается подтянуть оборудование, на которое имеет драйверы (зачастую кривые), примонтировать диски. Она также предлагает отформатировать флэшки (хорошо хоть сама этого не делает, и на том спасибо) и наотрез отказывается их монтировать. Зато >=8(?) самостоятельно заменяет любой другой загрузчик своим, даже если её об этом не просили.

Благо, мне Windows нужна в лучшем случае раз в год, и со своей задачей вполне справляется в виртуалке (и в bhyve(8) заводится с полпинка).

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Благо, мне Windows нужна в лучшем случае раз в год, и со своей задачей вполне справляется в виртуалке (и в bhyve(8) заводится с полпинка).

Как там в улье дела с запуском от пользователя?

gutaper ★★★★★
()
Ответ на: комментарий от gutaper

Как там в улье дела с запуском от пользователя?

Никак. vmm(4), создание устройств, проброс и всё-всё в bhyve(8) требует повышенных привилегий. «Обратитесь к системному администратору для поднятия виртуальной машины.»

mord0d ★★★★★
()
Ответ на: комментарий от Clockwork

Копирую /boot на загрузочную флешку. Ядро 13.2 парольную фразу от ключа не просит(диски не аттачит). Гружу ядро /kernel.old (13.1-p6)(с той же флешки, в загрузчике выбираю) всё ok.

sinaps
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.