「ゼロからのOS自作入門 」を読みました
こんにちは。salachikeです。 昨日モデルナ社のコロナワクチンを接種したのですが、かなりの筋肉痛に襲われています。(左腕が全く上がらない...)
少し前に「ゼロからのOS自作入門」を読み終えたので、読了エントリです。
購入から最後の章の実装が終わるまで、75日かかりました。 最初のころは隔日ごとに3~4時間やっていましたが、最後らへんは毎日4~5時間ぐらいやっていました。
ゼロからのOS自作入門 というTwitterのハッシュタグを見ると、1ヶ月で終えられている方もいてヒエーという感じです。
最終的な完成品を載せたツイートがこちらです。 1つの章が終わるたびに、リプライでスクショを貼っていったので興味のある人は見てみてください。
30章まで。TextViewerやImageViwerを作りました!#ゼロからのOS自作入門 pic.twitter.com/YhA2z8eM1x
— サラダチキン (@salachike) 2021年6月6日
個人的に良いと思ったことろは以下の2点です。
実装ベースでのイメージを持てる
OSの入門として、[試して理解]Linuxのしくみ という本を読んだので、システムコールやデマンドページングといった 単語について、大まかにどのようなことをするかなどの概念は知っていました。 ただこれらがどのように実現されるのかは、全くわかりませんでした。
ゼロからのOS自作入門の各章では実際にコードを書いて実装するので、 より解像度の高い理解ができると思います。
例えば CPU上で動作するタスクが切り替わるコンテキストスイッチは、 現在のタスクのレジスタ値を全てスタック上に積み、新しいタスクのレジスタの値を格納させるアセンブリコードを書くことで、 タスクの切り替えを実現します。
自分で考え、機能を拡張する機会がある
基本的にこの本はソースコードの写経がメインの作業になるのですが、 読者課題として追加機能の実装 (相対パスの実装など) が提案されています。
写経するだけでも十二分に勉強になると思いますが、読者課題に取り組むと 何となく分かっているような気になっていた点にも気づけるので、取り組むのをお勧めします。
最後に
3000円強でこれほどの内容を、日本語で学べるのは素晴らしいと思います!時間はかかりますが、やり遂げた達成感は大きいので迷っている方は是非取り組んでみてください。
今はちょっと気分を変えて、データベースシステム自作の本に取り組んでいます。 洋書ですが、頑張って読了したいと思います。