まえがき
[1-1] 「Linuxカーネル」とは [1-2] 「Linuxカーネル」の入手先 [1-3] ソース・コードを取り出す [1-4] ソース・コードの参照方法 [1-5] 「RPM」からのカーネル・ソースのインストール [1-6] カーネル・ファイル [1-7] カーネル構築のための準備 [1-8] カーネル・コンフィグレーション [1-9] 「カーネル本体」と「カーネル・モジュール」のビルド [1-10] 「カーネル・モジュール」と「カーネル本体」のインストール [1-11] Linuxマシンへの接続方法 [1-12] 「ソース・コード」の読み方 [1-13] SystemTap
[2-1] 「gcc」に関する情報源1 [2-2] 「gcc」拡張機能 [2-3] 構造体のメンバ初期化 [2-4] 64ビット関数 [2-5] マクロでの丸括弧 [2-6] 可変引数を取れるマクロ [2-7] 三項演算子 [2-8] インライン関数 [2-9] コメント [2-10] 列挙型 [2-11] アセンブラ [2-12] アセンブラの基本文法 [2-13] インライン・アセンブラの読み方 [2-14] 純粋なアセンブラ・コードの読み方
[3-1] コンテキストを理解する [3-2] マルチ・スレッド・アプリケーション [3-3] 「ユーザー・コンテキスト」でクリティカル・セクションを保護する [3-4] 「割り込みコンテキスト」でクリティカル・セクションを保護する(シングル・プロセッサ編) [3-5] 「割り込みコンテキスト」でクリティカル・セクションを保護する(マルチ・プロセッサ編)
[4-1] 「割り込み」とは [4-2] 「割り込み」の長所と短所 [4-3] 「割り込み処理」の詳細 [4-4] 「レガシー割り込みコントローラ」の実装 [4-5] 「アドバンスド割り込みコントローラ」の実装 [4-6] プロセッサの割り込み処理
[5-1] 「PCI」とは [5-2] 「PCI」の基礎知識 [5-3] 「PCIデバイス」の見方 [5-4] プラグ&プレイの秘密 [5-5] Linux上での「PCIコンフィグレーション空間」の参照方法 [5-6] 「IA-32」における「PCIコンフィグレーション空間」の位置付け [5-7] PCI BIOS [5-8] ハンドラの選択 [5-9] 実際に使われるハンドラの選別 [5-10] まとめ
[6-1] 「Ethernet」を知る [6-2] 「Ethernet」のチップを調べる [6-3] 「Ethernetチップ」の仕様書を入手する [6-4] ネットワーク系コマンド [6-5] ドライバの「ビルド」と「組み込み」「取り外し」 [6-6] 初期化用エントリ・ポイント [6-7] ドライバのケーネルへの組み込み [6-8] ネットワーク・ドライバにおける初期化処理 [6-9] レジスタ・アクセス [6-10] カード・リセット [6-11] 「MACアドレス」の設定 [6-12] ハンドラの登録 [6-13] 「net_device」構造体の完成 [6-14] カーネル・バッファへの出力 [6-15] ドライバのアンロード処理 [6-16] インターフェイスのUP [6-17] カーネル・スレッド [6-18] インターフェイスのdown [6-19] パケットの送信 [6-20] 送信完了割り込み [6-21] 送信完了タイム・アウト [6-22] パケットの受信 [6-23] まとめ
[7-1] printf関数 [7-2] コンソール出力の全貌 [7-3] システム・コール [7-4] glibc [7-5] 「システム・コール」から「カーネル」への移動 [7-6] 「カーネル」の「システム・コール」処理 [7-7] VFS [7-8] 「ファイルシステム」の「関数ポインタ」設定 [7-9] 端末制御 [7-10] TTYドライバ [7-11] N_TTYドライバ [7-12] シリアルポート・ドライバ
索引
※ 内容が一部異なる場合があります。発売日は、東京の発売日であり、地域によっては1〜2日程度遅れることがあります。あらかじめご了承ください。
|