Отчёт о состоянии работ FreeBSD за второй квартал 2026
Перед вами второй отчёт о статусе FreeBSD за 2026 год — в нём 41 запись.
Независимо от того, пишете ли вы отчёт впервые, являетесь ли студентом Google Summer of Code, членом какой-либо команды FreeBSD или автором иного рода — ваш отчёт полезен. Он помогает информировать сообщество о происходящем, о достигнутом прогрессе, о том, где может потребоваться помощь и т.д.
Если вы являетесь участником проекта FreeBSD в каком-либо качестве, пожалуйста, подумайте о том, чтобы написать отчёт о своих собственных достижениях в следующем квартале!
Хочу также поблагодарить Владлена Пополитова за внедрение функции, которую давно просили: RSS-канал для подписки на отчёты.
Приятного чтения!
Лоренцо Сальвадоре (Lorenzo Salvadore), от имени команды по подготовке отчётов о статусе
- Отчёты команд FreeBSD
- Проекты
- FreeBSD, CRA, EuroBSDCon и Команда безопасности
- Проект готовности к Закону о киберустойчивости (CRA)
- Перечень компонентов программного обеспечения FreeBSD (FreeBSD Software Bill of Materials - SBOM)
- Полное управление CPUID для bhyve
- Sylve — Унифицированная платформа управления системами для FreeBSD
- Хакатон 202606 — Галифакс, Новая Шотландия, Канада
- Parthenope — Текущее состояние и улучшения
- Нативное получение данных S.M.A.R.T. во FreeBSD
- Пользовательские программы
- Ядро
- Улучшения приостановки/возобновления
- Гибернация (также известная как Suspend-to-disk)
- Совместное управление производительностью процессора (CPPC)
- Улучшения аудиостека
- Обновление LinuxKPI 802.11 и нативного беспроводного стека
- Драйверы DRM
- Туннель GENEVE
- Серия улучшений IPv6
- Поддержка метрики маршрутизации
- Нативная поддержка MPLS для FreeBSD
- Драйверы HID для Bluetooth
- NTSYNC(9)
- Архитектуры
- Облачная архитектура
- Документация
- Порты
Отчёты команд FreeBSD
Отчёты различных официальных и полуофициальных команд, представленные на Странице администрации.
Фонд FreeBSD
Ссылки:
Фонд FreeBSD URL: https://freebsdfoundation.org/
Технологическая дорожная карта URL: https://freebsdfoundation.org/blog/technology-roadmap/
Пожертвовать URL: https://freebsdfoundation.org/donate/
Программа партнёрства Фонда URL: https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/
Журнал FreeBSD URL: https://freebsdfoundation.org/journal/
Мероприятия Фонда URL: https://freebsdfoundation.org/our-work/events/
Контактное лицо: Deb Goodkin <[email protected]>
Фонд FreeBSD — это некоммерческая организация 501(c)(3), занимающаяся продвижением FreeBSD как через техническую, так и через нетехническую поддержку. Финансируемый исключительно за счёт пожертвований, Фонд поддерживает разработку программного обеспечения, инфраструктуру, безопасность и совместную работу; организует мероприятия и встречи разработчиков; предоставляет образовательные ресурсы и представляет Проект FreeBSD в юридических вопросах.
Улучшения операционной системы
Во втором квартале 2026 года было закоммичено 638 изменений в src, 120 в ports и 31 в doc при спонсорской поддержке Фонда FreeBSD.
Обратитесь к следующим записям отчёта, описывающим значительную часть этой спонсируемой разработки:
Другие основные моменты:
-
Фонд поддерживает два проекта: проект поддержки ноутбуков и удобства использования (в сотрудничестве с Quantum Leap Research) и Проект готовности к Закону о киберустойчивости (CRA).
-
Для получения справочной информации о проекте поддержки ноутбуков и удобства использования обратитесь к ежеквартальному отчёту о состоянии за 2025Q1.
-
FreeBSD участвует в Google Summer of Code (GSoC) 2026. Обратитесь к странице вики FreeBSD Summer of Code 2026 Projects для получения информации о каждом проекте.
Пропаганда
Во втором квартале 2026 года наша пропагандистская работа была сосредоточена на расширении нашего образовательного видеоконтента, охвате большего числа зрителей, чем когда-либо, объединении сообщества для продуктивного Саммита поставщиков и осмыслении работы, которая помогает поддерживать и развивать интерес к FreeBSD. Вот лишь несколько способов, которыми Фонд пропагандировал FreeBSD во втором квартале 2026 года:
-
Представление FreeBSD на Open Source Summit North America, где Деб Гудкин (Deb Goodkin), исполнительный директор Фонда FreeBSD, выступила с докладом «Чему меня научил запуск FreeBSD на современном ноутбуке».
-
Встреча разработчиков FreeBSD в июне 2026 года состоялась в Оттаве 17-18 июня 2026 года. Полный обзор смотрите на нашей странице YouTube.
-
Выступили в качестве серебряного спонсора BSDCan 2026 и приняли участие в конференции, общаясь с сообществом FreeBSD и поддерживая мероприятие.
-
Объявили о принятых проектах FreeBSD и участниках для Google Summer of Code (GSoC) 2026.
-
Продолжили информационно-разъяснительную работу и взаимодействие с регулирующими органами через участие в месяце поддержки сопровождающих GitHub, где Энн Дикинсон (Anne Dickison) присоединилась к панельной дискуссии о предложениях по подтверждению возраста и их влиянии на сопровождающих открытого исходного кода.
-
Присоединились к Open Source Security Foundation (OpenSSF) для совместной работы по укреплению безопасности открытого исходного кода в различных экосистемах.
-
Опубликовали следующие блоги и видео, чтобы информировать и обучать сообщество:
-
Опубликовали апрельский и майский информационные бюллетени Фонда FreeBSD за 2026 год.
-
Выпустили январский/февральский/мартовский выпуск журнала FreeBSD за 2026 год с HTML-версиями статей.
Непрерывная интеграция и улучшение рабочего процесса
Фонд содержит штатного сотрудника, занимающегося улучшением системы непрерывной интеграции и тестовой инфраструктуры Проекта.
Юридические вопросы/Интеллектуальная собственность FreeBSD
Фонду принадлежат товарные знаки FreeBSD, и наша обязанность — защищать их. Мы также предоставляем юридическую поддержку основной команде для расследования возникающих вопросов.
Посетите https://freebsdfoundation.org, чтобы узнать больше о том, как мы поддерживаем FreeBSD и как мы можем помочь вам!
Команда управления релизами FreeBSD
Ссылки:
Объявление о FreeBSD 15.1-RELEASE URL: https://xiaojio.eu.org/releases/15.1R/announce/
График выхода FreeBSD 14.5-RELEASE URL: https://xiaojio.eu.org/releases/14.5R/schedule/
Релизы FreeBSD URL: https://download.freebsd.org/releases/ISO-IMAGES/
Разработочные снимки FreeBSD URL: https://download.freebsd.org/snapshots/ISO-IMAGES/
Контактное лицо: Команда управления релизами FreeBSD <[email protected]>
Команда управления релизами FreeBSD отвечает за установление и публикацию графиков выпуска официальных релизов FreeBSD, объявление заморозок кода и поддержку соответствующих веток, среди прочего.
Команда управляла процессом 15.1-RELEASE, что привело к официальной сборке RELEASE и объявлению в июне. Началось планирование предстоящего 14.5-RELEASE, который должен выйти в сентябре.
Команда управления релизами продолжила предоставление еженедельных разработочных снимков для веток main, stable/15 и stable/14; а также для ветки stable/13 до её конца жизненного цикла (End-of-Life) в конце апреля.
Команда администраторов кластера
Ссылки:
Участники команды администраторов кластера URL: https://xiaojio.eu.org/administration/#t-clusteradm
Контактное лицо: Команда администраторов кластера <[email protected]>
Контактное лицо: Philip Paeps <[email protected]>
Члены команды администраторов кластера FreeBSD отвечают за управление машинами, на которые полагается Проект для синхронизации своей распределённой работы и коммуникаций.
В этом квартале команда работала над следующим:
-
Обычная поддержка учётных записей пользователей FreeBSD.org.
-
Обычная поддержка дисков и комплектующих (и их замена) для всех физических хостов и зеркал.
-
Обновление программного обеспечения кластера.
-
Координация работы сообщества зеркал.
-
Дополнительная поддержка команды wiki-admin@.
-
Частые вмешательства для предотвращения атак типа "отказ в обслуживании" со стороны ботов.
Обновление кластера
Продолжается работа по обновлению программного обеспечения, работающего на машинах кластера FreeBSD.org. Мы начали размещать рабочие нагрузки на stable/15. В рамках этой работы некоторые рабочие нагрузки переносятся на разные машины. Эта работа продолжается на конец квартала.
Команда clusteradm обновляет рабочие сборщики пакетов (около 35 физических машин) с периодичностью примерно раз в шесть-восемь недель. На этих машинах работают снимки current ветки FreeBSD.
Другие машины обновляются по мере необходимости, с учётом исправлений безопасности в зависимости от степени их доступности извне.
На момент написания этого отчёта в кластере насчитывается 142 физические машины. У нас 42 машины на current, 21 на stable/15 и 73 на stable/14.
Большинство оставшихся установок stable/13 будут обновлены до stable/15.
12.x: Обычных 0, Клеток 7
13.x: Обычных 6, Клеток 31
14.x: Обычных 73, Клеток 254
15.x: Обычных 21, Клеток 4
16.x: Обычных 42, Клеток 6
Всего: Обычных 142, Клеток 302
Всего установок: 444
Работает -RELEASE|{-p*}: 0
Всего географических сайтов: 13
Официальные зеркала FreeBSD
Текущие расположения: Австралия, Бразилия, Япония (два полных зеркальных сайта), Малайзия, Южная Африка, Швеция, Тайвань и Соединённые Штаты Америки — Калифорния, Чикаго, Нью-Джерси и Вашингтон.
Наш зеркальный сайт на Тайване испытывает длительный перерыв в работе.
Один из наших зеркальных сайтов в Японии получит полное обновление аппаратного обеспечения в 2026Q3.
Оборудование и сетевое соединение были щедро предоставлены:
-
Лаборатория Cloud и SDN при BroadBand Tower, Inc
-
Департамент компьютерных наук, Национальный университет Ян Мин Цзяо Тун
Новые официальные зеркала всегда приветствуются. Мы отметили преимущества размещения одиночных зеркал в точках обмена интернет-трафиком (IXP) по всему миру, о чём свидетельствуют наши существующие зеркала в Австралии, Бразилии и Южной Африке. Если вы связаны с какими-либо организациями или знаете о них, готовых спонсировать одиночный зеркальный сервер, пожалуйста, свяжитесь с нами. Мы особенно заинтересованы в расположении в Европе.
Смотрите общую схему зеркалирования для спецификаций полного зеркального сайта и tiny-mirror для одиночного зеркального сайта.
Поддержка команды wiki-admin@
Команда администраторов кластера взяла на себя роль wiki-admin на протяжении большей части этого квартала, пока должность была вакантна. Недавно была назначена новая команда wiki-admin. Команда администраторов кластера продолжает поддерживать команду wiki-admin в необходимых обновлениях внутренней инфраструктуры вики.
Сбор данных для больших языковых моделей
Инфраструктура Проекта FreeBSD продолжает подвергаться постоянным атакам со стороны сборщиков данных для обучения больших языковых моделей («ИИ»). Компании, обучающие эти модели, в значительной степени перенесли операции по сбору данных со своей собственной — легко идентифицируемой — инфраструктуры на ботнеты («резидентные прокси»), что затрудняет их блокировку на сетевых границах без значительного сопутствующего ущерба. Команда администраторов кластера снова потратила значительное количество времени в этом квартале на смягчение этих распределённых атак типа «отказ в обслуживании».
Спонсор: Анонимные частные лица и компании
Спонсор: https://github.com/sponsors/ppaeps
Команда Bugmeister
Ссылки:
FreeBSD Bugzilla URL: https://bugs.freebsd.org/
Общее количество открытых ошибок во времени URL: https://bugs.freebsd.org/bugzilla/page.cgi?id=showreport.html&type=total_open_bugs_over_time
Контактное лицо: Bugmeister <[email protected]>
В этом квартале нам удалось снизить количество сообщений о проблемах (Problem Reports).
Хотя мы по-прежнему получаем патчи для дерева исходных кодов (src), большинство получаемых патчей относится к портам. Возможно, это связано с внедрёнными нами настройками автоуведомлений.
Для дерева src за последние 180 дней мы получили 643 новых сообщения о проблемах и закрыли 844. Для портов эти цифры составили 3493 и 4375 соответственно.
В настоящее время мы не ведём статистику о том, сколько из них действительно приводят к коммитам, хотя мы полагаем, что это число не является незначительным.
За тот же 180-дневный период Марк Линимон (Mark Linimon) и Торстен Цюльсдорф (Torsten Zuehlsdorff) продолжали работу по классификации (триажу) старых сообщений о проблемах. Работа Марка частично финансировалась Фондом FreeBSD в 2025 году. Результаты этой работы видны по двум последним спадам на нашем графике Общее количество открытых ошибок во времени.
Кроме того, в этом году мы, похоже, привлекаем больше внимания со стороны различных разработчиков FreeBSD (коммитеров). Пожалуйста, свяжитесь с bugmeister, если вы заинтересованы в помощи.
Конечно, мы всё ещё лучше справляемся с классификацией сообщений, чем с привлечением внимания к уже имеющимся. Предложения приветствуются.
Марк Линимон взял на себя долгосрочный проект по обеспечению применимости всех отправленных патчей. Однако он не претендует на роль специалиста по контролю качества и не может самостоятельно оценивать их пригодность.
Общий вывод заключается в том, что благодаря обучению пользователей в этом году мы получаем сообщения о проблемах более высокого качества. В частности, патчи проверяются на применимость в течение одной-двух недель после их поступления и при необходимости исправляются.
Однако чем дальше в прошлое мы углубляемся, тем более проблемными становятся сообщения, особенно за 2019 год и ранее. Полагаю, этого следовало ожидать. Марк продолжает работать над ними в фоновом режиме. Текущее количество составляет 2611. Около 427 из них, в основном за 2019 год и ранее, всё ещё требуют дальнейшей доработки.
Проблема с настройкой обновления до Bugzilla 5.2 была исправлена. Поверхностное тестирование не выявило значимых регрессий. Выпуск версии с исправлениями 5.2.1 ожидается в ближайшее время. Переход на эту кодовую базу планируется осуществить сразу после её выхода. Изначально это планировалось сделать раньше, однако это казалось нецелесообразным во время подготовки релиза FreeBSD 15.0, а затем было отложено до 15.1.
"patchQA.py" всё ещё находится в бета-версии. Код применения патчей не справляется со своей задачей и должен быть заменён.
Другая известная проблема с patchQA.py заключается в том, что он не знает происхождения файлов, которые устанавливаются в /etc с помощью installworld. Существуют внешние shell-скрипты, проходящие тестирование, чтобы помочь автоматизировать исправление данных. Это может оказаться проще, чем пытаться писать для этой цели более хрупкий код на Python.
Мы создали множество новых учётных записей Bugzilla по запросам пользователей. Количество запросов на создание новых учётных записей увеличилось в этом году. На данный момент в 2026 году их 291, что составляет почти 2 в день.
Прошёл уже год с тех пор, как мы начали требовать запросы по электронной почте для создания учётных записей вместо автоматических запросов. Благодаря этому поток спама был снижен практически до нуля.
Другая проблема, за которой мы наблюдаем, — огромное количество HTTP-запросов от поисковых роботов (краулеров). На сегодняшний день эти запросы намного превышают количество запросов от реальных пользователей FreeBSD. Они являются причиной внезапных замедлений работы, на которые жалуются наши пользователи. Поскольку никто из нас не является профессиональным системным администратором, мы приветствуем помощь от кого-либо с профессиональным опытом решения таких проблем.
Благодарность Александру Зиаи (Alexander Ziaee) и многим другим, кто помог нам достичь текущего состояния.
Команда Wiki-Admin
Марк Линимон (Mark Linimon) отошёл от роли wiki-admin, и два коммитера взяли на себя обязанности wiki-admin.
В краткосрочной перспективе команда будет заниматься запросами на создание учётных записей и т.п.
В среднесрочной перспективе планируется помощь в структурировании страниц вики.
В долгосрочной перспективе рассматривается идея перехода с MoinMoin Wiki на другое вики-программное обеспечение.
Проекты
Проекты, охватывающие несколько категорий — от ядра и пользовательских инструментов до Коллекции портов или внешних проектов.
FreeBSD, CRA, EuroBSDCon и Команда безопасности
Ссылки:
Alpha-Omega — Проект Фонда Linux URL: https://alpha-omega.dev
Фонд FreeBSD URL: https://freebsdfoundation.org
Информация о безопасности FreeBSD URL: https://xiaojio.eu.org/security/
EuroBSDCon 2026 URL: https://2026.eurobsdcon.org
Контактное лицо: Pierre Pronchery <[email protected]>
Этот квартал ознаменовал начало моего участия в новой инициативе Alpha-Omega, связанной с ИИ. Новую волну раскрытий уязвимостей безопасности с использованием больших языковых моделей (LLM) трудно не заметить, и теперь Alpha-Omega помогает ведущим экосистемам открытого исходного кода, сталкивающимся с этой проблемой. Это включает FreeBSD, и, учитывая ситуацию, я вызвался добровольцем и был принят в команду безопасности FreeBSD. Моя цель там, помимо помощи с входящими отчётами, где я могу, — понять существующие процессы и предложить улучшения для облегчения и масштабирования операций. Это началось с нового экземпляра RTIR и с экспериментального экземпляра Forgejo для CI/CD и возможного использования интеграции LLM в рабочий процесс команды безопасности.
По смежной теме, в целях облегчения соответствия европейскому Закону о киберустойчивости (CRA), pkgconf был импортирован в базовую систему FreeBSD версии 2.9.93. Теперь он включает spdxtool(1), который поддерживает генерацию Спецификации программного обеспечения (SBOM), соответствующей спецификации SPDX 3.0.1. Совместно с Tuukka Pasanen мы предлагаем структуру для рецензирования в D56474, которую, к сожалению, ещё предстоит доработать перед импортом.
Во-первых, её следует обновить с учётом доступности spdxtool (патч уже доступен). Что более важно, найти правильную степень детализации для количества генерируемых файлов SBOM при встраивании в систему сборки FreeBSD было непросто. Этим объясняется отсутствие метаданных в некоторых случаях; мы работаем над этим, чтобы подход был максимально последовательным с самого начала. Наконец, заранее приношу извинения за более чем 1000 файлов, добавляемых в предстоящий релиз; надеюсь, это будет смягчено переходом на pkgbase, с которым, как мы полагаем, это будет идеально сочетаться. Ожидается, что файлы SBOM будут автоматически предоставляться в соответствующих установленных пакетах, что позволит инструментам SBOM работать с точным знанием состояния установленной системы.
В этом контексте я рад сообщить, что Alice Sowerby, Peter Hansteen и я объединяемся для проведения семинара о соответствии требованиям CRA для систем на базе BSD на предстоящей конференции EuroBSDCon в Брюсселе в сентябре 2026 года. Приглашаем вас присоединиться к нам там для получения практической информации о соответствии требованиям CRA в нашей экосистеме!
Спонсор: Alpha-Omega, The FreeBSD Foundation
Проект готовности к Закону о киберустойчивости (CRA)
Ссылки:
Проект готовности к Закону о киберустойчивости URL: https://github.com/FreeBSDFoundation/all-projects/tree/main/Cyber%20Resilience%20Act%20Readiness
Фонд реализует проект в течение 2026 года для активной подготовки Фонда FreeBSD, Проекта и сообщества к Закону ЕС о киберустойчивости. Существует шесть основных направлений деятельности: Безопасность и обработка уязвимостей, Инструментарий SBOM, Публичная документация, Взаимодействие с законодателями сообщества, Публичный репозиторий проекта и Коммуникации.
За второй квартал проект достиг значительного прогресса в достижении своих ключевых целей.
Усилия в области безопасности были сосредоточены на улучшении обработки уязвимостей и готовности цепочки поставок через обсуждения с нижестоящими поставщиками процессов отчетности, использования Спецификации программного обеспечения (SBOM) и потенциального финансирования работ по обеспечению соответствия требованиям.
Фонд также укрепил сотрудничество с более широкой экосистемой открытого исходного кода, участвуя в деятельности Open Regulatory Compliance и OpenSSF, вступив в OpenSSF в качестве ассоциированного члена, приняв участие в Open Source Summit North America и взаимодействуя с такими проектами, как Zephyr, для обмена стратегиями готовности к CRA.
Работа над инструментарием SBOM значительно продвинулась и теперь близка к полноценной сквозной функциональности. Мы планируем опубликовать технический блог, как только оставшаяся работа будет завершена.
Фонд также создал проект руководства по CRA для сообщества FreeBSD, и мы планируем опубликовать его вместе с выделенным разделом на веб-сайте Фонда, предоставляющим постоянную информацию о соответствии требованиям.
Прозрачность оставалась приоритетом, и Фонд публиковал ежемесячные публичные обновления и протоколы встреч в репозитории по ссылке выше. На EuroBSDCon будет проведён полнодневный учебный курс по CRA и SBOM, который мы приглашаем вас посетить!
Перечень компонентов программного обеспечения FreeBSD (FreeBSD Software Bill of Materials - SBOM)
Ссылки:
Инструменты FreeBSD Lua для SBOM URL: https://github.com/illuusio/freebsd-src/tree/freebsd-lua-tools-sbom/share/sbom
Файлы SBOM для pkg-config (в разработке), которые являются основой для работы Пьера Проншери URL: https://github.com/illuusio/freebsd-src/tree/sbom-pkgconfig-meld/share/sbom
Рецензирование генерации файлов SBOM как части процесса сборки URL: https://reviews.freebsd.org/D56474
Открытые запросы на включение идентификаторов лицензий SPDX в вышестоящие проекты:
ATF PR#128 URL: https://github.com/freebsd/atf/pull/128
bmake NetBSD GNATS#60308 URL: https://gnats.netbsd.org/60308
LDNS ISSUE#305 URL: https://github.com/NLnetLabs/ldns/issues/305
Less PR#792 URL: https://github.com/gwsw/less/pull/792
Libarchive PR#3129 URL: https://github.com/libarchive/libarchive/pull/3129
LibCBOR ISSUE#430 URL: https://github.com/PJK/libcbor/issues/430
libedit NetBSD GNATS#60309 URL: https://gnats.netbsd.org/60309
Libevent ISSUE#1864 URL: https://github.com/libevent/libevent/issues/1864
LibPCAP PR#1689 URL: https://github.com/the-tcpdump-group/libpcap/pull/1689
LibUCL PR#386 URL: https://github.com/vstakhov/libucl/pull/386
TCSH Mantis#777 URL: https://bugs.astron.com/view.php?id=777
Контакт: Tuukka Pasanen <[email protected]>
Работа над спецификацией состава программного обеспечения FreeBSD (SBOM) продолжалась в течение второго квартала 2026 года. В этом квартале основное внимание уделялось рецензированию и обновлению файлов pkg-config .pc и добавлению SPDX-License-Identifier в сторонние проекты, включённые в исходный код FreeBSD. Эта работа будет продолжена в третьем квартале.
Как уже было сказано, большая часть работы в этом квартале была посвящена доработке файлов pkg-config .pc, поскольку эти файлы необходимы при формировании файлов SBOM, совместимых с SPDX 2.2 и SPDX Lite 3.0.1. В течение этого года Пьер Проншери (Pierre Pronchery) добавлял другие важные компоненты, такие как pkgconf, в исходный код FreeBSD. В настоящее время самые большие усилия с его стороны в части инструментария направлены на рецензирование части сборки, отвечающей за генерацию SBOM, в рамках которой также рецензируются файлы .pc. Когда рецензирование будет завершено и исходный код будет добавлен во FreeBSD, SBOM можно будет создавать в процессе сборки.
Помимо работы над файлами .pc, была проведена доработка инструментов FreeBSD Lua для SBOM. Эти инструменты использовались для создания текущего набора файлов .pc и могут быть применены для будущих обновлений. Эти скрипты всё ещё несколько сырые и сложные в использовании, но сейчас они в гораздо лучшем состоянии, чем раньше, и к ним есть документация по использованию.
Добавление SPDX-License-Identifier в репозитории сторонних проектов также продолжается и будет выполняться в порядке, согласованном с предпочтениями сопровождающих этих проектов. Почему идентификаторы лицензий добавляются в сторонние проекты? На этот вопрос нет простого ответа, но наиболее близкое объяснение заключается в том, что машиночитаемые идентификаторы лицензий помогают поддерживать информацию SBOM в будущем.
Если вы хотите помочь в этой работе:
-
Примите участие в рецензировании файлов .pc в Phabricator в рамках рецензирования "Generate SBOM files as part of the build".
-
Помогите с рецензированием импорта pkgconf 3.0 в исходный код FreeBSD.
Спонсор: FreeBSD Foundation
Полное управление CPUID для bhyve
Контактное лицо: Hans Rosenfeld <[email protected]>
Обзор проекта
Текущая работа над этим проектом направлена на интеграцию существующей концептуальной реализации во FreeBSD и добавление следующих функций удобства использования:
-
удобный метод настройки для переопределения отдельных битов, частей или даже целых функций CPUID по мере необходимости с сохранением остальной информации о CPUID хоста или предварительно заданной конфигурации CPUID;
-
удобный метод настройки идентификатора гипервизора, сообщаемого bhyve;
-
набор предварительно заданных конфигураций CPUID на основе общих архитектурных уровней x86, возможно, также включающий набор данных CPUID для нескольких реальных моделей процессоров, и удобный метод настройки для выбора одного из них для виртуальной машины.
Изменения в течение последнего квартала
Расширения синтаксиса конфигурации bhyve
Существующий синтаксис файла конфигурации bhyve был ограничен присваиваниями узлам конфигурации, которые внутренне преобразовывались в древовидный набор списков nvlist.
Чтобы обеспечить более гибкую настройку с использованием предварительно заданных фрагментов файлов конфигурации, синтаксис файла конфигурации bhyve был дополнен двумя новыми возможностями:
-
В узел конфигурации можно добавить значение с помощью оператора
+=. Если этому же узлу конфигурации уже было присвоено значение, новое значение добавляется к старому, разделяясь запятой. -
Другой файл конфигурации можно включить с помощью директивы
include. Поддерживаются абсолютные и относительные пути, но относительные пути интерпретируются как относительные к пути файла конфигурации, в котором находится директива включения.
Ещё более гибкая настройка CPUID
Механизм настройки CPUID был расширен для поддержки символических имён возможностей, где каждое имя соответствует определённому биту регистра для функции CPUID. Это особенно полезно для отдельных расширений системы команд или других опциональных возможностей, которые можно включать или отключать по желанию.
Таким образом, вместо настройки cpuid.0x00000001+=edx|=0x00040000 теперь можно просто написать cpuid.enable+=psn.
Существует также соответствующая опция cpuid.disable для символических возможностей.
Использование битовых операций над регистрами CPUID, конечно, всё ещё поддерживается, поскольку не все возможности CPUID могут быть выражены в виде отдельных битов возможностей.
Использование архитектурных уровней x86
Архитектурные уровни x86 теперь реализованы как набор предварительно заданных фрагментов файлов конфигурации, причём каждый более высокий уровень строится поверх более низкого.
Чтобы проиллюстрировать это, вот как теперь выглядит x86-64-v3.cfg:
include x86-64-v2.cfg cpuid.enable+=fma,movbe,osxsave,avx,f16c cpuid.enable+=bmi1,avx2,bmi2 cpuid.enable+=abm
Модель процессора или архитектуры можно выбрать либо путём включения соответствующего файла конфигурации из /usr/share/bhyve/cpu в файл конфигурации bhyve, либо указав её в командной строке как часть конфигурации виртуального процессора: bhyve […] -c 16,model=x86-64-v1 […]
Ограничения CPUID
Чтобы предотвратить случайное включение возможностей CPUID для гостевого процессора, которые не поддерживаются хост-процессором, анализатор конфигурации CPUID был расширен списком ограничений CPUID, которые проверяются при установке или изменении значения определённого регистра CPUID.
Для любого регистра в функции CPUID ограничение может указывать, какие биты неизменяемы, а какие могут быть только очищены.
Ограничения проверяются после применения конфигурации CPUID.
Планы на следующий квартал
-
Реализовать переопределения для ограничений CPUID, чтобы игнорировать любые ограничения или предупреждать о нарушении ограничения вместо остановки настройки виртуальной машины.
-
Предоставить больше предварительно заданных конфигураций процессоров на основе реальных процессоров.
-
Аналогично установке архитектурного уровня x86, будет реализован механизм для переопределения идентификации гипервизора без необходимости ручного изменения битов CPUID.
-
Провести рецензирование всего набора изменений и включить его во FreeBSD.
Спонсор: The FreeBSD Foundation
Sylve — Унифицированная платформа управления системами для FreeBSD
Ссылки:
Веб-сайт URL: https://sylve.io
GitHub URL: https://github.com/AlchemillaHQ/Sylve
CI URL: https://sylve-ci.alchemilla.io
Discord URL: https://discord.gg/bJB826JvXK
Контактное лицо: Hayzam Sherif <[email protected]>
Sylve — это современная унифицированная платформа управления системами для FreeBSD. Она предоставляет интегрированный веб-интерфейс для управления виртуальными машинами (через Bhyve), клетками (Jails), сетью вокруг них и хранилищем ZFS.
Бэкенд реализован на Go, а фронтенд построен на Svelte. Проект делает акцент на минимальном системном следе. По умолчанию ему не требуются никакие пакеты за пределами базовой системы.
Опциональные зависимости времени выполнения, необходимые только при использовании соответствующих функций, включают:
-
devel/libvirt для виртуализации
-
devel/qemu для управления образами дисков
-
net/samba419 для общего доступа к файлам по SMB
-
sysutils/swtpm для поддержки эмуляции TPM
-
dns/dnsmasq для служб DHCP и DNS
Порт подтягивает эти зависимости для удобства пользователя, но сам по себе Sylve не требует зависимостей для запуска.
Основные достижения во втором квартале
Дата-центр / Кластер
-
Реализованы способы для пользователей по организации высокодоступных виртуальных машин и клеток с автоматическим переключением на резервный/третичный и т.д. узел в кластере с помощью репликации ZFS (прямой миграции (live migration) пока нет).
-
Реализована возможность простой миграции виртуальных машин/клеток между узлами в кластере без кворума или высокой доступности (HA) с помощью простой кнопки «Migrate» в пользовательском интерфейсе.
-
Рабочие процессы резервного копирования и восстановления значительно улучшены: улучшена обработка ошибок и обратная связь с пользователем, включая поддержку зашифрованных наборов данных.
Сеть
-
Добавлена поддержка добавления сетевых маршрутов из веб-интерфейса.
-
Реализован межсетевой экран на основе PF с полной поддержкой правил трафика и NAT, включая возможность использования объектов в правилах для списков IP-адресов, FQDN и т.д.
-
Добавлена поддержка интуитивно понятного интерфейса конфигурации WireGuard, позволяющего пользователям легко настраивать и управлять туннелями WireGuard.
Хранилище
-
smart(8) включён в качестве зависимости как альтернатива smartmontools.
-
Управление пулами ZFS теперь поддерживает создание специальных VDEV.
-
Samba теперь использует встроенный mDNS-сервер вместо avahi.
-
Добавлена начальная поддержка iSCSI, позволяющая пользователям создавать и управлять iSCSI-целями и инициаторами непосредственно из веб-интерфейса.
Виртуальные машины и клетки
-
Улучшена отзывчивость и производительность пользовательского интерфейса, особенно для больших кластеров с большим количеством виртуальных машин/клеток.
-
Добавлена поддержка тегов VLAN для клеток напрямую, без необходимости создания отдельного моста для каждой VLAN.
-
Множество ручных флагов командной строки теперь преобразованы в синтаксис XML libvirt для виртуальных машин, что упрощает управление и улучшает совместимость с инструментами на основе libvirt.
-
Значительно улучшены процессы автоматического запуска/остановки виртуальных машин и клеток.
Общее
-
Переработана система уведомлений: добавлена поддержка веб-хуков Discord, ntfy.sh и транспортов на основе SMTP. Теперь она также поддерживает несколько транспортов одновременно и позволяет пользователям настраивать, для каких событий они хотят получать уведомления.
Обновление дорожной карты
-
Все пункты дорожной карты (кроме общих ресурсов NFS с предыдущего квартала) были выполнены, и теперь мы работаем над следующим набором функций для третьего квартала:
-
Поддержка общих ресурсов NFS, позволяющая пользователям создавать общие ресурсы NFS и управлять ими непосредственно из веб-интерфейса.
-
Упрощённый режим пользовательского интерфейса, призванный облегчить новым пользователям начало работы с Sylve в качестве NAS-устройства.
-
Поддержка Podman и контейнеров OCI, позволяющая пользователям запускать контейнеры вместе с виртуальными машинами и (классическими) клетками.
-
Мобильное приложение для iOS и Android, позволяющее пользователям управлять своими кластерами на ходу.
-
Библиотека шаблонов приложений, позволяющая пользователям легко разворачивать популярные приложения (такие как Nextcloud, Plex и т.д.) одним щелчком мыши.
Спонсоры: The FreeBSD Foundation, Alchemilla Ventures (разработка), IPTechnics LLC (инфраструктура и тестирование)
Хакатон 202606 — Галифакс, Новая Шотландия, Канада
Ссылки:
Страница вики Хакатона/202606 URL: https://wiki.freebsd.org/Hackathon/202606
Страница вики хакатонов FreeBSD URL: https://wiki.freebsd.org/Hackathon
Контактное лицо: Joe Mingrone <[email protected]>
После BSDCan 2026 в Оттаве некоторые члены сообщества собрались на хакатон в Университете Далхаузи в Галифаксе, Новая Шотландия, Канада.
По трём репозиториям было закоммичено 93 изменения с тегом Event: Halifax Hackathon 202606.
Большая часть этой работы описана в отдельных записях отчёта, но здесь приводится краткий обзор.
Основной объём работы над src был сосредоточен на управлении энергопотреблением процессора.
Большая его часть попала в hwpstate_intel(4), который получил исправления для нескольких ошибок, связанных с MSR и неинициализированными переменными, перенёс настройку предпочтения энергоэффективности на 8-битную шкалу и заменил thread_lock() и sched_bind() на IPI.
Был также добавлен новый KPI cpu_get_pcpuid(), который был принят как hwpstate_intel(4), так и hwpstate_amd.
Проход по коду ACPI ужесточил типы обработчиков событий сна и пробуждения, удалил неиспользуемые флаги отключения из acpi_cpu, acpi_hpet(4) и acpi_timer, а также заставил ядро отклонять S4, когда S4BIOS не поддерживается.
Для поддержки ноутбуков был закоммичен новый драйвер hrfkill для клавиши режима «в самолёте» на некоторых ноутбуках Framework, в acpi_ibm(4) была добавлена отправка в evdev события о нажатии клавиши отключения микрофона, а iichid(4) был изменён так, чтобы всегда освобождать свой ресурс прерываний.
Другие изменения в src затронули libusb, libdtrace, libcxxrt, ifconfig(8), sched_ule и ряд справочных страниц.
В портах Python по умолчанию был переключён на 3.12, добавлен новый порт databases/py-oracledb, а изменение в sysutils/consolekit2 включило приостановку S0ix на 16-CURRENT.
Порты Emacs получили различные обновления и улучшения; были обновлены порты R, Jenkins и некоторые биоинформатические порты.
Работа над документацией добавила раздел в Справочник (Handbook) о собственной ZFS-шифровании, обновила инструкции по зашифрованному подкачку geli и улучшила руководство FDP Primer по созданию патчей с контекстом.
Хотя большая часть времени была посвящена программированию, это были не только рабочие будни, как показывают фотографии. Участники провели несколько вечеров и полдня за развлечениями.
Спонсор: The FreeBSD Foundation (питание)
Parthenope — Текущее состояние и улучшения
Контактное лицо: Alfonso Sabato Siciliano <[email protected]>
Parthenope — это модульный двухэтапный установщик для FreeBSD, написанный на Lua.
В течение этого квартала проект был представлен на BSDCan 2026, где были продемонстрированы его текущее состояние, недавние улучшения и направления дальнейшего развития. Презентация также представила несколько новых идей, макетов и концептуальных реализаций для будущего обсуждения и разработки, включая опыт «из коробки» и/или рабочий процесс пост-установочной настройки.
С момента предыдущего отчёта о состоянии и презентации на EuroBSDCon 2025 несколько основных частей установщика были полностью переработаны или переписаны, включая:
-
Файл конфигурации;
-
Файл связи, используемый для обмена данными между Этапом 1 и Этапом 2;
-
Подсистемы установщика, включая интернационализацию, поддержку нескольких режимов и связанную инфраструктуру;
-
Менеджеры Этапа 1 и Этапа 2;
-
Фреймворк компонентов, где экраны установки теперь управляются и вызываются Менеджером Этапа 1;
-
Несколько компонентов установщика и экранов установки.
Интерфейс Text User Interface (TUI) теперь близок к полноте функциональности, что приближает его к поддержке полной установки FreeBSD. Оставшимися основными компонентами и экранами являются редактор разделов, конфигурация ZFS, настройка загрузки и сетевой менеджер.
Хотя пока ещё невозможно полностью установить FreeBSD с помощью Parthenope, разработка быстро продвигается к функциональному релизу. Следующие шаги:
-
Завершить оставшиеся компоненты и экраны TUI-установщика.
-
Реализовать интерфейс командной строки (CLI) для улучшения доступности.
-
Разработать веб-интерфейс для возможности установки через веб-браузер.
Parthenope начинался как личный проект, но продолжает расти благодаря идеям, отзывам и запросам функций от сообщества, которые всегда приветствуются.
Нативное получение данных S.M.A.R.T. во FreeBSD
Ссылки:
S.M.A.R.T. на GitHub URL: https://github.com/ctuffli/smart
Контактное лицо: Chuck Tuffli <[email protected]>
Во FreeBSD в базовую систему импортирована нативная утилита Self-Monitoring, Analysis, and Reporting Technology (S.M.A.R.T.) — smart(8), обеспечивающая лёгкие встроенные возможности мониторинга состояния дисков без необходимости установки сторонних пакетов. Она была вдохновлена фреймворком diskctl(8), предложенным на AsiaBSDCon 2016, для создания свободно лицензируемой утилиты S.M.A.R.T., устраняющей проблемы с лицензированием и пробелы в функциональности существующих инструментов.
Утилита предоставляет унифицированный интерфейс для получения данных S.M.A.R.T. через несколько протоколов хранения, включая ATA, NVMe и SCSI. Она ориентирована на лёгкость интеграции с инструментами мониторинга, поддерживая несколько форматов вывода (поля с разделителями табуляции, JSON, XML) через libxo(3) и позволяя пользователям запрашивать конкретные атрибуты состояния.
Пользовательские программы
Изменения, затрагивающие базовую систему и программы в ней.
Завершение работы над API дескрипторов процессов 2
Контактное лицо: Konstantin Belousov <[email protected]>
Ссылки:
sys: добавление pdopenpid(2) URL: https://reviews.freebsd.org/D57124
link pddupfd(2) https://reviews.freebsd.org/D57163
После добавления системных вызовов pdwait(2) и pdrfork(2) я обратил внимание на другие недостающие возможности, которые запрашивают прикладные программисты. Самым крупным запросом, по-видимому, является возможность получения дескриптора процесса для существующего процесса.
В настоящее время только один файловый дескриптор может ссылаться на внутреннюю структуру struct procdesc в ядре, что отчасти объясняет, почему интерфейс для открытия процесса по pid ещё не реализован. В ходе работы была добавлена возможность для procdescs иметь более одного файла, указывающего на них. Атрибуты, управляющие поведением procdesc, например, daemon (закрытие файла не завершает процесс), были перенесены из procdesc в файл.
Это изменение позволило расширить внутренние интерфейсы procdesc для реализации системного вызова man:pdopenid(2).
Возможность, реализованная, например, в дескрипторах pidfd в Linux, — это системный вызов pidfd_getfd(), который дублирует указанный файловый дескриптор из целевого процесса в вызывающий процесс. Реализация этого для FreeBSD, названная man:pddupfd(2), относительно проста после получения вспомогательной функции fget_remote(9).
Проблема возникла, когда был разработан алгоритм проверки привилегий, необходимых для выполнения операции. Ядро проверяет результат p_candebug(), чтобы определить, разрешено ли что-либо, что напрямую обращается к программным ресурсам удалённого процесса. Но результат p_candebug() действителен только пока удерживается блокировка целевого процесса. Кроме того, p_candebug() запрещает действия, если целевой процесс изменяет выполняемую программу с помощью man:execve(2), что может изменить привилегии процесса, если образ имеет set-uid или set-gid. В целом, простая проверка с помощью p_candebug() неадекватна, потому что мы не можем удерживать блокировку процесса на протяжении всего fget_remote().
Для этого был разработан механизм, обеспечивающий взаимное исключение между выполнением exec в целевом процессе и вызывающим процессом, названный execblock. Также были добавлены вспомогательные функции для получения ссылки на текущее vmspace процесса, чтобы избежать использования execblock, когда для действия требуется только согласованное адресное пространство цели, например, чтение строк процесса или копирование памяти процесса. Существующие места в системе, подверженные этой гонке, были идентифицированы, и использование execblock или интерфейсов ссылок на vmspace было применено по мере необходимости.
Затем man:pddupfd(2) был реализован с помощью fget_remote() и execblock.
Спонсор: The FreeBSD Foundation
Планировщик
Ссылки:
Страница вики DevSummit URL: https://wiki.freebsd.org/DevSummit/202606
Слайды URL: https://wiki.freebsd.org/DevSummit/202606?action=AttachFile&do=view&target=Scheduler.pdf
Контактное лицо: Olivier Certner <[email protected]>
В области планировщиков продолжается работа по нескольким направлениям.
Мы работаем над решениями давних недостатков планировщика ULE, таких как несправедливость для неинтерактивных потоков в определённых конкретных обстоятельствах и очень слабое влияние значений nice. Похоже, что полностью решить первую проблему в рамках текущей архитектуры ULE сложно, поэтому параллельно мы разрабатываем новый дизайн со следующими дополнительными целями:
-
Более стабильное и предсказуемое поведение.
-
Раздельно управляемые задержка и выделяемое процессорное время.
-
Обеспечение новых возможностей, таких как планирование на гибридных процессорах, энергоэффективное планирование, иерархическое планирование и т.д., при сохранении справедливости.
Мы также детально проанализировали планировщики 4BSD и ULE, что привело к некоторым исправлениям ошибок, таким как:
-
Слияние приоритетов потоков, ограниченных по процессорному времени и имеющих разные значения nice (4BSD).
-
Слишком медленное снижение приоритета при потреблении процессорного времени из-за устаревшего масштабирования для SMP (4BSD).
-
Исправление ошибки на единицу в определении параметра
preempt_thresh(ULE). -
Исправление выбора потока с наименьшим приоритетом на ранних этапах в некоторых пограничных случаях (ULE).
-
Прекращение линейного потребления памяти в зависимости от
MAXCPUдля локальных очередей выполнения (4BSD; выполнено Minsoo Choo).
По этим вопросам была проведена презентация на встрече разработчиков (Developer Summit) на BSDCan 2026 (см. ссылку в начале).
На фронте гибридного планирования Koine Yuusuke создал ряд запросов на рецензирование с кодом для поддержки Intel Hardware Feedback Interface (HFI) и Thread Director (ITD), а Minsoo Choo предложил общую инфраструктуру для ёмкостей и оценок (capacities and scores). Мы рассмотрим эти материалы и будем сопровождать их включение.
Спонсор: The FreeBSD Foundation
Ядро
Обновления подсистем/функций ядра, поддержки драйверов, файловых систем и другое.
Улучшения приостановки/возобновления
Ссылки:
Блог URL: https://obiw.ac/s0ix/
Доклад на BSDCan о s2idle/S0ix URL: https://youtu.be/RCjPc4X2Edc
Рабочая ветка URL: https://github.com/obiwac/freebsd-s0ix/pull/15
Контактное лицо: obiwac <[email protected]>
Приостановка с сохранением состояния (suspend-to-idle) и поддержка режима сна S0ix находятся в процессе добавления во FreeBSD.
Это позволит современным ноутбукам Intel и AMD, некоторые из которых не поддерживают режим сна ACPI S3, переходить в состояния пониженного энергопотребления для увеличения времени работы от батареи.
В основном статус такой же, как в предыдущем квартале — работа всё ещё продолжается по сужению проблем с возобновлением NVMe и исправлению проблем с состояниями D-state.
Общий интерфейс управления питанием был закоммичен, а zzz(8) был переписан для его использования.
Теперь ожидается, что вы будете использовать sysctl kern.power.supported_stype для получения списка поддерживаемых общих типов сна и устанавливать sysctl kern.power.suspend для указания типа сна, который должен использовать zzz(8).
В драйвер acpi_spmc было внесено множество мелких исправлений и улучшений.
Общая поддержка USB4 NHI также была закоммичена. Единственное, что осталось закоммитить для поддержки USB4, необходимой для входа в S0i3, — это сама процедура приостановки. Справочная страница thunderbolt(4) была обновлена, чтобы более чётко указать, что она предназначена только для поддержки входа в S0i3.
Была написана справочная страница для amdsmu(4), чтобы лучше объяснить, как диагностировать вход в S0i3.
Спонсор: The FreeBSD Foundation
Гибернация (также известная как Suspend-to-disk)
Ссылки:
Прототип сохранения образа URL: https://github.com/OlCe2/freebsd-src/tree/oc-hibernate
Загрузчик EFI URL: https://github.com/OlCe2/freebsd-src/tree/for_kib-hiber
Контактное лицо: Olivier Certner <[email protected]>
Контактное лицо: Konstantin Belousov <[email protected]>
Продолжается работа по обеспечению поддержки гибернации (приостановки с сохранением состояния на диск) во FreeBSD без помощи BIOS/прошивки для сохранения текущего состояния машины для машин amd64, загружаемых через UEFI.
См. также предыдущий отчёт.
После почти двухмесячной паузы мы исправили некоторые ошибки в прототипе сохранения образа, перебазировали его на актуальный код и пересмотрели интерфейс между ядром и загрузчиком возобновления EFI, что потребовало изменений с обеих сторон. Это привело к ряду изменений в общем коде приостановки/возобновления ACPI и попутным исправлениям. В настоящее время ведётся работа над загрузчиком EFI (этап 1). Был разработан набросок части ядра для возобновления (этап 2).
Состоялось ещё несколько обсуждений о том, как сохранять образ системы, сохраняя его согласованность, поскольку сама операция дампа изменяет память ядра. Цель состоит в том, чтобы сузить круг компонентов, которые могут мешать дампу, и определить, как предотвратить это вмешательство. В частности, похоже, что низкоуровневый код DMA и IOMMU может выполнять выделение памяти при определённых обстоятельствах, и пока неясно, может ли это произойти во время дампа. После того как это будет определено, мы постараемся устранить эти обстоятельства, если это возможно, в противном случае будем работать над механизмом, подобным снимкам состояния (snapshot). Помимо этого аспекта, механизм живого снимка состояния может быть полезен, поскольку он позволяет использовать любые средства ядра без ограничений для выполнения дампа и, в частности, устраняет необходимость в отдельной процедуре дампа для каждого драйвера диска.
Мы представили текущее состояние этой работы, связанные с ней проблемы и возможную реализацию механизма, подобного снимкам состояния, на BSDCan в июне и сделаем это снова на EuroBSDCon в сентябре.
Спонсор: The FreeBSD Foundation
Совместное управление производительностью процессора (CPPC)
Контактное лицо: Olivier Certner <[email protected]>
Контактное лицо: ShengYi Hung <[email protected]>
Совместное управление производительностью процессора (CPPC) — это стандарт, введённый ACPI, позволяющий операционной системе управлять уровнями производительности и энергоэффективности процессоров благодаря абстрактной шкале производительности, в общем случае не связанной с уровнями частоты и более детализированной, чем они.
Работа возобновлена после очередного начала в ходе Хаккатона в Галифаксе в конце июня.
В разработке находятся:
-
Новые параметры минимальной, максимальной и желаемой производительности для драйвера Intel (hwpstate_intel(4)).
-
Обучение powerd(8) работе с этими параметрами и предоставление базовых политик для них.
-
Параметр для установки EPP (Предпочтение эффективности/производительности) для всех процессоров одновременно и, вероятно, аналогичные параметры для минимального, максимального и желаемого значений производительности.
-
Условное включение функциональности CPPC драйвера AMD (hwpstate_amd(4)) при наличии таблицы ACPI
_CPC. Параметр позволит пользователям обходить эту проверку, а также, возможно, проверку на наличие функциональности CPPC, сообщаемой через CPUID. -
Глобальный параметр профиля с предопределёнными значениями (например, «Сбалансированный», «Производительность» и т.д.), который устанавливает все остальные более детальные параметры. Явная установка детального параметра переключит профиль на «Пользовательский».
В конце июня было закоммичено несколько предварительных чисток и исправлений.
Спонсор: The FreeBSD Foundation
Улучшения аудиостека
Контактное лицо: Christos Margiolis <[email protected]>
Я работаю над аудиостеком с 2024Q1. Ниже приведён список предыдущих отчётов о состоянии:
2024Q1 URL: https://xiaojio.eu.org/status/report-2024-01-2024-03/#_audio_stack_improvements
2024Q2 URL: https://xiaojio.eu.org/status/report-2024-04-2024-06/#_audio_stack_improvements
2024Q3 URL: https://xiaojio.eu.org/status/report-2024-07-2024-09/#_audio_stack_improvements
2024Q4 URL: https://xiaojio.eu.org/status/report-2024-10-2024-12/#_audio_stack_improvements
2025Q1 URL: https://xiaojio.eu.org/status/report-2025-01-2025-03/#_audio_stack_improvements
2025Q2 URL: https://xiaojio.eu.org/status/report-2025-04-2025-06/#_audio_stack_improvements
2025Q3 URL: https://xiaojio.eu.org/status/report-2025-07-2025-09/#_audio_stack_improvements
2025Q4 URL: https://xiaojio.eu.org/status/report-2025-10-2025-12/#_audio_stack_improvements
2026Q1 URL: https://xiaojio.eu.org/status/report-2026-01-2026-03/#_audio_stack_improvements
Важные работы со времени последнего отчёта:
-
Очистка, исправления и улучшения для sound(4), драйверов устройств и virtual_oss(8).
-
Исправление безопасности в virtual_oss(8) (коммит).
-
Введение группы audio (GID 43) и её использование во всех узлах звуковых устройств (коммит).
-
Поддержка USB-аудиоинтерфейса Roland UA-33.
-
Опция службы virtual_oss(8) в установщике.
-
Улучшения kqueue(2) для sound(4), благодаря Goran Mekić <[email protected]>.
-
Улучшенная горячая замена (коммит).
Вы также можете следить за процессом разработки в репозитории статус-отчётов FreeBSD Foundation, где я публикую еженедельные отчёты.
Спонсор: The FreeBSD Foundation
Обновление LinuxKPI 802.11 и нативного беспроводного стека
Ссылки:
Поддержка беспроводных карт MediaTek URL: https://github.com/FreeBSDFoundation/proj-laptop/issues/66
Поддержка беспроводных карт Realtek URL: https://github.com/FreeBSDFoundation/proj-laptop/issues/99
Wi-Fi на основе LinuxKPI и приостановка/возобновление URL: https://github.com/FreeBSDFoundation/proj-laptop/issues/58
Сообщения о проблемах с беспроводной связью URL: https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=277512&hide_resolved=1
Контактное лицо: Bjoern A. Zeeb <[email protected]>
Контактное лицо: Список рассылки беспроводной связи FreeBSD <[email protected]>
Этот отчёт посвящён усилиям по использованию свободно лицензируемых беспроводных драйверов Linux, в основном без изменений, во FreeBSD, а также подготовке нативного стека net80211 для поддержки новых стандартов.
15.1-RELEASE
Из-за жизненных обстоятельств некоторые изменения, которые я надеялся включить в 15.1-RELEASE, не попали в релиз (см. ниже). В итоге я только обновил справочные страницы для различных поставляемых драйверов. Мы также обновили порты прошивок, поскольку изменение в src.git main препятствовало их сборке. Вместе с этим fwget(8) был также обновлён для поддержки большего количества PCI Id. Наконец, я помог убедиться, что уже отлично подготовленные примечания к выпуску содержат дополнительные примечания об известных проблемах.
Обновления драйверов
Все беспроводные драйверы на основе LinuxKPI были обновлены до Linux v7.0 в main и stable/15. Изначально это не планировалось, но оказалось, что изменений немного, поэтому это можно было сделать за один рабочий день. Обновление включает:
-
поставляемые драйверы Intel iwlwifi(4) mvm/mld, Realtek rtw88(4) и rtw89(4),
-
драйвер Mediatek mt76, который находится в разработке,
-
три драйвера Qualcomm Atheros: ath10k, ath11k и ath12k, которые ещё предстоит сделать, а также
-
Broadcom brcmfmac, который компилируется и загружает прошивку, но ему не хватает прослойки совместимости cfg80211 и некоторой работы над netdev.
Приостановка и возобновление 802.11 на основе LinuxKPI
Благодаря тому, что drm-kmod 6.12 позволил одному из моих ноутбуков приостанавливаться и возобновляться, я наконец смог отладить последние части приостановки и возобновления LinuxKPI 802.11, и я рад сообщить, что автоматическая приостановка и возобновление для iwlwifi(4) доступны в main и stable/15. На данный момент отзывы исключительно положительные. К сожалению, я не успел к выходу 15.1-RELEASE, так что попробуйте stable или следите за обновлениями в декабре.
Настройки LinuxKPI 802.11
В рамках подготовительных работ для Realtek и Mediatek были улучшены различные детали реализации LinuxKPI 802.11:
-
Переработка chandef / chanctx: это определения канала, на котором мы работаем. Переработана эмуляция chandef и способ обновления контекстов; подготовка к поддержке нескольких chanctx и т.д.
-
Аппаратное шифрование TX: mt7921 отлично работал с программным шифрованием, но после включения аппаратного ускорения шифрования мы могли только принимать некоторые пакеты, но больше не могли отправлять корректные кадры. Оказалось, что в зависимости от типа ключа драйвер использует разные пути для ключей, и мы устанавливали оба ключа одинаково, по сути перезаписывая первый вторым. Исправлен аргумент, передаваемый при вызове установки ключа, чтобы избежать этой проблемы. Это также может помочь rtw8x, где мы видели периодические проблемы, связанные с MC-пакетами, но проверка всё ещё ожидается.
-
Скорости (rates): начато заполнение и обновление большинства полей скоростей в LinuxKPI 802.11 (кроме одного, который нужен только для mt7615). Часть этой работы была выполнена для rtw8x в конце прошлого года, а большая часть дополнена для Mediatek.
-
Исправлена проблема порядка совместимости: оказалось, что порядок некоторых событий, который мы реализовали, не полностью соответствовал ожиданиям некоторых драйверов. Хотя мы настраивали и синхронизировали различные части, связанные со скоростями, от net80211 до LinuxKPI 802.11 и до драйвера, одно обновление приходило слишком поздно, оставляя mt7921 с базовыми скоростями. Простое перемещение кода для вызова в другом порядке решило проблему и позволило получить пропускную способность 11n и 11ac.
Изменения в LinuxKPI:
В дополнение к частям 802.11 в LinuxKPI, есть также общая инфраструктура LinuxKPI, которая требует корректировок.
-
PAGE_IS_LKPI_PAGE: это проект по преобразованию раннего сокращения, согласно которому struct page из Linux сопоставляется 1:1 с нативной vm_page, в полноценную struct page из Linux с поддержкой vm_page. Это в основном необходимо для некоторых драйверов Mediatek mt76, но также drm-kmod наконец сможет отказаться от некоторых специфических для FreeBSD хаков после того, как это будет включено.
-
Функции отсоединения (очистки) PCI в LinuxKPI: драйвер Mediatek вызывал панику ядра при выгрузке или завершении работы. Оказалось, что различные процедуры очистки PCI в LinuxKPI были не совсем корректны, на что уже указывал комментарий в одной из частей. Мы исправили это, а также очистили часть файла. На момент написания отчёта рецензирование всё ещё продолжается, но мы надеемся, что по крайней мере основные части будут закоммичены в ближайшее время.
-
Код IDR в LinuxKPI используется некоторыми драйверами Mediatek mt76, но также используется в drm-kmod и ряде полунативных драйверов. К сожалению, этот фреймворк имеет известные проблемы (как показывает история) и больше не соответствует современным ожиданиям. Переписывание этого кода несколько сложно из-за большого влияния, но мы надеемся завершить его в начале 26Q3.
-
Улучшен и дополнен код lindebugfs(4) для возможности использования debugfs для отладки mt7921.
Поддержка Realtek rtw8x
После обновлений до Linux v7.0 проблемы с некоторыми чипсетами, не способными установить соединение, усилились. Как rtw88(4), так и rtw89(4) теперь демонстрируют различные проблемы. Была обнаружена дополнительная проблема: драйвер rtw88(4) для по крайней мере одного чипсета уходит в ожидание на 6 секунд, по сути приводя к тайм-ауту аутентификации. Пока неясно, при каких обстоятельствах этого не происходит, поскольку в Linux это, очевидно, не является проблемой. К сожалению, не удалось отладить это к моменту выхода 15.1-RELEASE. Мы надеемся заняться этим в начале 26Q3, чтобы оценить, можно ли выпустить исправление (EN) до того, как 15.0 станет EOL, и исправить регрессии.
Поддержка Mediatek mt76
Продолжается работа по поддержке нескольких драйверов Mediatek mt76, в первую очередь mt7921 и mt7925. После нескольких улучшений LinuxKPI и LinuxKPI 802.11 можно сказать, что mt7921 передаёт пакеты с приемлемой пропускной способностью для первого этапа. mt7925 делает то же самое, но по крайней мере незавершённая работа над IDR в LinuxKPI приводит к нестабильности. mt7915 также требует IDR, но, кроме того, похоже, не поддерживает аппаратное сканирование, что означает, что нам нужно исправить программное сканирование как следует, что также поможет rtw8x, у которых есть странный запасной вариант программного сканирования в случае, если аппаратное сканирование недоступно. Другие чипсеты будут протестированы после того, как эти изменения будут включены и полностью активированы в main.
В дополнение к работам над LinuxKPI мы отладили одну панику, вызванную драйвером. Оказалось, что драйверы перепланируют некоторые работы во время отсоединения (завершения работы), но затем освобождают нижележащую память. Это оставляло запланированный вызов, и когда мы пытались обойти список вызовов, это вызывало панику.
Поддержка USB в LinuxKPI
В первом квартале мы сообщали о блокирующей проблеме для этого. Я рад сообщить, что половина проблемы была решена: опция компилятора, которую я изначально хотел добавить, теперь полностью удалена из дерева исходных кодов в main и stable/15. В LLVM теперь есть более новая опция, которая является лишь подмножеством того, что разрешала проблемная оригинальная опция, что будет хорошо для перехода через год или два, когда более новые версии LLVM и GCC будут поставляться с ней. Теперь остаётся найти минималистичное решение для повторного введения этой функциональности, а не разносить её по всему ядру или множеству отдельных файлов. Есть надежда, что это будет решено в течение 26Q3.
Обновления нативного net80211 (технический долг)
-
Некоторая работа в прошлом году выявила проблемы в том, как мы представляем RSSI пользовательскому пространству. Из-за возможного двойного переполнения значения могут быть некорректными. Части этой проблемы, относящиеся к драйверу и net80211, были исправлены. API пользовательского пространства пока не исправлен, чтобы избежать поломок (включая основные веб-браузеры).
-
Переговоры возобновились в последнюю неделю июня, чтобы исправить порты, использующие lib80211, что поможет нам продвигаться в решении различных проблем без постоянной поломки пользовательского пространства.
Заключительное замечание
В последнее время стало тихо с сообщениями о проблемах, несмотря на то, что всё больше людей снова используют беспроводную связь во FreeBSD. Я не уверен, хороший это знак или нет.
Мы ценим все отзывы и сообщения о проблемах, которые получаем, и если они поступают в bugzilla, мы также стараемся классифицировать их по конкретным группам (см. ссылку). Некоторые из них могут казаться потерянными, но мы в целом стараемся не допускать этого. Иногда большие работы планируются специально для области вашей проблемы, и поэтому немедленной помощи может не быть, иногда другие вещи могут быть в очереди раньше. Если проблемы должным образом документированы, будет легче вернуться к ним позже. Если у вас есть какие-либо проблемы с беспроводной связью (на основе LinuxKPI), пожалуйста, попробуйте использовать официальные каналы: проверьте открытые PR, отправьте сообщение в список рассылки беспроводной связи, при необходимости напишите мне личное письмо (например, если у вас есть дамп ядра с возможной личной информацией) или откройте новый PR, если проблема ещё не известна (или кажется потерянной, тогда она будет доступна для публичного отслеживания).
Спонсор: The FreeBSD Foundation
Драйверы DRM
Контактное лицо: Jean-Sébastien Pédron <[email protected]>
Драйверы DRM — это драйверы ядра для встроенных и дискретных графических процессоров. Они поддерживаются в ядре Linux, и мы портируем их во FreeBSD. На момент данного отчёта мы берём только драйверы DRM для AMD и Intel (драйверы NVIDIA для FreeBSD являются проприетарными и предоставляются самой NVIDIA).
Мы портируем их по одной версии Linux за раз. Это позволяет нам выпускать обновления чаще и упрощает портирование и отладку, поскольку дельта изменений меньше по сравнению с большим скачком через несколько версий.
В этом квартале мы завершили портирование драйверов DRM из Linux 6.12 LTS к моменту выхода FreeBSD 15.1-RELEASE. Поскольку это версия с долгосрочной поддержкой (LTS), мы будем отслеживать изменения в патчах Linux 6.12.x. В настоящее время мы находимся на версии 6.12.81, и ведётся работа по дальнейшему обновлению до последней версии патчей. Эти драйверы доступны в дереве портов и в виде пакетов.
В рамках работы над драйверами версии 6.12 было исправлено несколько ошибок или регрессий для уже поддерживаемых графических процессоров. Некоторые новые графические процессоры также начали работать.
У нас всё ещё остаётся несколько проблем с нестабильностью, которые необходимо исправить как в драйверах i915, так и в amdgpu.
Мы также продолжили портирование драйверов DRM из следующих версий Linux: * Обновление до Linux 6.13 находится на стадии рецензирования и тестирования. * Обновление до Linux 6.14 также готово и будет рецензироваться после обновления до 6.13.
Эта работа щедро спонсируется Фондом FreeBSD в рамках Проекта «Ноутбуки и настольные компьютеры».
Спонсор: The FreeBSD Foundation
Туннель GENEVE
Контактное лицо: Pouria Mousavizadeh Tehrani <[email protected]>
С момента последнего отчёта я закоммитил драйвер geneve(4), и теперь он доступен в CURRENT.
Серия улучшений IPv6
Контактное лицо: Pouria Mousavizadeh Tehrani <[email protected]>
В течение последних 6 месяцев я работал над обновлением нашего стека IPv6 и реализацией ожидающих RFC в нашем стеке, и теперь они доступны в CURRENT.
На данный момент я добавил поддержку:
-
RFC 9131 и RFC 9898, раздел 3.9: Поддержка Gratuitous Neighbor Discovery (GRAND).
-
RFC 8781 (раздел 5): Возможность использования нескольких опций PREF64.
-
RFC 4861 (разделы 7.2.6 – 7.2.8): Поддержка отложенных сообщений Neighbor Advertisement для адресов anycast и proxy.
-
RFC 4191: Поддержка опции Route Information в Router Advertisement.
-
Удалена поддержка DRAFT_IETF_6MAN_IPV6ONLY_FLAG с заменой на RFC 8925.
Текущие работы: * RFC 8925: IPv6-Only Preferred Option для DHCPv4 (D56637) * RFC 4429: Добавление поддержки Optimistic DAD. (D55229)
Я хочу выразить особую благодарность Глебу Смирнову за его бесценное руководство и помощь в этих работах.
Поддержка метрики маршрутизации
Контактное лицо: Pouria Mousavizadeh Tehrani <[email protected]>
Я работаю над реализацией метрики с 2026Q1. Метрики маршрутизации — это значения конфигурации, используемые маршрутизатором для принятия решений о маршрутизации. Метрики маршрутизации помогают стеку маршрутизации выбирать наилучший маршрут среди нескольких возможных маршрутов к пункту назначения. Трафик будет направлен в сторону шлюза с наименьшей метрикой. Поддержка метрики в нашем стеке маршрутизации реализована и доступна в CURRENT. Поддержка метрики требует многочисленных обновлений как в ядре, так и в пользовательском пространстве.
Вот некоторые основные добавленные возможности:
-
Поддержка метрики в rtsock через rmx_metric.
-
Поддержка RTA_PRIORITY для метрики в netlink.
-
Удалено резервирование 8 старших битов для метрики.
-
route(8) теперь отображает значение метрики.
-
netstat(1) теперь отображает значение метрики каждого маршрута при использовании -w.
Вы также можете использовать метрику с помощью net/bird для ваших протоколов маршрутизации.
Нативная поддержка MPLS для FreeBSD
Контактное лицо: Subhash Murmu <[email protected]>
Этот проект добавляет нативную поддержку Multiprotocol Label Switching (MPLS) в ядро FreeBSD в рамках Google Summer of Code 2026 под руководством наставников Bruce Simpson и Alexander Chernikov. MPLS широко используется для коммутации с метками в производственных сетях, но во FreeBSD отсутствует плоскость данных MPLS в базовой системе, поэтому демоны маршрутизации с поддержкой MPLS не имеют пути пересылки в ядре для программирования. Работа ведётся снизу вверх: от инкапсуляции на канальном уровне до плоскости управления, и интегрируется с существующим сетевым стеком FreeBSD, а не существует рядом с ним.
Этапы с 1 по 3 завершены и представлены в виде пятикоммитной истории с наслоением на ветке mpls форка на Codeberg.
Этап 1 добавляет инкапсуляцию канального уровня и диспетчеризацию netisr(9) для EtherType 0x8847.
Этап 2 портирует ldpd(8) из OpenBSD во FreeBSD, где он теперь собирается и работает.
Этап 3 добавляет механизм пересылки и информационную базу меток (Label Information Base) для каждого VNET, при этом сквозная передача LSP была проверена с помощью tcpdump между VNET-клетками через epair(4).
Серия изменений ещё не отправлена в Phabricator. Продолжается работа над программированием маршрутов ядра для ldpd.
Спонсор: Google Summer of Code 2026
Драйверы HID для Bluetooth
Ссылки:
Страница проекта в вики FreeBSD URL: https://wiki.freebsd.org/SummerOfCode2026Projects/BluetoothSupportForHIDDevices
Репозиторий проекта на Github URL: https://github.com/majintosh/freebsd-bthid
Контактное лицо: Majed Alkhaleefah <[email protected]>
Я работаю над двумя драйверами для обеспечения поддержки HID-драйверов для устройств Bluetooth в рамках GSoC 2026.
Основная цель этого проекта — регистрация подключаемых Bluetooth-устройств HID как устройств Newbus с помощью двух новых драйверов: bthidbus и bthid.
bthidbus выступает в роли родительской шины, управляющей созданием и подключением дочерних устройств bthid.
bthid служит транспортным уровнем, создавая устройство hidbus и перенаправляя на него все полученные пакеты после удаления их заголовков.
Краткосрочная цель здесь — обеспечить поддержку беспроводных HID-подключений.
Долгосрочная цель — начать закладывать основу, которая позволит другим писать драйверы для устройств, подключаемых только через Bluetooth.
Что было сделано:
-
bthidbusможет успешно открывать соединение с Bluetooth-устройством через сокеты. -
bthidможет принимать сокеты, переданные отbthidbusчерез ivars, и управлять ими. -
bthidможет отправлять дескриптор отчёта вhidbus, который успешно создаёт соответствующее HID-устройство и драйвер. (например, геймпад, подключённый по Bluetooth, создаёт устройствоhgameи узелevdev.) -
Ввод с Bluetooth-устройств успешно принимается
hidbusиevdev.
Текущие проблемы и планируемые изменения:
-
Фактические дескрипторы отчётов, Bluetooth-адреса и т.д. должны быть жёстко закодированы в
bthidbus. Изначально я рассматривал возможность добавления логики запросов/прослушивания вbthidbus, чтобы он действовал как псевдо-сервер, но я опасался, что это приведёт к раздуванию кода и расширению области ответственности. Вместо этого я планирую положиться на существующую логику запросов демонаbthiddи передавать новую информацию о подключении вbthidbusчерезioctl. Это избавитbthidbusот текущей роли инициатора соединения и сделает его ответственным только за управление уже открытыми соединениями. -
Наблюдается значительная задержка ввода при мониторинге через
evtest. У меня есть две рабочие гипотезы. Первая заключается в том, что проблема кроется вbthidи в том, как он управляет прерываниями через очереди задач (taskqueues). Вторая — что проблема в сетевом стеке, поскольку Bluetooth-пакеты передаются через несколько различных узлов Netgraph перед тем, как быть полученнымиbthid. Также вполне возможно, что это проблемаevtest; мне ещё предстоит это выяснить.
На данный момент все тесты проводились с контроллером Nintendo Switch Pro.
NTSYNC(9)
Контактное лицо: Konstantin Belousov <[email protected]>
В последнее время появился поток статей, рекламирующих драйвер Linux ntsync, который реализует вспомогательный механизм для Wine для ускорения примитивов синхронизации Windows NT. Субстрат для реализации семафоров, мьютексов и событий из мира Win32 предоставляется им. Драйвер представляет каждый объект NT как файловый дескриптор, для которого определён набор ioctl, напрямую отображаемых на операции Win32.
Проект реализовал драйвер, предоставляющий совместимый интерфейс ntsync, как указано в документе Linux 7.0-rc3 Documentation/userspace-api/ntsync.rst. Написаны как нативный интерфейс FreeBSD, так и слои совместимости ABI Linux.
Для тестирования драйвера был портирован минимальный набор тестов из набора тестов ядра Linux. Драйвер FreeBSD следует деталям интерфейса, закодированным в тестах, когда было обнаружено расхождение между документацией Linux и тестами.
Как драйвер, так и его справочная страница man:ntsync(4) были написаны с нуля без обращения к исходному коду Linux.
Спонсор: The FreeBSD Foundation
Архитектуры
Обновление специфичных платформенных функций и добавление поддержки новых аппаратных платформ.
Порт Raspberry Pi Imager для FreeBSD
Ссылки:
основной репозиторий rpi-imager URL: https://github.com/raspberrypi/rpi-imager
запрос на включение порта для FreeBSD URL: https://github.com/raspberrypi/rpi-imager/pull/1655
PR 296480 - открытое рецензирование порта FreeBSD URL: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296480
Контакт: Jim Chen <[email protected]> Контакт: Nimish Jain <[email protected]>
Raspberry Pi Imager — это удобный графический инструмент, разработанный Raspberry Pi Foundation, который позволяет пользователям легко настраивать и записывать образы операционных систем на карты памяти для одноплатных компьютеров Raspberry Pi Zero и Raspberry Pi серий 1–5.
Наша цель при переносе этого приложения во FreeBSD — продолжать снижать порог входа. Мы хотим, чтобы пользователи, не знакомые с командной строкой, могли легко записывать операционные системы на свои Raspberry Pi.
В настоящее время основной проект поддерживает только Linux, MacOS и Windows. Мы создали порт FreeBSD, который использует собственные API ввода-вывода, дисковые и сетевые API и компонуется с предварительно упакованными библиотеками FreeBSD.
Основным препятствием для этого проекта в настоящее время является неопределённость в основном репозитории. Сопровождающие запросили поддержку со стороны разработчиков FreeBSD для долгосрочного сопровождения кода, специфичного для FreeBSD. Если вы являетесь коммитером или участником, заинтересованным в инструментарии для Raspberry Pi во FreeBSD, пожалуйста, сообщите нам об этом или присоединитесь к обсуждению в запросе на включение на GitHub!
Если эта работа будет принята в основной репозиторий, Makefile для репозитория портов FreeBSD готов к рецензированию как PR 296480 (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296480).
Если вы заинтересованы, пожалуйста, попробуйте локальную сборку, клонировав дерево портов и применив патч из указанного выше PR, и сообщите нам, если у вас возникнут какие-либо проблемы!
Спонсор: The FreeBSD Foundation
Улучшение экосистемы разработки для Arduino и ESP32 во FreeBSD
Контактное лицо: Deepan Sai <[email protected]>
Обзор проекта
Я работаю над добавлением пакета Arduino CLI в Коллекцию Портов FreeBSD. Arduino CLI — это инструмент командной строки, который помогает пользователям работать с платами Arduino. Добавив его во FreeBSD, я хочу упростить работу разработчиков.
Важность работы
Многие люди используют Arduino CLI для встраиваемых систем и автоматизации. Наличие его во FreeBSD в виде порта упрощает установку и обновление программного обеспечения. Это помогает поддерживать FreeBSD на одном уровне с инструментами, которые используют аппаратные и встраиваемые разработчики.
Прогресс за этот период
На этот раз я работал над подготовкой нового порта к проверке. Я написал Makefile и убедился, что пакет собирается корректно. Я обнаружил проблему, при которой один тест падал, потому что в нём отсутствовали настройки для FreeBSD. Я исправил это. Теперь тест работает.
Я выполнил все проверки для нового порта, такие как проверка правильности расположения файлов и корректного выполнения тестов. Я также исправил некоторые проблемы, которые обнаружили люди при проверке моей работы. Теперь порт гораздо ближе к тому, чтобы быть добавленным в Коллекцию Портов FreeBSD.
Спонсор: Google Summer of Code
Разработка драйверов FreeBSD для BananaPi-R64/R2-PRO
Ссылки:
Wiki URL: https://wiki.freebsd.org/arm/Bananapi
Контактное лицо: Martin Filla <[email protected]>
Приветствуются участники. Если вы заинтересованы в помощи с этим проектом, тестировании текущей реализации или внесении кода, пожалуйста, свяжитесь со мной.
Введение в R64
Banana Pi R64 — это плата разработки на базе MediaTek MT7622 (ARM Cortex-A53, двухъядерный ~1.35 ГГц), оснащённая 4× Gigabit LAN, 1× Gigabit WAN, Wi-Fi (4×4n), Bluetooth 5.0 и множеством периферийных интерфейсов (UART, SPI, I²C, GPIO, SATA, mini-PCIe, eMMC и т.д.).
Текущее состояние поддержки FreeBSD для R64
Реализовано на данный момент:
-
Драйвер UART
-
Управление тактовой частотой (clocks)
-
Pinctrl
-
Драйвер контроллеров хранилища (eMMC/SD/MMC)
-
Драйвер Ethernet-коммутатора mt7531
-
Драйвер Ethernet mt7622
-
Драйвер XHCI
-
Драйвер Watchdog
-
Драйвер RTC
-
Драйвер RNG
-
Драйвер Pciecfg
-
Драйвер SysIRQ
-
USB3
-
T-PHY
План разработки для R64
Реализовать недостающие драйверы:
-
SATA / AHCI
-
Wi-Fi (вероятно, MediaTek MT7615)
-
Подсистемы GPIO
-
I2C
-
SPI
-
PWM
-
PCIE
Введение в R2-PRO
Banana Pi BPI-R2 Pro — это плата разработки для маршрутизаторов следующего поколения. Она работает на процессоре Rockchip RK3568. На борту 2 ГБ оперативной памяти LPDDR4 и 16 ГБ встроенной памяти eMMC, поддерживается 2 интерфейса USB 3.0, 5 гигабитных сетевых портов. Интерфейс M.2 key-E и mini PCIe, 2 интерфейса mipi DSI (один можно программно изменить на LVDS), 1 интерфейс камеры CSI, 1 выход HDMI.
Текущее состояние поддержки FreeBSD для R2-PRO
Реализовано на данный момент:
-
Драйвер UART
-
Управление тактовой частотой (clocks)
-
Pinctrl
-
GPIO
-
Драйвер контроллеров хранилища (eMMC/SD/MMC)
-
Драйвер XHCI
-
Драйвер Watchdog
-
Драйвер PCIE
План разработки для R2-PRO
Реализовать недостающие драйверы:
-
HDMI
-
MIPI
-
USB3
-
SATA
Поддержка Framework Laptop
Ссылки:
Страница Framework Laptop в вики FreeBSD URL: https://wiki.freebsd.org/Laptops/Framework_Laptop/
Руководство по установке и использованию FreeBSD на системах Framework URL: https://github.com/FrameworkComputer/freebsd-on-framework
Инструменты управления системой Framework URL: https://github.com/FrameworkComputer/framework-system
Отслеживаемая задача: Framework Laptop: Поддержка функций, ошибки и улучшения URL: https://bugs.freebsd.org/262152
Контакт: Daniel Schaefer <[email protected]>
Контакт: Li-Wen Hsu <[email protected]>
Контакт: Sheng-Yi Hong <[email protected]>
Framework Computer Inc. продолжает оказывать поддержку проекту FreeBSD во многих направлениях. Это включает предоставление инженерных образцов и аппаратного обеспечения для разработки Фонду FreeBSD, помощь в тестировании оборудования и совместную работу с разработчиками FreeBSD над улучшениями совместимости.
Фонд продолжает улучшать общую поддержку ноутбуков. Ноутбуки Framework входят в число целевых платформ проекта по поддержке и удобству использования ноутбуков.
В течение второго квартала 2026 года Daniel обновил порт sysutils/framework-system до версии 0.6.2, а затем до версии 0.6.4. Этот пакет предоставляет пользователям FreeBSD инструменты управления системой и прошивкой, специфичные для Framework.
Framework также провела небольшой хакатон в своём офисе в Тайбэе в течение квартала. Разработчики FreeBSD тестировали недавно анонсированное оборудование, включая Framework Laptop 13 Pro на базе Intel Panther Lake и адаптер 10GbE.
Li-Wen работает над поддержкой FreeBSD для адаптера 10GbE, в котором используется контроллер Realtek RTL8159.
Поддержка систем на базе Intel Panther Lake также продвинулась благодаря разработке и тестированию на оборудовании Framework, включая предварительные системы, предоставленные Framework во время хакатона в Тайбэе. Daniel добавил идентификаторы PCI для контроллеров I2C и SMBus Panther Lake, и Sheng-Yi добавил эту работу в FreeBSD. Последующее исправление удалило идентификатор для контроллера SPI Flash, который был ошибочно идентифицирован как контроллер шины SPI.
В июне Li-Wen также начал тестирование и отладку драйверов DRM на основе Linux 6.12 из порта graphics/drm-612-kmod, который был добавлен в течение квартала. Он исследовал проблемы с отображением на системах Framework и предположил, что некоторые из них могут совпадать или быть связанными с проблемой горячего подключения внешних дисплеев, отслеживаемой в проекте по поддержке и удобству использования ноутбуков. Расследование всё ещё продолжалось в конце квартала и перешло в третий квартал.
Управление питанием и производительностью продолжало улучшаться как на системах Intel, так и на AMD. Системы Framework входили в число платформ разработки и тестирования, используемых для этой работы. Некоторые системы были предоставлены Framework, в то время как разработчики FreeBSD также проводили разработку и тестирование на собственном оборудовании Framework.
Sheng-Yi отключил режим управления пакетами Intel HWP на процессорах с гибридными ядрами. Без этого изменения запрос от энергоэффективного ядра мог ограничить все ядра его уровнем производительности, что приводило к значительной потере производительности.
Другие улучшения HWP и CPPC, завершённые в течение квартала, включают:
Также продвинулась работа по поддержке приостановки и возобновления работы для Framework Laptop 12. Devin Teske разработал и протестировал предлагаемое исправление ACPI для проблемы с пробуждением, которая могла привести к немедленному повторному приостановлению системы после возобновления работы. Daniel исследовал поведение ACPI и прошивки встроенного контроллера ноутбука, а Warner Losh и Olivier Certner предоставили техническую оценку и помогли улучшить реализацию.
Спонсор: The FreeBSD Foundation за работу Li-Wen и Sheng-Yi
Спонсор: Framework Computer Inc. за работу Daniel, а также за оборудование и помещения, предоставленные проекту
Поддержка ROCm во FreeBSD
Ссылки:
Форк drm-kmod с частичной поддержкой amdkfd URL: https://github.com/Yohello1/drm-kmod-rocm/tree/super-special
Форк rocm-systems с исправлениями для FreeBSD URL: github.com/Yohello1/rocm-systems
Контактное лицо: Sourojeet Adhikari <[email protected]>
ROCm — это вычислительная платформа, используемая AMD для своих графических процессоров. На данный момент FreeBSD вообще не поддерживает ROCm ни на уровне инструментария, ни на уровне драйверов. Я работаю над изменением этой ситуации и переносом необходимых изменений в вышестоящие проекты.
Насколько мне известно, во FreeBSD есть несколько способов выполнять вычислительные задачи (такие как ИИ/МО, графика и т.д.) на графическом процессоре; эти способы, насколько мне известно, — это Vulkan и OpenGL. Как Vulkan, так и OpenGL достаточно хороши для вычислительных задач, в основном в графике, а иногда и в задачах машинного обучения. Но иногда существуют задачи, которые плохо подходят для Vulkan и OpenGL и вместо этого выполняются в ROCm/CUDA, поскольку ROCm и CUDA предоставляют разработчику гораздо больше контроля над выполнением задачи. Поэтому я пытаюсь внедрить поддержку ROCm во FreeBSD, чтобы мы могли запускать код/программы ROCm на FreeBSD. Для работы ROCm нам нужно несколько вещей. Первое — это форк LLVM от AMD, который я пропатчил, добился его работоспособности и отправил патчи в вышестоящий проект. Далее идут среды выполнения ROCm, которые были пропатчены, и в настоящее время я работаю над отправкой патчей в вышестоящий проект. Наконец, драйвер amdkfd, над патчингом которого я работаю и отправляю некоторые патчи, связанные с LinuxKPI, обратно в ядро FreeBSD.
За последнее время я отправил изменения в форк LLVM от AMD, позволяющие компилировать его во FreeBSD, чтобы вы могли собирать их инструментарий ROCm. Кроме того, я работал над внедрением серии патчей в LinuxKPI для постепенного добавления поддержки amdkfd.
Спонсор: The FreeBSD Foundation
Облачная архитектура
Обновление специфичных облачных функций и добавление поддержки новых облачных платформ.
FreeBSD на EC2
Контактное лицо: Colin Percival <[email protected]>
FreeBSD доступна на EC2-инстансах как amd64 (Intel и AMD), так и arm64 (Graviton).
Была исправлена проблема, из-за которой драйвер ena(4) терял пакеты при приёме джамбограмм (jumbogram). Исправление присутствовало в 15.1-RELEASE (июнь) и будет присутствовать в 14.5-RELEASE (сентябрь). Это исправление улучшило производительность сети для одного TCP-потока на некоторых EC2-инстансах со 110 Мбит/с до 9.5 Гбит/с, а также значительно улучшило пропускную способность для нескольких TCP-потоков.
Была выявлена проблема, из-за которой драйвер ena(4) запускал очереди задач (taskqueues) на неверных процессорах в системах NUMA. Исправление должно появиться в 14.5-RELEASE (сентябрь) и даёт двукратное увеличение пропускной способности для нескольких TCP-потоков на инстансах c8gn.48xlarge.
Спонсор: Amazon
Спонсор: https://www.patreon.com/cperciva
FreeBSD в Microsoft HyperV и Azure
Ссылки:
Статья о Microsoft Azure в вики FreeBSD URL: https://wiki.freebsd.org/MicrosoftAzure
Статья о Microsoft HyperV в вики FreeBSD URL: https://wiki.freebsd.org/HyperV
Контакт: Команда Microsoft FreeBSD Integration Services <[email protected]>
Контакт: Список рассылки freebsd-cloud
Контакт: Команда инженеров по выпуску релизов FreeBSD для Azure <[email protected]>
Контакт: Wei Hu <[email protected]>, <[email protected]>
Контакт: Li-Wen Hsu <[email protected]>
Публикация образа 15.1-RELEASE в Azure Marketplace находится в процессе. Ожидается, что он станет общедоступным в начале третьего квартала.
Li-Wen изучает технические детали, необходимые для поддержки Azure Trusted Launch.
Wei и Li-Wen совместно с другими инженерами Microsoft исследуют проблему, из-за которой mana(4) некорректно работает на Azure-виртуальных машинах на базе AMD. Устройство mana(4) присутствует на новейших виртуальных машинах Azure седьмого поколения.
Задачи в процессе выполнения:
-
Автоматизация процесса публикации образов и интеграция его в src/release/.
-
Улучшение процесса публикации в Azure Marketplace.
-
Поддержка FreeBSD в утилитах для виртуальных машин Azure.
Открытые задачи:
-
Обновление документации, связанной с FreeBSD, на Microsoft Learn.
-
Обновление пакета sysutils/azure-agent до последней версии.
-
Перенос локальных изменений агента Azure в основной репозиторий.
-
Добавление поддержки FreeBSD в Azure Pipelines.
-
https://github.com/microsoft/azure-pipelines-agent/pull/3266
-
Сборка и публикация снимков сборок (snapshot builds) в сообщество Azure.
-
Спонсор: Microsoft за сотрудников Microsoft и за ресурсы для остальных
Спонсор: The FreeBSD Foundation за всё остальное
Документация
Значительные изменения в дереве документации, страницах Справочника или новые внешние книги/документы.
Проект русскоязычной документации FreeBSD (The FreeBSD Russian Documentation Project)
Ссылки:
Официальный веб-сайт FreeBSD на русском языке URL: https://xiaojio.eu.org/ru/
FAQ URL: https://docs.freebsd.org/ru/books/faq/
Сайт проекта русской документации FreeBSD URL: https://github.com/freebsd-doc-ru/freebsd-doc/discussions
Контакт: Андрей Захватов (Andrey Zakhvatov) <[email protected]>
Контакт: Владлен Пополитов (Vladlen Popolitov) <[email protected]>
Текущая цель Проекта русскоязычной документации FreeBSD — предоставлять актуальные русские переводы наиболее важных частей документации FreeBSD (FAQ, Руководство, содержимое веб-сайта). Это необходимо для поддержки русскоязычных пользователей качественными официальными техническими материалами и для расширения распространённости операционной системы по всему миру. Мы надеемся, что эта инициатива получит поддержку в русскоязычном сообществе FreeBSD и приведёт к увеличению объёма переведённых материалов.
В течение последнего квартала:
-
100% текста в Weblate переведено.
-
Русскоязычный раздел сайта xiaojio.eu.org/ru полностью переведён — 100% его страниц теперь доступны на русском языке.
-
Для релиза FreeBSD 15.1 полный комплект документации к релизу (примечания к выпуску, errata и так далее) был своевременно переведён на русский язык одновременно с оригинальными английскими версиями.
-
Инициирован проект по переводу справочных страниц (man pages) FreeBSD, который находится на самой ранней стадии. Предварительные примеры можно найти на GitHub.
План на следующий квартал:
-
Продолжить текущий проект по переводу страниц Справочника FreeBSD.
Ознакомьтесь с официальным руководством по переводу, если вы хотите помочь.
Мы будем признательны за вашу помощь в переводе следующих материалов:
-
Веб-страницы
-
Справочные страницы (man pages)
Порты
Изменения, затрагивающие Коллекцию портов, будь то массовые изменения, затрагивающие большую часть дерева, или отдельные порты.
Dockerbox
Ссылки:
freebsd-dockerbox на Github URL: https://github.com/leafoliage/freebsd-dockerbox
dockerbox-broker на Github URL: https://github.com/leafoliage/dockerbox-broker
freebsd-dockerbox-debian на Github URL: https://github.com/leafoliage/freebsd-dockerbox-debian
Контактное лицо: Chun-Cheng Yeh <[email protected]>
Dockerbox — это виртуализированный демон Docker. Хотя демон Docker изначально недоступен во FreeBSD, Dockerbox запускает его внутри виртуальной машины Debian под управлением Bhyve, обеспечивая доступ к нему. Dockerbox поддерживает обычные функции Docker, такие как Docker Compose, публикацию портов и привязку монтирований (bind mounts). Этот проект направлен на упрощение использования Docker во FreeBSD в непроизводственных средах.
Связанные порты и репозитории
-
freebsd-dockerbox
Обеспечивает работу Docker во FreeBSD путём запускаdockerdвнутри гостевой Linux-виртуальной машины Bhyve. Эта служба управляет жизненным циклом гостевой системы Dockerbox, а также её сетевыми настройками и настройками хранилища.
v0.2.5 — портирован. -
dockerbox-broker
Дочерняя служба Dockerbox, которая обрабатывает перенаправление портов с хоста на гостевую систему Dockerbox, когда контейнер запрашивает публикацию портов.
Ещё не портирован. -
freebsd-dockerbox-debian
Кодовая база, используемая для создания дискового образа Dockerbox.
Не портирован. -
docker-cli
Инструмент командной строки Docker CLI.
v29.4.2 — портирован. -
docker-compose
Плагин Docker CLI для определения и запуска многоконтейнерных приложений.
v5.1.3 — портирован. -
docker-buildx
Плагин Docker CLI, предоставляющий расширенные возможности сборки через BuildKit.
v0.34.1 — портирован.
Пакеты sysutils/dockerbox, sysutils/docker-cli, sysutils/docker-compose и sysutils/docker-buildx теперь доступны в Коллекции Портов FreeBSD и через pkg.
Спонсор: The FreeBSD Foundation
KDE во FreeBSD
Ссылки:
Инициатива KDE/FreeBSD URL: https://freebsd.kde.org/
FreeBSD — Вики сообщества KDE URL: https://community.kde.org/FreeBSD
Контактное лицо: Список рассылки KDE во FreeBSD <[email protected]>
Проект KDE во FreeBSD упаковывает CMake, Qt и программное обеспечение из сообщества KDE для дерева портов FreeBSD. Программное обеспечение включает полноценную среду рабочего стола под названием KDE Plasma (как для X11, так и для Wayland) и сотни приложений, которые могут использоваться на любой машине FreeBSD. Команда KDE является частью desktop@, создавая программный стек, чтобы сделать FreeBSD красивой и пригодной для использования в качестве ежедневной графической рабочей станции.
Инфраструктура
CMake обновлён до версии 3.31.12.
Qt6 и PySide6 обновлены до версии 6.11.1. PyQt6 обновлён до версии 6.11.0.
Qt5 и PySide2 обновлены до набора патчей KDE версии 5.15.19. Официальная поддержка Qt5 вышестоящим проектом завершена. Это последнее обновление для Qt5.
Стек KDE
Релизы KDE Frameworks, Plasma и Gear происходят очень регулярно. Команда KDE включает эти обновления вскоре после их выхода вышестоящими проектами.
-
Порты KDE Frameworks обновлены до версии 6.28.0.
-
KDE Plasma Desktop обновлён до версии 6.6.6.
-
KDE Gear обновлён до версии 26.04.3.
Связанные порты
Было добавлено несколько новых портов KDE. Amarok, классический музыкальный плеер KDE, был восстановлен и обновлён до версии 3.3.3.
Завершение поддержки портов Qt5
Qt5 всё ещё используется примерно 350 портами. Хотя Qt5 объявлен устаревшим, пока нет определённой даты его удаления из дерева портов. Тем не менее, порт Qt5WebEngine, основанный на очень старой версии Chromium с множеством уязвимостей, запланирован к удалению непосредственно перед 2026Q4. Команда KDE призывает сопровождающих перенести свои порты на Qt6, удалить варианты (flavors) с Qt5 и удалить заброшенное программное обеспечение на Qt5.
GCC во FreeBSD
Ссылки:
Проект GCC URL: https://gcc.gnu.org/
Серия релизов GCC 13 URL: https://gcc.gnu.org/gcc-13/
Серия релизов GCC 14 URL: https://gcc.gnu.org/gcc-14/
Серия релизов GCC 15 URL: https://gcc.gnu.org/gcc-15/
Серия релизов GCC 16 URL: https://gcc.gnu.org/gcc-16/
Серия релизов GCC 17 URL: https://gcc.gnu.org/gcc-17/
Контакт: Lorenzo Salvadore <[email protected]>
Было создано два новых порта: lang/gcc16 и lang/gcc17-devel.
PR 294062, касающийся сбоев сборки на arm64, был исправлен. Более точно, во втором квартале 2026 года были исправлены lang/gcc16-devel и lang/gcc17-devel, в то время как lang/gcc16 был исправлен в начале третьего квартала 2026 года (на момент написания этого отчёта патч всё ещё должен быть перенесён в квартальную ветку портов). К сожалению, решение является локальным для дерева портов FreeBSD и не может быть передано напрямую в основной репозиторий. Обсуждение решения в основном репозитории можно найти в багзилле основного репозитория. Спасибо всем, кто помог, особенно Mark Millard.
Я лично не работал над процессом по установке GCC_DEFAULT=15 в этом квартале, но ведётся некоторая работа в связанных PR, так что этот вопрос также продвигается. Кроме того, планируются обновления минорных версий для lang/gcc13, lang/gcc14 и lang/gcc15.
Продолжая работать над портами GCC, я понимаю, что у меня становится меньше времени и энергии для их поддержки. Эти порты важны, и я предпочитаю не оставлять их без сопровождения, по крайней мере до тех пор, пока я могу заниматься ими, даже если медленно. Но если есть кто-то, кто хотел бы взять их на себя, пожалуйста, отзовитесь, и я буду рад передать сопровождение.
Улучшение OpenJDK во FreeBSD
Ссылки:
Описание проекта URL: https://freebsdfoundation.org/project/improving-openjdk-on-freebsd/
Репозиторий проекта URL: https://github.com/freebsd/openjdk
Вышестоящий репозиторий BSD-порта URL: https://github.com/openjdk/bsd-port
Контактное лицо:
Harald Eilertsen <[email protected]>
Список рассылки FreeBSD Java <[email protected]>
Цель этого проекта — улучшить поддержку OpenJDK для FreeBSD/amd64 и FreeBSD/arm64.
Java является важной средой выполнения для многих высокопроизводительных критически важных корпоративных систем. Обеспечение корректной и эффективной работы приложений на основе Java во FreeBSD важно для того, чтобы FreeBSD оставалась жизнеспособной и привлекательной платформой для предприятий, а также бизнеса и организаций всех размеров.
Этот квартал был в основном потрачен на правильную организацию процесса отправки изменений в вышестоящие проекты. Мы отправляем патчи в отдельный репозиторий в организации OpenJDK на Github и следим за тем, чтобы каждый PR был проверен по крайней мере одним рецензентом из вышестоящего проекта. Таким образом, когда мы дойдём до момента, когда захотим включить наш порт в основную ветку вышестоящего проекта, все коммиты уже должны быть проверены кем-то из проекта.
Это довольно медленный процесс, поскольку мы зависим от наличия времени у рецензентов из вышестоящего проекта. Мы также сталкиваемся с тем, что некоторые изменения, которые долго жили в нашем порту, отклоняются. Тогда нам приходится переделывать их или, если они не строго необходимы, просто отбрасывать. Я считаю, что это полезная корректировка, но иногда требует значительного объёма работы.
В этом квартале были достигнуты следующие результаты/вехи:
-
Порт OpenJDK 25 обновлён до версии 25.0.3.
-
Изменения и исправления ошибок в основной ветке вышестоящего проекта:
-
Вышестоящий BSD-порт:
-
Включены изменения, принятые для основной ветки.
-
Текущий (вне дерева) BSD-порт:
-
Слияние + удаление VFORK для BSD + перебазирование рабочего процесса GHA на OpenJDK26
-
Слияние + исправление использования макроса FREE_C_HEAP_ARRAY для BSD
-
Синхронизация реализации cpuinfo для aarch64 на *BSD с Linux
-
Перенесены изменения, принятые для вышестоящего BSD-порта в основной ветке.
-
-
Порты:
Кроме того, следующие задачи всё ещё выполняются или ожидают рецензирования:
-
Вышестоящий BSD-порт:
-
Портирование hotspot/os/bsd/os_perf_bsd.cpp для BSD (Ожидает рефакторинга, см. WIP: Разделение реализации os_perf для macOS и BSD)
-
os::get_process_uid и os::rss для BSD (Всё ещё выполняется)
-
Другие заметки:
-
Начата подготовка OpenJDK 27 порта.
-
Проект представлен на Foss North 2026.
Спонсор: The FreeBSD Foundation
Модернизация HPC-портов FreeBSD: Slurm 26.05, UCX 1.20 и MPI-параллельные утилиты для работы с файлами
Ссылки:
sysutils/slurm-wlm URL: https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/
net/ucx URL: https://cgit.freebsd.org/ports/tree/net/ucx/
sysutils/mpifileutils URL: https://cgit.freebsd.org/ports/tree/sysutils/mpifileutils/
devel/libcircle URL: https://cgit.freebsd.org/ports/tree/devel/libcircle/
devel/lwgrp URL: https://cgit.freebsd.org/ports/tree/devel/lwgrp/
devel/dtcmp URL: https://cgit.freebsd.org/ports/tree/devel/dtcmp/
benchmarks/py-reframe-hpc URL: https://cgit.freebsd.org/ports/tree/benchmarks/py-reframe-hpc/
openucx/ucx#11354: Исправления переносимости UCS/TYPE для сред без glibc/Clang (включено) URL: https://github.com/openucx/ucx/pull/11354
openucx/ucx#11549: Исправления переносимости UCS/SYS для платформ, отличных от Linux (на рассмотрении) URL: https://github.com/openucx/ucx/pull/11549
hpc/mpifileutils#664: Исправления переносимости для сборок FreeBSD/non-Linux (на рассмотрении) URL: https://github.com/hpc/mpifileutils/pull/664
Ежемесячные отчёты о состоянии Kavocado – заметки по HPC во FreeBSD URL: https://kavocado.net/reports/
Контактное лицо: Generic Rikka <[email protected]>
Этот отчёт продолжает инициативу по модернизации HPC-портов FreeBSD. Предыдущие кварталы были посвящены обновлению стека Slurm + PMIx + PRRTE + UCX и заполнению пробелов в сопутствующей экосистеме. Работа в этом квартале была сосредоточена на трёх вещах: поддержании основного планировщика и коммуникационных библиотек в актуальном состоянии в соответствии с быстро меняющимися релизами вышестоящих проектов, отправке накопившихся при поддержке этих портов исправлений переносимости для FreeBSD в вышестоящие проекты, чтобы локальные наборы патчей продолжали уменьшаться, и добавлении нового порта для MPI-параллельных утилит для работы с файлами, которые широко используются в больших HPC-файловых системах.
Выполненные работы
-
Дважды обновлён sysutils/slurm-wlm в этом квартале: с 25.11.4 до 25.11.5, а затем с 25.11.5 до 26.05.1, отслеживая последние вышестоящие релизы.
-
Исправлены несколько проблем времени выполнения, специфичных для FreeBSD, в net/ucx: улучшена обработка состояния асинхронных потоков, исправлена обработка перемещений UCM, исправлена привязка сокетов сигналов mm, а также решены другие проблемы переносимости времени выполнения для FreeBSD.
-
Обновлён net/ucx с 1.20.0 до 1.20.1, а также отдельно исправлена паника при ранней инициализации libucm вместе с несколькими сбоями в наборе тестов gtest, обнаруженными при проверке обновления.
-
Добавлен sysutils/mpifileutils как новый порт вместе со стеком зависимостей: devel/libcircle, devel/lwgrp и devel/dtcmp. Они предоставляют MPI-параллельные утилиты для работы с файлами (копирование, удаление, контрольные суммы и т.д.), обычно используемые в больших HPC-файловых системах.
-
Дважды обновлён benchmarks/py-reframe-hpc в этом квартале для отслеживания вышестоящих релизов фреймворка регрессионного тестирования.
-
Отправлены в вышестоящий проект UCX «UCS/TYPE: Исправления переносимости для сред без glibc/Clang», которые были рассмотрены и включены.
-
Открыт запрос на включение «UCS/SYS: исправления переносимости для платформ, отличных от Linux» в UCX, охватывающий определение размера буфера имени хоста, получение MAC-адреса через
getifaddrs()/AF_LINK, сообщение об ошибках разделяемой памяти, перераспределение на основеmmap/munmapи запросы привязки потоков на основеcpuset_getaffinity(); в настоящее время обрабатываются замечания рецензентов. -
Открыт запрос на включение исправлений переносимости в mpifileutils, ограничивающих использование Linux-специфичных API для FreeBSD и других сборок, отличных от Linux; в настоящее время на рассмотрении.
-
Совместно с SchedMD проведена работа над проверкой во время конфигурации Slurm для
H5PTopen, используемой для обнаружения библиотеки высокого уровня HDF5, которая была включена в вышестоящий проект.
Работа в процессе
-
Обработка замечаний рецензентов по открытым запросам на включение исправлений переносимости в UCX и mpifileutils для их включения в вышестоящие проекты и дальнейшего уменьшения локальных наборов патчей в портах FreeBSD.
-
Продолжение сотрудничества с SchedMD для отправки в вышестоящий проект дополнительных исправлений переносимости, обнаруженных при поддержке sysutils/slurm-wlm во FreeBSD, включая улучшения обработки сокетов BSD.
-
Оценка дизайна плагина Slurm
proctrack/freebsd_reaper, ставшего возможным благодаря недавно добавленной в ядро FreeBSD поддержке раскрытия метаданных реперера в информации о процессах. -
Продолжение внимательного отслеживания вышестоящих релизов Slurm, UCX и PMIx/PRRTE для поддержания портов FreeBSD в актуальном состоянии с минимальным локальным патчированием.
Будущие планы
-
Включить ожидающие запросы на включение в вышестоящие проекты UCX и mpifileutils и продолжить выявление дальнейших проблем переносимости для отправки в вышестоящие проекты, а не для локального патчирования.
-
Создать прототип и отправить плагин Slurm
proctrack/freebsd_reaperпосле завершения работы над соответствующим интерфейсом ядра. -
Продолжить расширение экосистемы HPC-программного обеспечения, доступной в Коллекции Портов FreeBSD, и сокращение локальных наборов патчей во всём стеке везде, где возможно принятие вышестоящими проектами.
-
Документировать эталонное развёртывание Slurm + OpenMPI + PMIx + PRRTE + UCX на FreeBSD, чтобы снизить порог входа для новых организаций, экспериментирующих с FreeBSD в контексте HPC.
Улучшение поддержки libvirt для гипервизора bhyve
Ссылки:
libvirt: Драйвер bhyve URL: https://libvirt.org/drvbhyve.html
Контактное лицо: Roman Bogorodskiy <[email protected]>
Выполненные работы
-
Драйвер libvirt/bhyve:
-
Добавлена поддержка устройства
virtio-console. -
Добавлена поддержка QEMU Guest Agent.
-
Реализовано несколько функций на основе QEMU Guest Agent, таких как корректная перезагрузка и выключение, управление временем гостевой ОС, SSH-ключами, паролями пользователей и т.д.
-
Добавлена настройка памяти и настройка ввода-вывода для блочных устройств на основе rctl(8).
-
-
В процессе разработка по расширению CI libvirt для тестирования на снимках виртуальных машин FreeBSD-CURRENT.
Планы на следующий квартал
-
Добавить поддержку настройки порядка загрузки.
-
Добавить поддержку устройств TPM.
-
Завершить поддержку приостановки/возобновления.
-
Продолжить реализацию функций на основе QEMU Guest Agent.
-
Продолжить расширение CI, охватив новые функции на основе гостевого агента новыми тестами.
Спонсор: The FreeBSD Foundation
Последнее изменение: 27 июля 2026 г. от Vladlen Popolitov