10月31日、pbxscience.comが「Ginux: CentOS Founder Builds a New Rust Kernel in 11 Days with AI」と題した記事を公開した。CentOSおよびRocky Linuxの創設者であるGregory Kurtzerが、AIエージェントを活用してRust製の新カーネル「Ginux」を構築した経緯と、その技術的な内容を詳しく紹介している。
11日間、13万9000行、AIが書いたカーネル
Kurtzerが公開したGinuxの開発期間はわずか11日間だ。Linuxカーネルが1991年の初公開から現在に至るまで30年以上・数千万行規模へと成長してきたことを踏まえると、この数字が持つ意味は小さくない。11日間でRocky Linux 10をsystemdのmulti-user.targetまで起動させることに成功しており、最終リポジトリに残った実装・テストコードは約13万9000行、1000コミット以上に及ぶ。
コードを書いたのはAIエージェントであり、元記事ではそのモデルとして「OpenAI Codex」が言及されている(※元記事の表記に基づいて転記しているが、具体的なモデル名については元記事原文を直接参照されたい)。Kurtzer自身が担当したのは、アーキテクチャの設計、制約の定義、マイルストーンの設定、受け入れ基準の策定だ。
「AIが複雑なシステムソフトウェアを生成できる。難しいのは、互換性・セキュリティ・ハードウェアサポート・標準化・コミュニティ・長期メンテナンスの部分だ」とKurtzerは述べている。
GinuxはLinuxフォークでも、ディストリビューションでもない
Ginuxはx86-64向けの独立カーネルであり、Linuxカーネルをベースとしていない。UEFI経由でGINUX.EFIという単一イメージとして直接起動し、メモリ管理、スケジューラ、プロセスモデル、ファイルシステム、ネットワークスタック、デバイスサポートまですべてスクラッチで実装されている。
その上で、Linux ABI(Application Binary Interface)レイヤーを実装している点がミソだ。Linux向けにコンパイルされた既存のバイナリが、そのまま無修正で動作する。プロジェクトの言葉を借りれば、「Linux」はGinuxが外部に露出する「パーソナリティ」であり、その下に本物のLinuxカーネルがあるわけではない。
現時点でできることは以下の通りだ:
- Linuxホストカーネルなしで、UEFIから直接起動
- 複数の隔離された「ドメイン」を並行実行
- BusyBoxやmuslベースのソフトウェアを含む、Alpine Linuxプログラムの一部を実行
- Rocky Linux 10をsystemdの
multi-user.targetまで起動
systemdが起動するということは、プロセス生成、動的リンク、端末制御、シグナル処理など、多くのプログラムが依存するカーネルインターフェースが一通り機能していることを意味する。
「コンテナより強い」ドメインという概念
Ginuxが独自に導入するコンセプトが「ドメイン」だ。プロセス、アドレス空間、ファイルシステムルート、リソースポリシー、ライフサイクルを一まとめにしたカーネルネイティブのオブジェクトで、OCIコンテナやLinux名前空間(namespace)よりも強い分離境界を持つとプロジェクトは説明している。
OCI(Open Container Initiative)コンテナイメージはルートファイルシステムの組み立てに利用されるが、実行と隔離の制御はドメインが担う。配送メカニズムとしてのみOCIを使う設計だ。
HDAE:人間が設計し、AIが実装するループ
Kurtzerはこの開発手法を「Human-Directed Agentic Engineering(HDAE)」と命名し、Zenodoに技術レポートとして公開している(※リンク先レコード番号は元記事記載のものをそのまま転記している。参照の際は元記事と合わせて確認されたい)。
人間がアーキテクチャ、制約、マイルストーン、受け入れ基準、停止条件を定める。AIエージェントがコードを書き、起動し、テストし、失敗を診断して修正するループを繰り返す。Ginuxの開発では、アーキテクチャ文書でエージェントの方向を維持しつつ、Rocky Linuxのような実際のユーザースペースを使って合成テストでは見つからないバグを炙り出した。
現時点での制約
GinuxはApache 2.0ライセンスの研究プロトタイプであり、プロダクション利用を意図していない。現在はQEMU仮想マシン上でのみ動作し、物理ハードウェアのサポートマトリクスは存在しない。GPUやNVMeのサポートもなく、独立したセキュリティ監査も受けていない。
記事は次のようにまとめている。「数日でブータブルなプロトタイプを作ることと、カーネルを何年も保守することはまったく別の話だ。Linuxには数十年のハードウェア対応、コードレビュー、コミュニティ作業の蓄積がある。仮想マシンでsystemdが起動するプロトタイプは、それを変えるものではない」。
その一方で、「経験豊富なエンジニアと能力のあるコーディングエージェントの組み合わせがどこまで到達できるかを示した結果でもある。決定的な要因は生成されたコードの量ではなく、『動作している』の定義を明確にし、エージェントにそこへ向かって反復させる能力だった」とも述べている。
詳細はGinux: CentOS Founder Builds a New Rust Kernel in 11 Days with AIを参照していただきたい。