« 今日の日記 | Main | 電卓 »

2007.11.02

MINIX本

# 昨日、寝ぼけ眼で一度アップしましたが、朝見てみると熱い思いが足りなかったので少し書き足しました。

MINIX本の魅力というのは、OSに関しての最低限の知識を与えつつ、その中の一つをCで実装するという点。だから、○○が知りたいからMINIXのソースを見るというのは、あまり効率が良くない気がする。どっしり座って、前から順番に読んだ方が面白いし、説明を読んでからソースを見た方が理解が早い。僕の中では、コードよりも本文の方が価値が高い。

デッドロックについても、アルゴリムや検討事項を書いておきながら、結局MINIXの実装では何もしていない(ダチョウアルゴリズムらしい)。ちょっww、これだけ書いてあるんだから、なんか仕組み入れろよ!と突っ込むのが正しい読み方だと思う。OSを書こうって思うときは、ブートとファイルシステム入出力で途方に暮れるから、スケジューラだけ作ってみたいとか、そういう人の最初の一歩には良いんじゃないかと。でもすぐにLinuxとか次のOSに移っちゃうじゃないかな。なんかブートさせたいだけなら30日OS本もある。

この本が出ていた頃というのは、OSの実装について体系だって書かれた本が少なかったと思う。4.3の悪魔本386 BSDカ-ネルソ-スコ-ドの秘密くらいじゃないかな。見落としもいっぱいあると思うが、Amazonで気楽に技術書を探す時代でも無かったので、本屋に無い本は存在しない本だった。最前線UNIXのカーネルLions’ Commentary on UNIXはもう少し後だ。どの本も敷居が高そうで、頭から予備知識なしで読んで行くにはMINIX本がベストでした。256本があったのもうれしい。今だったら、googleでいろいろ調べられるし、あえてMINIX本を読まなくても好きなOSから勉強始めることができる。Virtual Machimeも無料で複数あるし、パソコン壊す心配もない。勉強の仕方も変わったと思う。Tanenbaum先生に怒られる覚悟で言うと、MINIXの歴史的な役割は終わったのかなと思う。MINIX 3 - Improvements since V2の「The kernel has been heavily rewritten, cleaned up, and reduced to under 4000 lines of code」は、もっと評価されても良い。このページ見ていたら、もう一回ちゃんと勉強したくなってきたじゃないか。どうしてくれる。

ピンポイントで読むとしたら、スケジューリングの所も良いけど、fork、execの所と、brk周りはわかりやすかったので勧めておきます。ただ、今動いているOSはもっと複雑なことをしているというのは、頭に入れておいて読んだ方が良いです。あくまでとっかかりとして。

そういえば、このころの書店ってLinuxとFreeBSDって同じくらい本棚の場所取ってたんだよ。場所によったらインストール本がずらっと並んで、BSD関係の方が多かったと思う。MINIXつながりで言うと256本も面白かった。FreeBSDの256本と併せて、貧乏くさいテクニックがいっぱい載っていた。引数で動作を変えるクランチバイナリとか(今のbusyboxに繋がる)、FDDのフォーマットを変えて無理矢理データを押し込むとか。僕はこの本でbrkの動きが分かり、C言語の256本でMS-DOSでのmallocはUNIXのsbrkの動作をまねている。だからfreeしても領域は再利用されない、という説明を読んで、ああなるほどと思ったりもした。

今、パラパラとページをめくってみると、意外にボリューム少ない。今なら一ヶ月あれば十分読めそうな気がするが、勉強したときは半年以上かかりっきりで読んでいた。コードコンプリートも一年がかりで読んだし。最初の頃は1冊の技術書読むのはそれくらい時間がかかった。今は、年を取って感動する事が減ったのか、あとで詳しく知りたくなったらgoogleとか思うようになったので、一冊の本をしっかり読むのは減ったと思う。

MINIXの魅力を書くつもりが、いつの間にかただの昔話に!

まとめ:
OSって何か分からないけど作ってみたい、って人にはお勧めしますが、すでに興味のあるOSが有るのならそちらの書籍を買って読んだ方が良いと思います。小難しい話抜きで、何かブートさせたいなら、30日OSがお勧め。

|

« 今日の日記 | Main | 電卓 »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/18154/16949323

Listed below are links to weblogs that reference MINIX本:

« 今日の日記 | Main | 電卓 »