TOP新刊既刊I/OサポートQ&AI/O WEB版通販お問い合わせ
 既刊 > 2011年 > 7月 書名検索: 詳細検索...
基礎からわかるカーネル・プログラミング!大幅改訂!
Linuxカーネル解析入門[増補版]
平田 豊 著
2011年 7月16日発売   B5変型判  400ページ 定価 \3,024(本体 \2,800)
   ISBN978-4-7775-1615-5 C3004 \2800E
≪基礎から分かるカーネル・プログラミング!≫

 本書ではLinuxカーネル全体を知るために、その土台となる前提知識として、「ソースコードの読み方」から、「ビルドするために使うgccに関する基礎知識」「同期処理」「割り込み処理」「PCIデバイス」「デバイスドライバ」について取り上げています。

 「Linux」は、携帯電話やスマートフォンなどのモバイル領域で採用が進むなど、「組み込み」分野での利用が活発化しており、今後もデジタルTVなどの普及によって、家電機器における採用も進んでいくと予想されています。そのため、現在では、Linuxをベースとした組み込みソフトの開発技術者の育成と増員が急務になりました。

 Linuxを製品に利用するには、「Linuxカーネル」の仕組みを理解していなければなりません。
 「Linuxカーネル」は「C言語」と「アセンブラ」で記述されているのですが、単純に言語文法を知っているだけでは、ソースコードを読み解くことはできません。
 しかし、カーネルのプログラミングには基礎となる考え方があり、それらをしっかり押さえておけば、少しずつですが、カーネルを読み進めていくことができるようになります。

※本書は、2006年1月に刊行した「Linuxカーネル解析入門」(ISBN978-4-7775-1189-1)を大幅に改訂するとともに、より詳しく知識を得るために、新たに「printf関数」が実際のカーネル内部でどのような動きをしているのかを加筆したものです。
■ 主な内容 ■
CONTENTS
 まえがき

 第0章  カーネルを深く理解する

 第1章  カーネルの世界へようこそ!
 [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章  gccプログラミング
 [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章  同期と排他
 [3-1] コンテキストを理解する
 [3-2] マルチ・スレッド・アプリケーション
 [3-3] 「ユーザー・コンテキスト」でクリティカル・セクションを保護する
 [3-4] 「割り込みコンテキスト」でクリティカル・セクションを保護する(シングル・プロセッサ編)
 [3-5] 「割り込みコンテキスト」でクリティカル・セクションを保護する(マルチ・プロセッサ編)

 第4章  割り込み
 [4-1] 「割り込み」とは
 [4-2] 「割り込み」の長所と短所
 [4-3] 「割り込み処理」の詳細
 [4-4] 「レガシー割り込みコントローラ」の実装
 [4-5] 「アドバンスド割り込みコントローラ」の実装
 [4-6] プロセッサの割り込み処理

 第5章  PCI
 [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章  ネットワーク・ドライバを読む
 [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章  「Hello world」を追い掛ける
 [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日程度遅れることがあります。あらかじめご了承ください。

本書内容に関するご質問は、こちら
通信販売
在庫あり
サポート情報
ご意見・ご質問

内容見本