ここで本書は終わりです。1000行足らずではありますが、なかなか大変だったのではないでしょうか。
「まだ物足りない!まだ何か続けたい」という方のために「次にすること」をいくつか紹介します。
HinaOSやxv6を読もう
ページングや例外処理といった、アプリケーション開発では見られない独特な機能の実装を学んだ今、一番おすすめなのが「既存のOSの実装を読んでみる」ことです。自分の実装と比較して「他の人がどう実装しているのか」を学ぶのは大変勉強になります。
おすすめが2つあります。1つ目は拙作のHinaOSです。本書と同じくRISC-V 32ビット向けの教育用OSです。マルチプロセッサ対応のマイクロカーネルOSで、TCP/IPプロトコルスタックも実装されています。筆者が書いたOSということもあり、本書を読んだ方なら比較的読みやすいでしょう。
2つ目はRISC-V版 xv6です。こちらは教育用UNIX風OSで、解説書 (英語)もあります。fork(2)
のようなUNIX特有の機能の仕組みを学びたい方におすすめです。
新しい機能を追加しよう
本書では、カーネルの基本的な機能を実装しました。しかし、まだまだ実装できる機能はたくさんあります。例えば、次のような機能を実装してみると面白いでしょう。
- まともなメモリアロケータ
- 割り込み
- 本格的なファイルシステム
- ネットワーク通信 (TCP/IP)
HinaOSの実験テーマ集 もアイデア出しに役立つでしょう。