AI支援で11日間に開発された独立カーネル「Ginux」、Rocky Linux 10を起動
出典: github.com

11日間で独立カーネルを開発

CentOSの共同創設者でRocky Linuxを立ち上げたGregory Kurtzer氏が、AIエージェントを使って独立したカーネル「Ginux」を11日間で開発しました。約13万9,000行のコードとテストが作られ、GinuxはRocky Linux 10を起動してsystemdのマルチユーザー目標まで進みます。

GinuxはLinuxカーネルを土台にした派生版ではありません。メモリ管理、プロセスのスケジューリング、ファイルシステム、ネットワークなどを独自に実装し、主にRustで構成されています。

開発では、Kurtzer氏が設計や達成目標、合格基準を定め、AIエージェントが実装、実行、問題の診断と修正を担いました。開発は単一の長時間稼働するエージェントタスクとして進み、1,000件を超えるコミットが作られました。

Linux ABIを介して既存プログラムを実行

GinuxはLinuxのABI(アプリケーションとOSがやり取りするための規約)を実装しています。この互換層を通じて、Linux向けに作られたプログラムからのシステムコールを受け付け、Linuxカーネルを内部に使わずに実行します。

ただし、Linux向けプログラム全般が動く状態ではありません。Linux 6.12のx86-64向けシステムコール375種類のうち、完全実装は82種類、部分実装は245種類で、残る48種類はポリシー上、利用できない扱いです。

実際の動作例として、Alpine Linuxの一部プログラムを実行でき、Rocky Linux 10ではsystemdがマルチユーザー目標まで起動します。これらは選定された環境での動作確認であり、任意のLinuxプログラムやディストリビューションとの互換性を示すものではありません。

OCIイメージと「ドメイン」による実行環境

Ginuxでは、プログラムを「ドメイン」と呼ぶカーネル内の単位で動かします。ドメインごとにプロセス、アドレス空間、ファイルシステムなどを管理し、Linuxユーザー空間をその中で実行します。

OCIは、コンテナイメージの形式や配布方法に使われる仕組みです。GinuxはOCIイメージからドメイン用のファイルシステムを組み立てますが、実行や隔離を担うのはLinuxコンテナの仕組みではなく、Ginux自身のカーネルです。

この構成では、複数のドメインが同じGinuxカーネルを共有します。プロセスやメモリの分離を含む境界はGinuxのカーネル側が管理しますが、プロジェクトはリソース制御やデバイス隔離などに未完成の箇所があるとしています。

仮想マシン上の研究プロトタイプ

現在の開発対象は、QEMU上のx86-64仮想マシンです。物理ハードウェアでは動作せず、GPUやNVMeドライブにも対応していません。

Kurtzer氏の技術報告は、この取り組みを「Human-Directed Agentic Engineering」と名付けています。人間が設計、制約、節目、受け入れ基準を決め、エージェントが実装と検証を進める開発方法を指します。

Ginuxは研究用の試作段階にあり、独立したセキュリティ監査も受けていません。報告はLinuxと同等であることや、本番環境で使えることを主張しておらず、互換性とハードウェア対応にも限りがあります。