あの伝説のLinux 0.11をRustで完全リライト!QEMUで爆速起動も実現
Linux 0.11 rewritten in idiomatic Rust, boots in QEMU
Linux 0.11 rewritten in idiomatic Rust, boots in QEMU
Linuxカーネルの原点である「Linux 0.11」が、現代の安全な言語であるRustによって見事に書き直されました。単なる移植ではなく、Rustのイディオムを存分に活かした実装となっており、QEMU上で正常に起動まで到達しています。カーネルハッカーやRust言語に興味のある方にとって、OS開発の深淵を覗き見る貴重なリソースとなるでしょう。
このRustの実装をオリジナルのCのソースコードと比較してみたんだけど、Cがヘッダーを含めても1万2千行程度なのに対し、Rustは5万行近くもある。なんでRust版はこんなに複雑で面倒なことになってるんだ?
質の悪いソフト(Slopware)ってこと?
昔はRustが好きだったんだけど、最近はRustって名前を聞くだけで条件反射的に嫌悪感を抱くように調教されてる気がする。
5年前ならこういう見出しを見て「すげー!」って思ってたはずなのに、今じゃ「また誰かがトークンを無駄遣いしたのか」としか思えないのが嫌になる。
正直なところ――これが単なる趣味のお遊びプロジェクトなのは承知の上で言うけど――現代のAIを使ったRust化のアプローチとしては、これが正解だと思う。フォークしてAIによる一括変換を行い、しばらく並行して動かしてリグレッションを全部洗い出す。そうすればメリットとデメリットをオリジナルと比較できるし、中途半端なRust混じりのフランケンシュタイン型にするよりも、よりイディオマティックなコードベースが出来上がるはず。よくある「長年続いてるプロジェクトをRust化しようとしてグダる」よりずっといい。
パフォーマンスはどうなの?
バイナリサイズを比較するとどうなるんだろう。オリジナルのLinux 0.11カーネルと、このRust化されたバージョンで。
Rustによる書き直しのラスボスだな。LLMを使ったコーディングのおかげでこういうプロジェクトが可能になるのはすごく嬉しい。