Linuxデバイスドライバプログラミング
Linuxのデバイスドライバ開発における基礎知識の習得から実装手法、デバッグ手法、既存ドライバのソースコードを読み解くコツまで、これ一冊で網羅。サーバ管理システムIPMIの活用など、現場で使える最新情報をオープンソースならではの情報量で提供する
第1章 Linuxデバイスドライバの概要
カーネルの動作、バージョン、デバイスドライバの位置付けなど
第2章 Linuxのライセンス
ソースコードの入手、GPLのポイント、LGPL、デバイスドライバのライセンスなど
第3章 デバイスドライバ開発の準備
ドライバ開発のポイント、開発に必要な機材、マシン構成、Linuxのコーディングスタイルなど
第4章 デバイスドライバの第一歩
動的/静的なデバイスドライバの作成、エントリポイントなど
第5章 ドライバプログラミングの基礎知識
コンテキスト、データモデル、仮想メモリ、システムコールハンドラの登録、udevなど
第6章 ドライバプログラミングの実際
IOCTL、64ビットカーネル、select/poll、procfs、seq_file、スリープとウェイクアップなど
第7章 ハードウェア制御
I/OマップドI/O、メモリマップドI/O、メモリバリア、volatile、インラインアセンブラなど
第8章 メモリ
Linuxカーネルのメモリ管理、スタック、スラブアロケータ、DMA、キャッシュコヒーレンシなど
第9章 タイマ
現在日時の管理、jiffiesによる管理、ウェイト、カーネルタイマなど
第10章 同期と排他
read-modify-write、アトミック操作、セマフォ、コンプリーション、スピンロックなど
第11章 割り込み
ドライバの割り込み処理、タスクレット、ワークキューなど
第12章 PCI
PCI、PCI Expressなど
第13章 シリアルバス
I2C、バス制御、データ転送方式、lm-sensorsパッケージなど
第14章 ACPI
ブートパラメータ、ACPI関連ツール、ACPIテーブル、電源管理など
第15章 IPMI
IPMIの概要、IPMI仕様書のポイント、IPMIドライバの組み込み、SEL、FRU、SDRなど
第16章 テストとデバッグ
デバイスドライバのテストとデバッグ、printkデバッグ、カーネルパニックからの解析など
第17章 ドライバ設計と実装の実際
ネットワークドライバの実装、PCIデバイスの認識、IOCTL、Media Independent Interfaceなど