はじめに

本書では、小さなOSをゼロから少しずつ作っていきます。

OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基本機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。

本書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。

「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要があります。特に「ゼロから」の自作となると、ブート処理やページングといったデバッグが難しく挫折しやすい部分が冒頭に登場します。そこで本書では「自作OSをどうデバッグすればよいのか」も一緒に学んでいきます。

ただ、デバッグが辛い分、動いた時の感動もひとしおです。ぜひ本書を通じて、OS開発という楽しい世界を体験してみてください。