
Грегори Курцер (Gregory Kurtzer), один из создателей CentOS и основатель Rocky Linux, представил Ginux — независимое ядро операционной системы на Rust, способное запускать программы Linux без самого ядра Linux. На разработку прототипа ушло всего 11 дней, почти весь код написал ИИ-агент OpenAI Codex с моделью GPT-5.6 Sol. Стоимость эксперимента автор оценил примерно в $8000.
Это не форк Linux: управление памятью, планировщик, процессы, файловые системы, сетевой стек и совместимость с Linux ABI реализованы самостоятельно. Ginux уже запускает отдельные приложения Alpine Linux и Rocky Linux 10, включая systemd, который успешно доходит до multi-user.target.
В первоначальном объявлении Курцер пояснил, что проверял прежде всего не архитектуру нового ядра, а возможность создать такую систему с помощью ИИ.
За 11 дней в репозитории появились 138 790 строк кода реализации и тестов, не считая генерируемых данных, и 1037 коммитов. Разработка велась практически в одной непрерывной задаче Codex, но с постоянным контролем со стороны автора.
Почему Rust
Курцер ответил на этот вопрос в обсуждении проекта. Rust обеспечивает безопасность памяти без сборщика мусора и управляемой среды выполнения, сохраняя необходимый для ядра низкоуровневый контроль над оборудованием.
Но есть и другая причина, непосредственно связанная с использованием ИИ. По наблюдениям Курцера, программирующие агенты генерируют более надёжный Rust-код, чем C. Кроме того, растущая поддержка Rust в самом Linux делает язык подходящим для экспериментов в этой области.
Разумеется, Rust не избавляет от ошибок полностью. Ginux использует unsafe и ассемблер в коде загрузки, обработки прерываний, переключения контекста и взаимодействия с оборудованием. Но компилятор позволяет обнаруживать многие ошибки обращения с памятью ещё до запуска программы, что особенно полезно, когда код пишет ИИ.
Согласно описанию архитектуры, система собирается в единый EFI-образ GINUX.EFI. Он содержит ядро, необходимые компоненты и встроенный контроллер управления. После загрузки через UEFI контроллер работает в пользовательском режиме ring 3, а привилегированные операции выполняются ядром.
Архитектура GinuxПочему Codex и GPT-5.6
Выбор инструмента Курцер подробно объяснил в техническом отчёте. По его опыту, продвинутые модели Claude чаще отвлекались на технически интересные побочные задачи, тратили на них контекст и токены, а часть результатов затем приходилось отменять.
Codex лучше удерживал текущую цель и позволял последовательно выполнять цикл: написать код, собрать ядро, загрузить QEMU, разобраться с ошибкой, исправить её и повторить проверку.
В ответах на вопросы Курцер признал, что без вмешательства всё равно не обходилось. Однажды агент два дня пытался выполнить слишком широко сформулированную задачу, практически не приближаясь к результату. Автору пришлось вмешаться и уточнить критерии готовности.
При этом Курцер сознательно старался не редактировать исходники самостоятельно. Он даже закрыл IDE, чтобы не возникало соблазна исправлять код вручную. Вместо этого он менял требования и критерии приёмки, заставляя агента находить и исправлять собственные ошибки.
Такой подход Курцер называет Human-Directed Agentic Engineering (HDAE). Человек определяет архитектуру, ограничения, этапы и проверяемые результаты, а агент реализует решения и проходит тесты.
Отдельный вопрос — почему использовалась именно GPT-5.6 Sol, а не GPT-6. К моменту эксперимента GPT-6 Sol уже была доступна, причём её стоимость по API была вдвое ниже, чем у предшественницы. В конце сентября появилась и GPT-6.1 Sol. Курцер не объяснил этот выбор. В отчёте нет сравнительного тестирования разных поколений GPT, поэтому судить, насколько изменились бы результаты при использовании, скажем, GPT-6, пока невозможно.
Что действительно умеет Ginux
Главный результат эксперимента — не количество строк кода, а работающее пользовательское окружение Linux. Ginux умеет загружать и проверять OCI-образы, формировать из них файловые системы и запускать процессы в собственных изолированных окружениях — доменах. Каждый домен имеет собственные процессы, адресные пространства, файловые системы и жизненный цикл. В отличие от обычных контейнеров Linux, изоляцию здесь обеспечивает непосредственно новое ядро.
Согласно матрице совместимости, из 375 системных вызовов Linux 6.12 для x86-64 полностью реализованы 82, частично — 245, ещё 48 блокируются политиками системы. Таким образом, большая часть системных вызовов распознаётся, но полноценная совместимость с Linux пока далеко не достигнута.
Самой интересной проверкой стал запуск systemd из Rocky Linux 10. Для этого понадобилось реализовать не только системные вызовы, но и достаточно сложное взаимодействие процессов, сокетов, файловых систем, терминалов и механизмов управления службами.
Курцер также проверил производительность при помощи sysbench. Первоначально Ginux значительно уступал Linux в тестах памяти и потоков, однако после профилирования и исправления узких мест результаты на выбранных нагрузках приблизились к показателям Linux.
Справедливости ради надо сказать, что тестирование выполнялось в QEMU с одним виртуальным процессором, причём на Mac с Apple Silicon использовалась программная эмуляция x86-64, поэтому говорить о сопоставимой производительности ядер в реальных условиях ещё рано.
Таким образом, полноценной замены Linux в этом проекте (пока) нет. Поддержка оборудования ограничена, отсутствуют многие драйверы, совместимость с приложениями неполная, часть тестов завершается ошибками. Независимый аудит безопасности также не проводился. Сам Курцер признаёт, что для создания практически полезного продукта разумнее было бы использовать существующее ядро Linux.
Впрочем, он и не собирался его заменять. Ginux — эксперимент, который показал, насколько далеко уже может зайти ИИ-агент под руководством опытного системного разработчика. Написать новое ядро оказалось возможным за 11 дней. Сделать из него полноценную операционную систему — совсем другая задача.
Исходный код опубликован на GitHub под лицензией Apache 2.0, подробности разработки изложены в техническом отчёте.
Источник: habr.com