LINUXTALKS.CO

2
Всего сообщений: 36

AMD работает над дровами IOMMU в FreeBSD во имя серверов AMD EPYC

Группа FreeBSD

Проект FreeBSD опубликовал отчёт за II квартал 2024 года, в котором описана проделанная работа ведущими разработчиками BSD. По данным Phoronix, среди выполненных за последний квартал задач FreeBSD Foundation выделяются проекты по улучшению аудиостека, улучшению OpenZFS, переносу VPP (Vector Packet Processing) на FreeBSD и улучшению поддержки беспроводных сетей.

Также стало известно, что AMD и FreeBSD Foundation сотрудничают в разработке полноценного драйвера AMD IOMMU. Цель проекта — улучшить поддержку серверов на базе AMD EPYC во FreeBSD, в том числе с более чем 256 ядрами, сделать интеграцию с системой виртуализации Bhyve и другие усовершенствования.

«Продолжалась работа над совместным проектом Advanced Micro Devices (AMD) и FreeBSD Foundation по разработке драйвера AMD IOMMU. Этот драйвер позволит FreeBSD полностью поддерживать более 256 ядер с такими функциями, как отображение [mapping] CPU, а также будет включать интеграцию Bhyve. Константин Белоусов работал над различными частями проекта, включая подключение драйвера, определение регистров, парсер таблиц ACPI и реализацию служебных функций. Два ключевых компонента, которые необходимо доделать, — это обработка контекста, которая в основном является обобщением кода Intel DMAR, и создание таблиц страниц. После этого можно будет активировать драйвер AMD для тестирования. Чтобы следить за работой Константина, ищите коммиты в репозитории с тегом «Sponsored by fields for Advanced Micro Devices (AMD) and The FreeBSD Foundation»», — говорится в отчёте.

Появление поддержки со стороны AMD для сообщества FreeBSD является значимым событием, поскольку ранее только Intel славилась активным вкладом в развитие проекта и предоставлением инженерных ресурсов на протяжении многих лет. В этом свете интересно, является ли поддержка AMD жестом доброй воли или же у компании есть клиенты, которым необходимы совместимость и оптимизации для FreeBSD. Среди крупных игроков, в инфраструктуре которых активно используется FreeBSD, есть, например, Netflix. В последние годы Arm также начала активно участвовать в развитии ОС.

Кроме того, FreeBSD продолжает активную работу по поддержке архитектуры RISC-V. Так, уже существует экспериментальная поддержка Bhyve. Кроме того, одной из новых разработок для ядра FreeBSD стало создание Zcond — легковесного механизма условного выполнения, аналогичного интерфейсу static_key в Linux.

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

 , , ,

tiinn ()

FreeBSD прекратит поддержку 32-разрядных платформ

Группа FreeBSD

Джон Болдуин (John Baldwin), от лица FreeBSD Core Team, опубликовал предупреждение о прекращении поддержки 32-разрядных платформ. В ветке FreeBSD 15 планируется прекратить поставку платформ armv6, i386 и powerpc, а в ветке FreeBSD 16 прекратить поддержку оставшейся 32-разрядной платформы armv7. Возможность сборки 32-разрядных программ и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в окружении на базе 64-разрядного ядра сохранится как минимум до конца жизненного цикла ветки FreeBSD 16. Никаких планов по удалению возможности запуска 32-разрядных программ из 64-разрядных сборок ядра FreeBSD пока нет.

В качестве причин прекращения поддержки 32-разрядных архитектур упоминается снижение популярности 32-разрядных установок, смещение рынка аппаратного обеспечения в сторону 64-разрядных систем, вывод из эксплуатации 32-разрядного оборудования и нехватка у проекта ресурсов на сопровождение устаревших платформ

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

 , ,

cocucka ()

Началось бета-тестирование FreeBSD 14

Группа FreeBSD

Подготовлен первый бета-выпуск 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 года.

( читать дальше... )

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

 

crypt ()

В виртуальной машине FreeBSD обогнала Linux на 300%

Группа FreeBSD

В системе виртуализации Firecracker, рассчитанной на запуск виртуальных машин с минимальными накладными расходами, время загрузки ядра FreeBSD 14 (которая еще не вышла) снижено до 25 миллисекунд. Для сравнения время загрузки ядра Linux в аналогичной конфигурации оценивается в 75-80 миллисекунд.

p.s. мелким шрифтом

До проведения оптимизации ядро FreeBSD загружалось за 10 секунд.

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

 

crypt ()

Уязвимость, позволяющая обойти блокировку пакетным фильтром pf во FreeBSD

Группа FreeBSD

Во FreeBSD выявлена уязвимость в коде пакетного фильтра pf, позволяющая обойти заданные для IPv6 правила блокировки через манипуляцию с фрагментированными пакетами IPv6. Проблема проявляется при использовании pf для фильтрации трафика IPv6 при включённом режиме пересборки фрагментированных пакетов («scrub fragment reassemble»). Атакующий может обойти правила pf, отправляя специально оформленные некорректные IPv6-пакеты, вопреки требованиям спецификации содержащие несколько расширенных заголовков с данными фрагментации.

( читать дальше... )

>>> Подробности [Opennet]

 

Zadoff386 ()

Проекту FreeBSD исполнилось 30 лет

Группа FreeBSD

Проект FreeBSD празднует тридцатилетие.

( читать дальше... )

>>> Подробности [Opennet]

 

Zadoff386 ()

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

Группа FreeBSD

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

( читать дальше... )

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

 

crypt ()

демосцену запускают на FreeBSD

Группа FreeBSD

кто-то из лоровцев забложил

на лоре

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

 

crypt ()

12.4-RELEASE-p1 — patch level 1

Группа FreeBSD

FreeBSD-EN-22:22.tzdata.asc
FreeBSD-EN-22:28.heimdal.asc
FreeBSD-EN-23:01.tzdata.asc
FreeBSD-EN-23:04.ixgbe.asc (reboot)
FreeBSD-SA-22:14.heimdal.asc
FreeBSD-SA-22:15.ping.asc
FreeBSD-SA-23:01.geli.asc (reboot)

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

 

crypt ()

На Лоре запустили FreeBSD+nvidia+wayland

Группа FreeBSD

О, оказывается это можно!

у ТС на лоре это выглядит отстойно, описано отстойно, но технически это вин.

"Квест осложняется тем, что NVIDIA под фряху еще не завезла DRM-прослойку для запуска вяленых WM. Как оказалось, один человечек портировал модуль nvidia-drm.ko под фряху. Собрал его, и sway стартанул без проблем. Были проблемы с билдом модуля, мерцанием экрана и отсутствовшим курсором мыши, которые я зарепортил автору модуля, и он оперативно подсказал как их решить.

Что меня сразу удивило — при env WLR_RENDERER=vulkan и #ozone-platform-hint=wayland страницы в хроме стали рендерится существенно быстрее нежели на X-ах. Да и окна переключались мгновенно, на глаз быстрее нежели в xfce4. И тогда появился самочеленж: а смогу ли я настроить sway до юзабельного состояния + стабилен ли sway для повседневного использования…"

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

 ,

crypt ()

Выпуск FreeBSD 12.4

Группа FreeBSD

Представлен релиз FreeBSD 12.4. Установочные образы доступны для архитектур amd64, i386, powerpc, powerpc64, powerpcspe, sparc64 и armv6, armv7 и aarch64. Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2. FreeBSD 12.4 станет последним обновлением ветки 12.x, сопровождение которой продлится до 31 декабря 2023 года. Весной будет подготовлено обновление FreeBSD 13.2, а на июль 2023 года запланирован выпуск FreeBSD 14.0.

Ключевые новшества:

  • Переведён в разряд устаревших серверный процесс telnetd, кодовая база которого находится без сопровождения и имеет проблемы с качеством. В ветке FreeBSD 14 код telnetd будет удалён из системы. Поддержка клиента telnet остаётся без изменения.
  • В драйвере if_epair, применяемом для создания виртуальных Ethernet-интерфейсов, обеспечена возможность распараллеливания обработки трафика с привлечением нескольких ядер CPU.
  • В утилите cp реализована защита от возникновения бесконечной рекурсии при использовании флага "-R", обеспечена корректная обработка флагов "-H", "-L" и "-P" (например, при указании "-H" или "-P" прекращено раскрытие символических ссылок), разрешено использование флага "-P" без флага "-R".
  • Улучшена работа утилит nfsd, elfctl, usbconfig, fsck_ufs и growfs.
  • В командном интерпретаторе sh изменена логика загрузки профилей: вначале из каталога /etc/profile.d загружаются все файлы с расширением ".sh", затем загружается файл /usr/local/etc/profile, после чего файлы с расширением ".sh" загружаются из каталога /usr/local/etc/profile.d/.
  • В утилите tcpdump предоставлена возможность установки числа правил, отображаемых в заголовке pflog.
  • C DragonFly BSD синхронизирован код агента доставки сообщений dma (DragonFly Mail Agent), который обеспечивает приём и доставку сообщений от локальных почтовых клиентов (обработка сетевых SMTP-запросов через 25 порт не поддерживается).
  • В пакетном фильтре pf устранены утечки памяти и улучшена синхронизация состояния при перенаправлении трафика при использовании pfsync.
  • В пакетный фильтр ipfilter добавлены проверочные вызовы DT5 и SDT для механизма трассировки dtrace. Реализована возможность сброса дампа с копией ippool в формате ippool.conf. Запрещено изменение правил ipfilter, таблиц трансляции адресов и ip-пулов (ippool) из jail-окружений, в которых не используется виртуальный сетевой стек VNET.
  • Во фреймворк hwpmc (Hardware Performance Monitoring Counter) добавлена поддержка CPU Intel на базе микроархитектур Comet Lake, Ice Lake, Tiger Lake и Rocket Lake.
  • Улучшена поддержка оборудования. Устранены ошибки в драйверах aesni, aw_spi, igc, ixl, mpr, ocs_fc, snd_uaudio, usb.До версии 2.6.1 обновлён драйвер ena с поддержкой второго поколения сетевых адаптеров ENAv2 (Elastic Network Adapter), используемых в инфраструктуре Elastic Compute Cloud (EC2) для организации связи между узлами EC2.
  • Обновлены версии входящих в базовую систему сторонних приложений: LLVM 13, unbound 1.16.3, OpenSSL 1.1.1q, OpenSSH 9.1p1, file 5.43, libarchive 3.6.0, sqlite 3.39.3, expat 2.4.9, hostapd/wpa_supplicant 2.10.

( читать дальше... )

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

 

crypt ()

Уязвимость в ping из базовой поставки FreeBSD

Группа FreeBSD

Во FreeBSD выявлена уязвимость (CVE-2022-23093) в утилите ping, входящей в базовую поставку. Проблема потенциально может привести к удалённому выполнению кода с правами root при проверке при помощи ping внешнего хоста, подконтрольного злоумышленнику. Исправление предложено в обновлениях FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 и 12.3-RELEASE-p10. Подвержены ли другие BSD-системы выявленной уязвимости пока не ясно (отчётов об уязвимости в NetBSD, DragonFlyBSD и OpenBSD пока не появилось).

( читать дальше... )

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

 , , , ,

cocucka ()

В кодовую базу FreeBSD добавлена новая реализация VPN WireGuard

Группа FreeBSD

В дерево исходных текстов FreeBSD приняты изменения с новой реализацией VPN WireGuard, основанной на коде модуля ядра, совместно подготовленного основными командами разработчиков FreeBSD и WireGuard при участии Джейсона Доненфилда (Jason A. Donenfeld), автора VPN WireGuard, и Джона Болдуина (John H. Baldwin), известного разработчика GDB и FreeBSD, в начале 2000-х годов реализовавшего поддержку SMP и NUMA в ядре FreeBSD. После принятия драйвера в состав FreeBSD (sys/dev/wg), его разработка и сопровождение отныне будет вестись в репозитории FreeBSD.

Перед принятием кода при поддержке организации FreeBSD Foundation было проведено полное рецензирование изменений, в ходе которого также было проанализировано взаимодействие драйвера с остальными подсистемами ядра и оценена возможность задействования предоставляемых ядром криптографических примитивов.

Для использования необходимых драйверу криптографических алгоритмов было произведено расширение API криптоподсистемы ядра FreeBSD, в который была добавлена обвязка, позволяющая использовать через стандартный крипто-API не поддерживаемые во FreeBSD алгоритмы, используя реализацию необходимых алгоритмов из библиотеки libsodium. Из алгоритмов, встроенных в драйвер оставлен лишь код для вычисления хэшей Blake2, так как предоставляемая во FreeBSD реализация данного алгоритма завязана на фиксированный размер хэша.

Кроме того, в процессе рецензирования была проведена оптимизация кода, позволившая поднять эффективность распределения нагрузки на многоядерных CPU (обеспечена равномерная балансировка привязки задач шифрования и расшифровки пакета к ядрам CPU). В итоге накладные расходы при обработке пакетов были приближены к реализации драйвера для Linux. В коде также обеспечена возможность использования драйвера ossl для ускорения операций шифрования.

В отличие от прошлой попытки интеграции WireGuard во FreeBSD в новой реализации задействована штатная утилита wg, а не модифицированная версия ifconfig, что позволило унифицировать настройку в Linux и FreeBSD. Утилита wg как и драйвер включена в состав исходных текстов FreeBSD, что стало возможным благодаря изменению лицензии на код wg (код теперь доступен под лицензиями MIT и GPL). Прошлая попытка включения WireGuard в состав FreeBSD была предпринята в 2020 году, но завершилась скандалом, в результате которого уже добавленный код был удалён из-за низкого качества, безалаберной работы с буферами, использования заглушек вместо проверок, неполной реализации протокола и нарушения лицензии GPL.

Напомним, что VPN WireGuard реализован на основе современных методов шифрования, обеспечивает очень высокую производительность, прост в использовании, лишён усложнений и хорошо зарекомендовал себя в ряде крупных внедрений, обрабатывающих большие объёмы трафика. Проект развивается с 2015 года, прошёл аудит и формальную верификацию применяемых методов шифрования. В WireGuard применяется концепция маршрутизации по ключам шифрования, которая подразумевает привязку к каждому сетевому интерфейсу закрытого ключа и применение для связывания открытых ключей.

Обмен открытыми ключами для установки соединения производится по аналогии с SSH. Для согласования ключей и соединения без запуска отдельного демона в пространстве пользователя применяется механизм Noise_IK из Noise Protocol Framework, похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения с автоматической перенастройкой клиента.

Для шифрования используется потоковый шифр ChaCha20 и алгоритм аутентификации сообщений (MAC) Poly1305, разработанные Дэниелом Бернштейном (Daniel J. Bernstein), Таней Ланге(Tanja Lange) и Питером Швабе (Peter Schwabe). ChaCha20 и Poly1305 позиционируются как более быстрые и безопасные аналоги AES-256-CTR и HMAC, программная реализация которых позволяет добиться фиксированного времени выполнения без задействования специальной аппаратной поддержки. Для генерации совместного секретного ключа применяется протокол Диффи-Хеллмана на эллиптических кривых в реализации Curve25519, также предложенной Дэниелом Бернштейном. Для хеширования используются алгоритм BLAKE2s (RFC7693).

( читать дальше... )

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

 ,

crypt ()

FreeBSD на выделенных серверах Hetzner больше официально не поддерживается.

Группа FreeBSD

Европейский провайдер облачных и выделенных серверов Hetzner втихаря прекратил поддержку FreeBSD. Загрузка в систему восстановления FreeBSD больше не доступна, поэтому пользователи, работающие на выделенных серверах с FreeBSD, могут столкнуться с трудностями, если что-то пойдет не так. Но, к счастью, все еще можно установить FreeBSD с помощью образа mfsBSD и в некоторой степени управлять установкой из Linux rescue system, если использовать установку root-on-ZFS.

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

 ,

cocucka ()

В containerd приняты изменения, позволяющие запускать Linux-контейнеры во FreeBSD

Группа FreeBSD

В проект containerd принят набор изменений, интегрирующий поддержку runtime runj и открывающий возможность использования во FreeBSD OCI-совместимых образов контейнеров на базе Linux, например образов Docker. В комментариях к изменениям приведён пример успешного запуска во FreeBSD образа с Alpine Linux.

       $ sudo ctr run --rm --runtime wtf.sbk.runj.v1 --tty --snapshotter zfs docker.io/library/alpine:latest test sh -c 'cat /etc/os-release &&    uname -a'

NAME="Alpine Linux"   
ID=alpine   
VERSION_ID=3.16.0   
PRETTY_NAME="Alpine Linux v3.16"
HOME_URL="https://alpinelinux.org/" 
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"   Linux 3.17.0 FreeBSD 13.1-RELEASE releng/13.1-n250148-fc952ac2212    GENERIC x86_64 Linux

Несмотря на экспериментальный статус проекта runj и ограниченный набор функциональности на текущий момент, даже в таком виде проект может быть полезен для личных экспериментов, упрощения моделирования решений (Proof Of Concept), локальной разработки, запуска тестов перед развёртыванием в облачные системы и проработки работоспособности для случаев, когда нет возможности перейти на оттестированные и промышленные решения на других платформах, но потребность в контейнеризации назрела. Для работы требуются установленные jail, jls, jexec и ps.

Отдельно стоит отметить, что runj - личный проект Самуэля Карпа (Samuel Karp), инженера из компании Amazon, занимающегося разработкой Linux-дистрибутива Bottlerocket и технологий контейнерной изоляции для AWS, который также является независимым участником Technical Oversight Board проекта OpenContainers. После доведения runj до необходимого уровня проект можно будет применять для замены штатного runtime в системах Docker и Kubernetes, используя для запуска контейнеров FreeBSD вместо Linux. Из OCI runtime в настоящее время реализованы команды для создания, удаления, запуска, принудительного завершения и оценки состояния контейнеров, а также настройки процесса, точек монтирования и имени хоста.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter

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

 

crypt ()

Wifibox 0.10 - окружение для использования WiFi-драйверов Linux во FreeBSD

Группа Open Source

Доступен выпуск проекта Wifibox 0.10, нацеленного на решение проблемы с использованием во FreeBSD беспроводных адаптеров, для которых отсутствуют необходимые драйверы. Работа проблемных для FreeBSD адаптеров обеспечивается через запуск гостевой системы с Linux, в которой загружаются родные для Linux драйверы беспроводных устройств.

Установка гостевой системы с драйверами автоматизирована, а все необходимые компоненты оформлены в виде готового пакета wifibox, который запускается при загрузке при помощи поставляемого в комплекте rc-сервиса. В том числе корректно обрабатывается переход в спящий режим. Окружение потенциально может применяться для любых WiFi-карт, поддерживаемых в Linux, но протестировано в основном на чипах Intel. Также проверена корректная работа на системах с беспроводными чипами Qualcomm Atheros и AMD RZ608 (MediaTek MT7921K).

Гостевая система запускается при помощи гипервизора Bhyve, в котором организуется проброс доступа к беспроводной карте. Для работы требуется система с поддержкой аппаратной виртуализации (AMD-Vi или Intel VT-d). Начинка гостевой системы основана на дистрибутиве Alpine Linux, построенного на базе системной библиотеки Musl и набора утилит BusyBox. Размер образа занимает на диске примерно 30МБ и потребляет около 90 МБ оперативной памяти.

Для подключения к беспроводной сети используется пакет wpa_supplicant, файлы конфигурации для которого синхронизируются с настройками из основного окружения FreeBSD. Создаваемый wpa_supplicant управляющий Unix-сокет пробрасывается в хост-окружение, что позволяет использовать штатные утилиты FreeBSD для подключения и работы с беспроводной сетью, в том числе можно использовать утилиты wpa_cli и wpa_gui (net/wpa_supplicant_gui).

В новом выпуске переработан механизм проброса WPA в основное окружение, что позволило обеспечить работу как с wpa_supplicant, таки и с hostapd. Снижен необходимый для гостевой системы объём памяти. Прекращена поддержка FreeBSD 13.0-RELEASE.\

Дополнительно можно отметить работу по улучшению предлагаемых во FreeBSD драйверов для беспроводных карт на чипах Intel и Realtek. При поддержке организации FreeBSD Foundation продолжается развитие нового драйвера iwlwifi, включённого в состав FreeBSD 13.1. Драйвер основан на Linux-драйвере и коде из Linux-подсистемы net80211, поддерживает стандарт 802.11ac и может использоваться с новыми беспроводными чипами Intel. Драйвер загружается автоматически во время загрузки при обнаружении необходимой беспроводной карты. Работа компонентов беспроводного стека Linux обеспечивается при помощи прослойки LinuxKPI. Ранее похожим образом для FreeBSD был портирован драйвер iwm.

Параллельно началась разработка драйверов rtw88 и rtw89 для беспроводных чипов Realtek RTW88 и RTW89, которые также развиваются путём переноса соответствующих драйверов из Linux и работают при помощи прослойки LinuxKPI. Драйвер rtw88 уже готов для начального тестирования, а драйвер rtw89 пока находится на стадии разработки.

Кроме того, можно упомянуть публикацию деталей и готового эксплоита, связанных с уязвимостью (CVE-2022-23088) в беспроводном стеке FreeBSD, устранённой в апрельском обновлении. Уязвимость позволяет выполнить свой код на уровне ядра через отправку специально оформленного кадра в момент нахождения клиента в режиме сканирования сети (на стадии до привязки SSID). Проблема вызвана переполнением буфера в функции ieee80211_parse_beacon() при разборе beacon-кадров, передаваемых точкой доступа. Переполнение стало возможным из-за отсутствия проверки соответствия фактического размера данных и размера, указанного в поле заголовка. Проблема проявляется в версиях FreeBSD, сформированных с 2009 года.

Среди не связанных с беспроводным стеком недавних изменений во FreeBSD: проведена оптимизация времени загрузки, которая на тестовой системе была сокращена с 10 до 8 секунд; реализован GEOM-модуль gunion для выноса на другой диск изменений, производимых поверх диска, доступного в режиме только для чтения; для crypto API ядра подготовлены криптографические примитивы XChaCha20-Poly1305 AEAD и curve25519, необходимые для драйвера VPN WireGuard.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter

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

 ,

crypt ()