1000行で作るOS - おわりに

  1. はじめに
  2. 開発環境
  3. RISC-V入門
  4. OSの全体像
  5. ブート
  6. Hello World!
  7. C標準ライブラリ
  8. カーネルパニック
  9. 例外処理
  10. メモリ割り当て
  11. プロセス
  12. ページテーブル
  13. アプリケーション
  14. ユーザーモード
  15. システムコール
  16. ディスク読み書き
  17. ファイルシステム
  18. おわりに

ここで本書は終わりです。1000行足らずではありますが、なかなか大変だったのではないでしょうか。

「まだ物足りない!まだ何か続けたい」という方のために「次にすること」をいくつか紹介します。

HinaOSやxv6を読もう

ページングや例外処理といった、アプリケーション開発では見られない独特な機能の実装を学んだ今、一番おすすめなのが「既存のOSの実装を読んでみる」ことです。自分の実装と比較して「他の人がどう実装しているのか」を学ぶのは大変勉強になります。

おすすめが2つあります。1つ目は拙作のHinaOSです。本書と同じくRISC-V 32ビット向けの教育用OSです。マルチプロセッサ対応のマイクロカーネルOSで、TCP/IPプロトコルスタックも実装されています。筆者が書いたOSということもあり、本書を読んだ方なら比較的読みやすいでしょう。

2つ目はRISC-V版 xv6です。こちらは教育用UNIX風OSで、解説書 (英語)もあります。fork(2)のようなUNIX特有の機能の仕組みを学びたい方におすすめです。

新しい機能を追加しよう

本書では、カーネルの基本的な機能を実装しました。しかし、まだまだ実装できる機能はたくさんあります。例えば、次のような機能を実装してみると面白いでしょう。

HinaOSの実験テーマ集 もアイデア出しに役立つでしょう。