Основатель CentOS и Rocky Linux за 11 дней создал ядро Ginux на Rust

Грегори Курцер (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Архитектура 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

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев