NextBSD возродился: энтузиаст переносит открытый код Apple на FreeBSD с помощью Claude Code

Один из самых интересных вариантов BSD-систем 2010-х годов, NextBSD, вернулся к жизни под новым руководством. Новый проект живёт в отдельном репозитории на GitHub, не являясь форком старого кода (тот репозиторий тоже сохранился, но последние изменения в нём датированы семью годами ранее). Автором возрождения выступает Джо Малони, известный на GitHub под ником pkgdemon, он же собрал рабочий стол Gershwin для системы GhostBSD. После этого он попросил у сопровождающих NextBSD разрешения принять проект под своё крыло; в оригинальном проекте у него была небольшая роль, несколько коммитов.
Оригинальный NextBSD запустил в 2015 году сооснователь FreeBSD Джордан Хаббард. Идея строилась на том, что все операционные системы Apple, от macOS до iOS и урезанных версий для Apple Watch и Apple TV, собраны из общего ядра, унаследованного от NeXTSTEP, которое, в свою очередь, опиралось на Mach и BSD Unix (свободное ПО ещё до появления термина «открытый исходный код»). Сегодня значительная часть операционных систем Apple открыта: ядро XNU (отвечает за межпроцессное взаимодействие через Mach IPC), система инициализации launchd, подсистема IOKit для устройств и драйверов, служба журналирования Apple System Log с демоном syslogd и многое другое. Но низкоуровневые части, само ядро XNU и драйверы, заточены исключительно под аппаратное обеспечение Apple. План NextBSD в том, чтобы взять ядро FreeBSD (самое функциональное среди свободных BSD-ядер) и заменить его серверно-ориентированное пользовательское окружение на соответствующие открытые компоненты Apple.
Подобные попытки предпринимались и раньше, но почти все заглохли: OpenDarwin (2002, 2006), PureDarwin (релизы в 2015 и 2019 годах, поддержка велась вплоть до 2024-го), GNU Darwin, DarwinBSD. Была и попытка собрать похожий на macOS рабочий стол, helloSystem, которую делал Саймон Питер (известный как ProbonoPD, создатель формата упаковки AppImage) на основе дистрибутива FuryBSD, закрывшегося в 2020 году. Позже на основе helloSystem вырос куда более амбициозный проект ravynOS, который стремится к ограниченной бинарной совместимости с macOS через отдельный проект Darling; его архитектура опирается на код Darwin 19.6, что соответствует macOS 10.15 Catalina. Новый NextBSD переиспользует часть библиотек ravynOS, например libxpc, которая изначально была написана ещё в оригинальном проекте NextBSD.
Возрождённый проект, который называют NextBSD-redux, не форк старого кода, а фактически новая разработка с нуля, преследующая ту же цель и собирающая тот же «пазл» из компонентов, хотя местами и опирается на старый код. Графического рабочего стола пока нет, но работа над ним ведётся, это будет всё тот же Gershwin, статус которого отслеживается в отдельном репозитории gershwin-on-nextbsd.
Особенность нового NextBSD, которая вызовет неоднозначную реакцию: в разделе «Команда» на сайте проекта указаны Малони и «Claude Code от Anthropic». На вопрос The Register о том, как и для чего он использует ИИ, Малони ответил: «Для меня ИИ, это здесь усилитель. Это моя команда разработчиков, но управляю всем процессом я сам. Понимаю, что это подходит не всем. Если кому-то понравится, прекрасно, если кто-то потом захочет внести вклад, тоже прекрасно. Мне просто нравится этим заниматься, и я хочу, чтобы проект существовал ради меня самого». Он добавил: «Я понимаю и разделяю скепсис людей насчёт ИИ, сам не уверен, насколько я доверяю сгенерированному ИИ коду, особенно без проверки человеком. В моём случае ИИ всегда был скорее способом быстрее понять, что делает код, а не способом ничему не учиться. При этом я прекрасно понимаю опасения насчёт использования такого кода в продакшене».
Самые старые коммиты в нынешнем организационном репозитории датированы всего двумя месяцами, но Малони пояснил, что вся разработка не уместилась в этот короткий срок, ей предшествовали две более ранние итерации, которые так и не были перенесены из его личного аккаунта в организацию. Первая итерация была написана полностью в стиле «вайб-кодинга», просто чтобы проверить, можно ли реализовать launchd только на сокетах, без Mach и LaunchDaemons для devmatch и devd. Всё это время Малони подробно документировал процесс на pkgdemon.github.io: сравнивал механизмы загрузки модулей ядра FreeBSD с Linux и Darwin, выяснял пробелы и убеждался, что у Darwin есть решения для их закрытия, но для этого нужен Mach. Именно тогда он начал активнее применять ИИ, для месяцев планирования, исследований и уточнения планов.
Во второй итерации он повторил ту же работу, но уже с полноценным модулем ядра Mach и launchd в одном репозитории, взяв заодно несколько компонентов вроде libxpc (последний раз обновлялась в ravynOS, а изначально написана авторами оригинального NextBSD) как «клей» для запуска launchd. Именно в таких связующих компонентах, для которых Apple не публиковала код; там и живёт наследие оригинального NextBSD и ravynOS; всё остальное написано «с чистого листа». Именно на этом этапе Малони начал интерактивно разбирать с Claude Code каждое изменение кода и с самого начала выстраивать автоматизированное тестирование, например, начиная с загрузки модуля ядра Mach, писать тесты, покрывающие каждую его часть. В третьей итерации он разнёс проект по отдельным репозиториям, для самого ядра, для модулей, превращаемых в kext'ы, для набора инструментов Darwin, и перешёл на нативную кросс-сборку прямо в GitHub с автоматическими тестами, блокирующими слияние при провале. По его словам, ИИ-инструменты задействованы почти на каждом этапе, но и сам он вовлечён не меньше, именно он «управляет процессом».
Автор материала в The Register признаётся, что крайне скептически относится к написанию кода с помощью языковых моделей, но для такого любопытного эксперимента готов на время отбросить сомнения. Издание надеется увидеть, сможет ли NextBSD дорасти до рабочей операционной системы, которую можно запустить на ноутбуке, соединив элементы пользовательского окружения Apple с надёжным ядром FreeBSD.
Ключевые факты
- Джо Малони (ник pkgdemon на GitHub, автор рабочего стола Gershwin для GhostBSD) возродил проект NextBSD, новый репозиторий NextBSD-redux не является форком старого кода 2015 года (тот не обновлялся семь лет).
- Цель проекта, взять ядро FreeBSD и заменить его серверное пользовательское окружение на открытые компоненты Apple/Darwin (launchd, IOKit, Apple System Log/syslogd и другие), не трогая закрытое под конкретное железо ядро XNU.
- Похожие попытки в прошлом почти все заглохли, OpenDarwin, PureDarwin, GNU Darwin, DarwinBSD, helloSystem; часть их кода и разработчиков (например, ProbonoPD) перешла в проекты ravynOS и Gershwin, откуда новый NextBSD заимствует отдельные библиотеки вроде libxpc.
- В разделе «Команда» на сайте проекта указаны Малони и «Claude Code от Anthropic»: по словам Малони, ИИ, «усилитель» и фактически «команда разработчиков», но управляет всем процессом он сам; он открыто говорит, что не до конца доверяет сгенерированному ИИ коду без проверки человеком.
- Разработка прошла три итерации, от «вайб-кодинга» ради проверки идеи до интерактивного разбора каждого изменения с Claude Code и автоматических тестов, блокирующих сборку; графического рабочего стола (порта Gershwin) пока нет, он в разработке.
Почему это важно
Построить открытую ОС, совместимую по компонентам с Apple Darwin, пытались многократно за последние два десятилетия, и почти все такие проекты (OpenDarwin, PureDarwin, GNU Darwin, DarwinBSD, helloSystem) в итоге заглохли или закрылись. NextBSD, редкий пример возрождения такой инициативы, причём с открытым признанием, что значительную часть работы над сложным системным кодом (ядро, драйверы, инициализация процессов) ведёт не только человек, но и ИИ-агент Claude Code, официально указанный в команде проекта.
Кому это важно
Сообществу BSD и открытого софта, которое следит за судьбой Darwin-совместимых проектов и за развитием Gershwin как альтернативного рабочего стола. А также всем, кто интересуется практикой применения ИИ-агентов в системном программировании, редкой области, где ошибка модели может стоить дорого и где обычно ИИ применяют реже, чем в веб-разработке.
Как это применить
Код проекта открыт на GitHub (NextBSD-redux, отдельно, gershwin-on-nextbsd для рабочего стола), в README и заметках о переносе описано, что уже работает. Малони подробно задокументировал сам процесс на pkgdemon.github.io и в интервью The Register: сначала «вайб-кодинг» для проверки гипотезы, затем месяцы планирования и исследований с ИИ, затем интерактивный построчный разбор изменений с Claude Code вместе с автоматическими тестами, покрывающими каждую добавленную часть, такой конвейер можно использовать как ориентир для собственных экспериментов с ИИ-агентами в низкоуровневых проектах.
Можно ли доверять
Материал написан профильным изданием The Register (рубрика Reg FOSS desk) как обычный технический репортаж, а не как её сатирическая рубрика: в тексте есть цитаты, полученные напрямую от автора проекта, ссылки на реальные репозитории и историческую справку по предыдущим Darwin-проектам. Сам автор статьи прямо называет себя скептиком в отношении написания кода языковыми моделями и подчёркивает, что делает исключение только ради интересного эксперимента, это не рекламный материал.
Риски и подводные камни
Сам Малони признаёт, что не до конца доверяет сгенерированному ИИ коду без проверки человеком, особенно в продакшен-окружениях. Видимая история проекта коротка, самые старые коммиты в нынешнем репозитории датированы лишь двумя месяцами, а две более ранние итерации разработки остались только в личном аккаунте и не задокументированы публично. Графического интерфейса пока нет, а послужной список похожих проектов (Darwin на PC-железе, macOS-подобные рабочие столы) в целом печальный, большинство предшественников NextBSD в итоге не довели дело до стабильной рабочей системы.
«Для меня ИИ, это здесь усилитель. Это моя команда разработчиков, но управляю всем процессом я сам.»
— Джо Малони (pkgdemon), автор NextBSD-redux, The Register