全てのアプリケーションを動かす基板となる基本ソフトウェア「OS」。自分でOSを作ることは開発者にとって夢の一つであるかもしれません。今回紹介する「The little book about OS development」はx86アーキテクチャ用のOSを開発する実践的な方法を解説した技術資料です。スウェーデン王立工科大学の講座の一部として作られたもので、理論よりも実践的な内容を多く含むものとなっています。
内容はツールの紹介やOSの起動方法といった非常に基本的な部分から説明から始まり、Cコードの実行方法、画面出力の方法、セグメントの利用方法、割り込みと入力の受け付け方などの説明を経て基本的なOSの機能を実装します。
その後、ページング、メモリ割り当て方法の説明を加え、仮想メモリを持つユーザーモードアプリケーションを実行できるOSへと進化。最後にファイルシステムやシステムコードやマルチタスクなどの高度なトピックに関する議論を行っています。
2012年に公開された資料ですが、最近Hacker Newsで話題となり、筆者の一人が質問を受付ています。資料はPDF形式でダウンロードすることもでき、本のソースコードや、本を書く基礎となった小さなOSであるaenixのソースコードも公開されています。こちらも役に立ちそうです。