LinuxのもとになったというMINXのソースコードを通じてUNIX同等の内容の仕組みを学習することのできるTanenbaum教授の教科書です。UNIXがどういう仕組みで動いているかについて抽象的に知るだけであれば、他の本でOSの仕組みを勉強すればいいのでしょうが、それが理解しうるソースコードベースで勉強するのはこの本かと思い、1年くらいかけて少しずつ勉強しました。これをベースにLinuxができたという本ですね。
現在のLinux, FreeBSDだとあまりにソースコードが巨大で全部理解するのは難しいと思ったのでこの教育用にシンプルに書かれているソースを各まとまりごとにソースを追いかけながら読んでいきました。
プロセス、IO、メモリ管理、ファイルシステムとそれぞれに説明が分かれているのですが、ソースコード自体が400頁近くあり、それを一つずつ追いかけて動作を理解しながら読むのは大変骨が折れますが、実際のプログラムの書かれ方、Cでのデータ構造、アルゴリズムの使われ方の上質な例がたくさん出てきて大変勉強になります。これらのヘッダファイル、プログラムが強調して一つのOSとして動いているのは、純粋にすごいなぁと思います。
ハードを触るところについてはどうしてもアセンブラとなりますが、それ以外の全体のOSの仕組みのところは、「よくできているな」という感じです。
コンパイラとOSは簡単なものでいいのでいつか自分で作ってみたいなぁというのが、実用的には役に立たないのは分かっていつつもそこにロマン?を感じてしまいますね。
コメント