Разработчики FreeBSD опубликовали отчёт о развитии за четвёртый квартал 2024 года, в котором упомянут проект bsd-user-4-linux, развивающий инструментарий для запуска в Linux приложений, собранных для FreeBSD. Целью проекта заявлено достижение возможности собственной сборки, используя инструментарий FreeBSD в Linux, а также возможность собирать пакеты для FreeBSD в Linux, используя родной сборочный инструментарий FreeBSD.
Для запуска исполняемых файлов FreeBSD задействован форк эмулятора QEMU, работающий в режиме User Mode Emulation, предназначенном для запуска процессов, скомпилированных для других CPU и операционных систем. В данном режиме QEMU выполняет трансляцию системных вызовов и обработку сигналов. Для запуска приложений требуется развёртывание в локальном каталоге библиотек и настроек из базовой системы FreeBSD. Проект можно рассматривать как BSDlator – обратный аналог Linuxulator.
На текущем этапе разработки работает запуск основных системных утилит (sh, bash, find, grep, git, clang и т.п.), поддерживается динамическое связывание и разделяемые библиотеки, доступны сетевые функции. Например, уже можно пересобрать FreeBSD командой “make -j80 buildworld”, находясь в Linux. Из отсутствующей функциональности отмечается невозможность запуска отладчика GDB, недоступность IPC, функций kevent/kqueue и некоторых sysctl (например, name2oid).
Дополнительно проект занимается подготовкой образов контейнеров с рабочим окружением FreeBSD для различных архитектур (linux/386, linux/amd64, linux/arm/v5 и linux/arm64/v8) и предоставлением GitHub Actions для формирования подобных образов.
Из других событий из квартального отчёта FreeBSD можно отметить:
- Утилита mdo для запуска команд под другим пользователем, похожая на утилиту su, но использующая вместо setuid модуль ядра mac_do и системный вызов setcred.
- Разработка драйвера AMD IOMMU для FreeBSD.
- Проект по улучшению работы FreeBSD на ноутбуках.
- Проект по модернизации инфраструктуры.
- Работа по поддержке режимов низкого энергопотребления S0ix и s2idle (Suspend-To-Idle).
- Улучшение работы платформы OpenStack во FreeBSD.
- Улучшение звукового стека FreeBSD.
- Улучшение работы OpenJDK во FreeBSD.
- Модернизация пакетного менеджера pkg для проекта PkgBase (оформление компонентов базовой системы в формате, пригодном для управления и обновления при помощи пакетного менеджера pkg).
- Возобновление работы над драйвером umb для MBIM USB 4G/5G модемов.
- Портирование из OpenBSD драйвера iwx для Wi-Fi чипов Intel.
- Продолжение работы над прослойкой LinuxKPI для запуска Linux-драйверов к беспроводным чипам.
- Число портов сократилось с 36504 до 36332. В портах обновлены
Xfce 4.20, LXQt 2.1.0, PHP 8.3, KDE Plasma 6.2.4, Qt 6.8.1, Python 3.9.21 Python 3.11.11, Ruby 3.3.6, Rust 1.83.0, SDL 3.1.6, Sway 1.10, Tor Browser 14.0.3. - Выполнен аудит безопасности кода подсистем bhyve и Capsicum.
- Совместно с компанией Framework ведётся работа над поддержкой во FreeBSD ноутбуков Framework (уже заявлен поддерживаемым Framework Laptop 13 на базе AMD Ryzen 7040).
- Ведётся работа по добавлению в инсталлятор режимов восстановления и обновления системы, а также возможности установки пакетов в Live-окружениях.
- Продолжается портирование FreeBSD на смартфон Pinephone Pro.
- Развиваются инструментарии AppJail и Director и LittleJet для организации работы с OCI-совместимыми контейнерами во FreeBSD, используя механизм изоляции FreeBSD jail.
- Развивается инструментарий Pot для управления контейнерами на базе jail-окружений, ZFS, pf и rctl, поддерживающий интеграцию с платформой оркестровки контейнеров nomad. Предлагается каталог образов контейнеров Potluck, выступающий аналогом Dockerhub для FreeBSD.
- Ведётся разработка графического интерфейса для управления системой виртуализации на базе гипервизора Bhyve. Для разработки используется Freepascal/Lazarus.