Проект возродил Джо Мэлони (Joe Maloney), принимавший участие в разработке старого NextBSD и смежных проектов, таких как helloSystem, ravynOS, FreeNAS/TrueNAS, PCBSD/TrueOS и GNUstep, а также известный как создатель среды рабочего стола Gershwin, применяемой в GhostBSD. Код распространяется под лицензией BSD-2 и развивается с привлечением AI-ассистента Claude. Для загрузки доступны ежедневного формируемые экспериментальные сборки.
Проектом используется ядро FreeBSD, для которого поставляется патч с реализацией механизма межпроцессного взаимодействия на базе микроядра Mach и ряд надстроек. Специфичные для NextBSD изменения применяются поверх штатной кодовой базы ядра FreeBSD без создания форка. На уровне ABI ядро остаётся совместимо с FreeBSD. Вместо модулей ядра, загружаемых утилитой kldload, применяются расширения ядра (kext), для загрузки которых задействован инструментарий kextload и kextstat из Darwin kext_tools.
Для взаимодействия через Mach IPC в системное окружение включены библиотеки libsystem_kernel, libdispatch, libxpc, liblaunch и libCoreFoundation, используемые в окружении Darwin. Для обработки событий от аппаратных устройств вместо devd в ядро встроен механизм IORegistry (/dev/ioregistry), использующий для передачи сообщений шину Mach IPC, с обработкой уведомлений через библиотеку libIOKit и утилиту ioreg.
В качестве системы инициализации (PID 1) и системного менеджера задействован инструментарий launchd, основанный на последнем открытом выпуске launchd-842.92.1, который был портирован на использование интегрированных в ядро FreeBSD компонентов Mach и стека libxpc. Порт стека межпроцессного обмена сообщениями libxpc перенесён из проекта ravynOS.
Вместо rc-скриптов и настроек rc.conf задействованы plist-файлы с описаниями сервисов, размещаемые в каталоге /System/Library/LaunchDaemons/. Для настройки сетевого стека вместо dhclient применён фоновый процесс IPConfiguration (ipconfigd), а для хранения сетевых настроек — реестр configd (netconfigd), хранящий данные в формате ключ/значение.
Вместо syslogd для ведения логов задействована система ASL (Apple System Log), а для обработки событий и доставки уведомлений — фоновый процесс notifyd. Из окружения Darwin перенесены некоторые утилиты командной строки, такие как launchctl, ipconfig, ioreg и syslog, при сохранении базовых системных утилит FreeBSD, таких как top, ps и pkg. При этом помимо типовых для FreeBSD библиотек в систему интегрированы библиотеки GNUstep и swift-corelibs.
В планах отмечено задействование в NextBSD поставляемых в
Darwin наборов утилит bootstrap_cmds (для Mach RPC), network_cmds (ifconfig, route, netstat…), file_cmds (cp, mv, ls, chmod…), shell_cmds (echo, test, kill, su…), system_cmds (ps, sysctl, login…), text_cmds (sort, uniq, cut, cat…) и adv_cmds (last, finger, работа с локалью). Для переноса из Darwin также запланированы инструменты для управления энергопотреблением (pmset) и монтирования накопителей (DiskArbitration поверх libgeom и devctl). Намечено создание инсталлятора и системы upd для проверки и установки обновлений.
Источник: http://www.opennet.ru/opennews/art.shtml?num=65928
