インターネットデパート - 取扱い商品数1000万点以上の通販サイト。送料無料商品も多数あります。

Linux Device Drivers

価格: ¥3,315
カテゴリ: ペーパーバック
ブランド: Oreilly & Associates Inc
Amazon.co.jpで確認
   Linux OSで周辺機器のサポートを行う、あるいは新しいハードウェアを開発してLinuxでそれを利用したい読者のための1冊。Unixマーケットにおける最急成長セグメントであるLinuxは、多くのアプリケーション分野で熱狂的な支持者を獲得し、エンベデッド・システム向けの優れたプラットフォームとしてさらなる認知を深めている。第2版にしてすでに定番となった本書であるが、幅広いデバイス群のドライバの書き方について、従来「口コミ」でしか伝わらなかった情報や暗号めいたソースコードコメントを明確にしている。

   Linuxカーネルのバージョン2.4は、デバイス・ドライバに大幅な変更が加えられており、多くのアクティビティーを単純化しているが、ドライバをより効率的かつフレキシブルにする新機能はわずかである。本第2版は新しいプロセッサとバスに合わせ、これらの変更点をもれなくカバーしている。

   カーネルハッカーでなくても、C言語の理解と、Unixのシステム・コールにおける、ある程度の基礎知識さえあれば、本書を理解し楽しむことができる。本書ではキャラクター・デバイス、ブロック・デバイス、ネットワーク・インタフェース用のドライバをすべてステップ・バイ・ステップ形式で説明し、また、ドライバデザインに関する問題を示唆する多面的な事例を挙げて解説している。これらの事例の実行にあたって、特別なハードウェアは必要ではない。第2版での大きな変更点はシンメトリックマルチプロセッシング(SMP)、ロック、新しいCPU、最近サポートされはじめたバスに関する考察である。OSがどのように機能するのかに興味があるのならば、本書はアドレス空間、非同期イベント、I/Oに関する見識を与えてくれる。

   移植性は本書において重大な関心事である。本書はバージョン2.4を中心に書かれているが、可能なかぎりカーネル2.0までさかのぼって情報を盛り込んでいる。また、本書は異なるハードウェアプラットフォーム間で移植性をどうやって最大化するかを教えてくれる。本書中の例はIA32(PC)とIA64、PowerPC、SPARCとSPARC64、Alpha、ARM、そしてMIPS上でテストされている。

整理された2.4カーネルの情報源 ★★★★☆
1st Editionの日本語版を持っていますが、最新の2.4カーネルの情報を得るのに苦労していました。この2nd Editionでは、最新の2.4カーネルを中心に説明されており、2.2カーネルとの違いは各章の最後に説明する形式になっています。特にネットワークドライバは2.4カーネルで大きく変更されており、整理された情報は非常に有用でした。キャラクタドライバについては、必要な情報が分散している印象がありました。また、1stEditionの誤字が一部修正されていないのも気になりました。2.4カーネル対応のドライバを開発するには必須の本だと思います。日本語版の早期の出版も望みます。
ドライバ書き初心者には必携! ★★★★☆
ソフトウェアといっても、デバイスドライバはカーネルと密接する、微妙で記述の難しいプログラムだとしられている。いざ、自分でデバイスドライバをプログラムしてみろと言われても、ドライバを書くときにはあまり資料がない。しかたなく、以前はソースコードをたどって予測したり、Linuxのバージョン遅れのドキュメントを引き引き学んでいた。

しかし、この本さえあれば、もうドライバのソースコードを長々たどる必要も、1.xのソースしかかいてないドキュメントを当てにする苦痛から開放されるだろう。

私が挙げたいこの本の長所は以下の3つである。

1:カーネル内の知識がさほどなくてもソフトウェアデバイスなら書けるようになる。

この本自体が、K&RのC言語を理解している程度のプログラマを前提にしているので、表現が平易でわかりやすい。

2:デバグ手法用例が豊富。

デバイスドライバを書くときに最も時間がかかる作業とされているのは、デバグである。この点に関しても一章を割いて、起動されたデバイスドライバからどのように情報を取得すればいいのか細かな提案が数多く記述されている。

3:デバイスドライバ周りの基礎を学習できる。

実際に、デバイスドライバを書かなくても、ただ、この本を読むだけでソフトウェアデバイスはどのように実現されているか学ぶことができる。実際に、私たちが行き詰まるのはこのような基本的事項の理解が足りないからということが非常に多いからである。

短所としては、デバイスドライバとLinux自体が開発速度の速いソフトウェアであるために、この書自体が古くなってしまう恐れがあることである。