誕生日にはついに自前の悪魔本も購入していたのだった

2007/07/13

以前から欲しい欲しいと思っていた本を買っていたのだった。でも,でかくて持ち歩けない。

本書は FreeBSD のカーネル解説本で,その手のスジにとってはいわずもがなのバイブルになっています。これまでは図書館で何度も借りていたんですけれど,いい加減買うことにしました。こんなもん2週間で読めるかっつーの。

カーネルの解説本を見ていると,やはり趣旨によって書かれているレベル(※難易ではない)も違うわけで,ソースコードを丸写ししたような実装寄りのモノ(コード解説みたいなもの)から概念的な説明を中心にするものまで多岐に亘ります。その点,本書はどちらかというと概念的な説明や設計思想を中心にしたもので,具体的な実装の話題は合間にちょこちょこと入っている構成になっています。おそらく,ここら辺からの説明の方が,実際にソースを読む手掛かりとしては丁度いいんじゃないかと思います。

実装寄りの解説本としては,ブートプロセスだけですけど,こちらあたりが参考になるのかな……。

カーネルのソースは,この頃ぼちぼち読んでいるんですけれど,普通のプログラムを読むのと異なるところは,ハードウェアも踏まえて何をしたいのかが分かっていないといけないところなんじゃないでしょうか。例えば,仮想記憶のような重要な機能ひとつを取ってみても,「二次記憶を背景にした論理的なメモリ空間が云々……」みたいな,概念的な捉え方では足りないわけで,具体的にハードウェアがどこまでそれをサポートしていて,OS(FreeBSD)がどのようにその資源を扱っているのかとかいったもんを見なくちゃいけないんだと思います。そういうわけで,カーネル本を読むには FreeBSD だけじゃなくて,(例えば)x86系の CPU についても踏まえる必要がある。んでもって,本書(悪魔本)の場合,ハードウェアの話はそこそこで,既知のものとして扱っている,と。

実際,CPU の話を一旦知っておくと,本書はかなり読み易くできていて,割とサクサクと読めてしまいます。あたしは以下のような本をぼちぼち読んでいたんですけど,随分と基礎知識が入りました。

以前もここで紹介した本。x86系の CPU は下位互換性があるので,486でも十分に現在の CPU を知ることができます。また,本書は具体的に CPU をいぢるコードも紹介されているので,どこのレジスタをいぢって(CPU の)仮想記憶機能を有効にするのか,みたいな話が具体的に分かります。処理系がちょっと古いのでとまどうかもしれませんけど,実際にコーディングするわけではないので,「へぇーこんな風に実装するんだー」みたいな雰囲気が分かればいいんじゃないかと思います。

そういうわけで,これからしばらくは,カーネルを読む日々になりそうな感じ。GLOBAL 入れよっと。

Site Navigation
SNS Accounts (@aian)

普段はここら辺に住んでいます.