Linuxカーネル解析入門

Linuxカーネル解析入門
Linuxカーネル解析入門
posted with amazlet on 07.08.13
平田 豊
工学社 (2006/01)
売り上げランキング: 141827

タイトルからはLinuxカーネル全般の解説を期待してしまうが、この本は最後の6章「ネットワークドライバを読む」を目的に、必要十分な内容を解説したものだと思う。Linuxカーネルのうち、実際多くがドライバであり、バグの多くもドライバに関係する(らしい)ので、カーネルと戯れるなら、できるだけ早い段階で読んでおきたい一冊。ただ、他のカーネル本と比べるとよい意味で「異色」ではあるので、本当に一冊目だったりすると厳しいかもしれない。

カーネル本には厚いものが多いので、この本のようにドライバに特化したり、前回詳解の「Linuxのブートプロセスを見る」のようにブートに特化した比較的薄い本を目的に合わせて選べるようになっていると、読む側としてはありがたいと思った。

最後に付け加えておくと、ドライバに特化しているのだが、それだけに排他の説明は実践的で分かりやすい。排他に関わる道具はいくつも有るのだが、どういうときにどれを使えばよいかぜんぜん分からなかったが、この
本で少し理解できた。

| | Comments (0) | TrackBack (0)

Linuxのブートプロセスを見る

Linuxのブートプロセスをみる (UNIXMAGAZINE COLLECTION)
白崎 博生
アスキー (2004/04/16)
売り上げランキング: 15796

Linuxの解説本は多々あるが、パソコンの電源を入れてからLinuxが/sbin/initを実行するまでの処理だけを詳解した本。ブートプロセスはハードのこと、カーネルのことなど、それなりに分かっていないと理解できないものだし、少々トリッキーなところもあり、ソースを眺めるだけでは分かりにくい(著者自身、かつて自力不足だったときそうだったといっているし)。

そもそも、電源を入れてハードが自身を初期化し終えた後に、最初に読み込まれ、実行されるプログラムは何なのか、下位互換性のために存在するリアルモードとプロテクトモードの切替え方だとか、CPUだけでなく割込みコントローラー等のチップの初期化など、これまで「○○ありき」でやってきた背景を読み解く手がかりになりそう。

また、プロセスの生成(clone)やプロセスの実行(execve)についても詳しい。特に、初期化に関わるケースだけを説明しているので、さまざまなプロセス生成のパターンを一度に説明されるよりも分かりやすかった。

もともとUNIX Magazineの特集・連載記事を書籍化したもの。書籍化に際して特に編集せずに1冊にまとまるあたりが、この記事やUNIX Magazineのクォリティの高さを表しているといえるだろう。バージョン2.4のソース解説で、2.6では古くなっている箇所もあることはある(ブートセクタは2.6ではサポートされない)。だが、バージョンによって大きく変わることもない箇所なので、理解の妨げにはならないだろう。むしろ、この本と2.6のソースを照らし合わせて、差異を補完する作業を練習だと思ってやってみると、理解がより深まるだろう。

| | Comments (0) | TrackBack (0)

Linuxカーネル解析入門

Linuxカーネル解析入門
Linuxカーネル解析入門
posted with amazlet on 07.07.27
平田 豊
工学社 (2006/01)
売り上げランキング: 44675
1,2章は入門向き。でもカーネルを読み進めていく上では確かにキーになるトピックを選んでいる。 3,4章がとても有用だった。割込み処理の通り一遍の説明にとどまらず、i8259AやAPICの説明、具体的な初期化コードの解説がよい。 5,6章もネットワークドライバを書く人は稀だろうが、読む人は少なくないと思う。PCIコンフィギュレーション空間、PCI BIOSの説明も、理解に必要十分なだけ選んでおり、分かりやすい。 用語にかならず「」が付くのが目障り。また、用語の定義をサボっている箇所があり、「AとBは別物です」とか言っているのだが、A,Bの定義がないので消化不良気味。

| | Comments (0) | TrackBack (0)

30日でできる! OS自作入門

30日でできる! OS自作入門
川合 秀実
毎日コミュニケーションズ (2006/03)
売り上げランキング: 1423
Linuxカーネルを自在にいじりまわせるようになるまでには、いろいろな方法があるのだろうが、どんな方法だとしても、それなりにギャップがある。だから書籍やネットを活用するのであり、関連図書やネットの情報源 もかなりの量存在する。よく聞くLinuxカーネルの勉強方法としては、目的を持って(たとえば既 存のモジュールに新機能を追加したいなど)、その部分を詳細に調べる、というものがあるが、そのココロは「習うより慣れろ」ということではないだろうか。しかし一方で、その目的すら定かではない場合はどうするの だろう。目的を持てるということは、Linuxでないが、ほかのOSのことはある程度わかっている、ということではないだろうか。そういう意味では、経験者、上級者向けの方法だと思う。 やはり初心者には、レベルにあった参考文献が必要である。「30日でできる! OS自作入門」は、著者も巻末で言っているように、ページングやファイルシステムなどのOS中でも重要な機能についての記述を欠いていたり、 一方でビデオ関連の話題はかなりしつこく解説しているなど、OSの教科書としてのバランスを欠いている(教科書じゃないからこれはアリなのだが)。 しかし、教科書で理論を学ぶのではなく、カーネルをいじりまわせるようになるための方法として、この本のアプローチも、また「習うより慣れろ」のもう一方の端点に位置づけることもできると思う。少し回りくどいのだ が、毎日少しずつ継続し、楽しみながら学べるのは良い方法である。それに、割り込みコントローラー等のハードの扱いも、シンプルなコードで説明があるので、こちらへの最初の足がかりとしてもよい。Linuxカーネル だと、過去の歴史を引きずる部分と、新しい技術を取り入れていく部分を共存させたり、ポータビリティのために少し複雑になっている。もちろん優れたコードなのだが、とっつきにくいのは仕方がない。制限がある代わ りにシンプルなコードを示す方法は、最初の理解にはとても有効である。 当然ながら、これ一冊でLinuxカーネルがわかるようにはならない。むしろLinuxとは無関係だから、Linuxカーネル関連図書は必読となる。でも、OSってどんなもの?どうやって作ったり、拡張していくもの?という点に ついて、少なくとも雰囲気くらいはつかめると思う。 また、読者の興味を優先し、我田引水になっていない点は、とてもよい。

| | Comments (0) | TrackBack (0)

自分で作るLinux OS

自分で作るLinux OS
自分で作るLinux OS
posted with amazlet on 07.06.12
日経Linux
日経BP社 (2006/07/19)
売り上げランキング: 20448

この本を読むと、「組み込みLinuxの定義は?」と問いたくなる。

・省電力マシンへ既存ディストリビューションをインストール
・USBメモリやコンパクトフラッシュへのインストール
・いわゆる組み込みボードへのインストール

というわけ方をしてるのだが、相互排他ではなくてすっきりしない。いろいろな情報や、場合別に具体的な手順があるのは悪くないのだが、第1部第2章part1-3と第2部第2章は完全に重複してる。とにかく雑多に記事をま
とめただけで、構成が非常に悪い。

内容としては、このレベルの情報を欲している読者はいるだろう。ごちゃごちゃ解説するより、具体的な手順を示すほうが、このようなテーマには向いている。ツールやURLの紹介も役に立つ。そういう点では、悪い本
だとはいえない。だが、繰り返しになるが、構成が悪いので、長く手元に置いておきたい一冊にはなりえない。

ちなみに、副題は「リーナス・トーバルス氏に追いつけ!」ですが、この本を読んでも追いつけませんから…

| | Comments (32) | TrackBack (3)

はじめて読む486

はじめて読む486―32ビットコンピュータをやさしく語る
蒲地 輝尚
アスキー (1994/09)
売り上げランキング: 52174

今から十ウン年前、「はじめて読むMASM」、「はじめて読む8086」を読んで、世界が広がったと思った。それを読んでる最中に486が発売され、「はじめて読む486」も出版された。でも、なぜか読まなかった。

今になって読んで、あの時読むべきだったと後悔する。486になってはじめて、パソコンに本格的なOSを走らせるのに十分な機能をもったCPUが搭載されたのだ。OSとCPUの協力関係が良くわかる内容で、しかも「~MASM」と「~8086」のように、具体的なサンプルコードが示されていてわかりやすい。

セグメント方式など、いまではそれほど重要ではなくなった内容の記述がかなりあるが、それでも今でも内容は古くなっていないと思う(サンプルを動作させる環境は古くなってしまったが)。次版はないと思うが、あるとしたら、セグメント方式の説明を削り、分量を減らしてくれると良いなと思う。

| | Comments (0) | TrackBack (0)

Binary Hacks

Binary Hacks ―ハッカー秘伝のテクニック100選
高林 哲 鵜飼 文敏 佐藤 祐介 浜地 慎一郎 首藤 一幸
オライリー・ジャパン (2006/11/14)
売り上げランキング: 6976

4章以外は大体読んだ。2章が一番ためになった。objdumpやreadelfの使い方、ローダーの仕組みなどが特に。リンカーのスクリプトの使い方などあると、もっと良かった。まだまだねたに困らない領域のように思うので、大幅改定した次版など出版されることがあったら良いなと思う。

| | Comments (0) | TrackBack (0)