はじめに
OSを自作する書籍については
30日で作るOS自作入門(絶版)
や、上記30日の本を現代版にアレンジした以下の書籍
がありますね
でも、Rustで書こうとしてもC++で書かれていたり、仮想メモリ・ページング・バディアロケータやスラブアロケータ・デマンドページングといったものについて詳細に解説してくれている物ではありません。
せっかく書くなら好きな言語で書けたほうがモチベ上がると思う。
あと、メモリ管理はやっぱりOSの要ですから、しっかりと作りこみたいものなんですよ。
と思いつつ、5年ちょいが経過したところ、みんな大好きClaudeCode(やCodex・Devin等)のAIコーディングエージェントが爆誕しました。
これ・・・もしかしてフルスクラッチでRust使って実装できるんじゃね?
と思ったわけです。
モチベーション
OSを理解しながら作る教材OSを作ろう
ちょっとずつ作りながら学び、Agentが作ったバグを整理した資料も作ることで、人間もAgentもハマるカーネルバグの寄せ集めや、作り方の解説ドキュメントを作れば俺自身も理解が深まると思った。
エージェントを使って作りながら勉強する
オープンクエスチョンなOS自作体験です
(これまでは著者に質問するしか方法が無かった、回答をもらえる保証も一切ない)
これから好きな言語でOSを自作してみたいなーと思っている方に届けばいいなと思います。
大まかな進め方の説明
- Claude Code Opus(Thinking+EffortはLowで大丈夫)で大まかな設計をする
- 設計を一つずつ詳細化する(Claude Code Opus、Thinking +Effort Low)
- TODOリストを作ってもらう
- TODOリストに基づいて一つずつ進めるようにCLAUDE.mdに書く(書いてもらう)
- 開発者が動作確認を行い、おかしい挙動をAIにフィードバックする(もしくはシリアルをそのまま読ませる(簡単だけど、コンテキストを膨大に使うので非推奨))
- 動確が問題なければドキュメントを書いてもらう
- なぜこの処理を入れるのか、この処理の考え方はどんな考え方で生まれたのか、など自分が知りたい情報をドキュメント化してもらう
- これをTODO単位で繰り返す
という感じです。
これでドキュメントとコードがセットになります。
Q. コードを自分で改良したいときはどうするの?
A. まずgitに変更前のコードをコミットしておいて、改良する・したところをAIに伝えて、ドキュメントとコードの一貫性を保ちます(関連するドキュメントを更新してくれと指示するだけ)
このとき、CLAUDE.mdまたはSKILL.mdにgit diff使えってあらかじめ指示を書いておくと便利です
成果物
ドキュメントネットワーク
ド頭のインデックス(README)
全体
各詳細ドキュメント(仮想メモリ管理の例)
コード
カーネルのソースとvmallocのソース
おわりに
ほかにもACPIでの電源管理(シャットダウンやリブート)にも対応したり、今後はHDDやSSDへのアクセスなんかも実装するつもりです。
ちなみにこれだけ実装しても、Claude CodeのProプランの1週間使い切って次の週に若干足が出る(20%)くらいでした。
なので、おおよそ1週間のリミットくらいのコンテキストでメモリ管理+ACPI+APIC+それぞれの解説文書は書けるという感じです。
良い時代に生まれて良かった。
専属のプロフェッショナルが隣にいるので、仕組みを学習するにはいい世の中になりました。
ただ使って生成物を出すだけじゃなくて、学ぶために使うという方向性でした。






