詳解 Linuxカーネル 第2版
- Daniel P. Bovet, Marco Cesati 著、高橋 浩和 監訳、杉田 由美子, 高杉 昌督, 畑崎 恵介, 平松 雅巳, 安井 隆宏 訳
- 2003年06月 発行
- 892ページ
- ISBN4-87311-133-1
- フォーマット
- 原書: Understanding the Linux Kernel, 2nd Edition
この商品は品切れ再入荷未定です
内容
Linuxのソースコードは誰でも目にすることができます。本書はこの恩恵を最大限に活かすための羅針盤です。実際に大学で使われている講義ノートを基に書かれたもので、複雑で難解なLinuxカーネルの仕組みを基礎からていねいに説明しています。Linuxカーネルの基本機能を網羅し、ハードウェア依存部分についても踏み込んだ解説がされています。また、日本語版ではLinux2.6の情報を追加、Linuxの最新機能を概観することもできます。Linuxのソースコードを理解する上でのガイドブックして、オペレーティングシステムの本格的な解説書として最適の一冊です。
関連書籍
目次
監訳者まえがき はじめに 1章 概要 1.1 Linuxと他のUNIX系カーネル 1.2 ハードウェア依存 1.3 Linuxのバージョン 1.4 オペレーティングシステムの基本概念 1.5 UNIXファイルシステムの概要 1.6 UNIXカーネルの概要 2章 メモリアドレッシング 2.1 メモリアドレス 2.2 ハードウェアのセグメント機構 2.3 Linuxのセグメント機構 2.4 ハードウェアのページング機構 2.5 Linuxのページング機構 3章 プロセス 3.1 プロセス、ライトウェイトプロセス、スレッド 3.2 プロセスディスクリプタ 3.3 プロセス切り替え 3.4 プロセスの生成 3.5 プロセスの破棄 3.6 Linux 2.6では 4章 割り込みと例外 4.1 割り込み信号の役割 4.2 割り込みと例外 4.3 例外および割り込み処理のネスト 4.4 割り込みディスクリプタテーブルの初期化 4.5 例外処理 4.6 割り込み処理 4.7 ソフト割り込み、タスクレット、ボトムハーフ 4.8 割り込みおよび例外からの復帰 4.9 Linux 2.6では 5章 カーネルの同期処理 5.1 カーネル実行パス 5.2 同期の必要がない場合 5.3 同期プリミティブ 5.4 カーネルデータアクセスの同期 5.5 競合状態回避の例 5.6 Linux 2.6では 6章 時間管理 6.1 ハードウェアクロック 6.2 時間管理の仕組み 6.3 CPUのタイムシェアリング(時分割) 6.4 時刻と日付の更新 6.5 統計情報の更新 6.6 ソフトウェアタイマ 6.7 時間管理関連のシステムコール 6.8 Linux 2.6では 7章 メモリ管理 7.1 ページフレームの管理 7.2 メモリ領域の管理 7.3 非連続メモリ領域の管理 7.4 Linux 2.6では 8章 プロセスアドレス空間 8.1 プロセスのアドレス空間 8.2 メモリディスクリプタ 8.3 メモリリージョン 8.4 ページフォルト例外ハンドラ 8.5 プロセスアドレス空間の生成と削除 8.6 ヒープ領域の管理 8.7 Linux 2.6では 9章 システムコール 9.1 POSIX APIとシステムコール 9.2 システムコールハンドラとシステムコールサービスルーチン 9.3 カーネルラッパールーチン 9.4 Linux 2.6では 10章 シグナル 10.1 シグナルの役割 10.2 シグナルの生成 10.3 シグナルの配信 10.4 シグナル処理関連のシステムコール 10.5 Linux 2.6では 11章 プロセススケジューリング 11.1 スケジューリングポリシー 11.2 スケジューリングアルゴリズム 11.3 スケジューリング関連のシステムコール 11.4 Linux 2.6では 12章 仮想ファイルシステム(VFS) 12.1 仮想ファイルシステム(VFS)の役割 12.2 VFSデータ構造 12.3 ファイルシステム種別 12.4 ファイルシステムのマウント 12.5 パス名の検索 12.6 VFSシステムコールの実装 12.7 ファイルロック 12.8 Linux 2.6では 13章 I/Oデバイスの管理 13.1 I/Oアーキテクチャ 13.2 デバイスファイル 13.3 デバイスドライバ 13.4 ブロック型デバイスドライバ 13.5 キャラクタ型デバイスドライバ 13.6 Linux 2.6では 14章 ディスクキャッシュ 14.1 ページキャッシュ 14.2 バッファキャッシュ 14.3 Linux 2.6では 15章 ファイルアクセス 15.1 ファイルの読み取りと書き込み 15.2 メモリマッピング 15.3 ダイレクトI/O転送 15.4 Linux 2.6では 16章 スワップ処理:メモリ解放の方法 16.1 スワップ処理とは何か 16.2 スワップ領域 16.3 スワップキャッシュ 16.4 スワップページの転送 16.5 ページのスワップアウト 16.6 ページのスワップイン 16.7 ページフレームの回収 16.8 Linux 2.6では 17章 Ext2、Ext3ファイルシステム 17.1 Ext2の一般的な特徴 17.2 Ext2ディスク上のデータ構造 17.3 Ext2メモリ上のデータ構造 17.4 Ext2ファイルシステムの作成 17.5 Ext2関数 17.6 Ext2ディスク領域の管理 17.7 Ext3ファイルシステム 17.8 Linux 2.6では 18章 ネットワーク 18.1 主要なネットワークデータ構造 18.2 ネットワーク関連のシステムコール 18.3 ネットワークカードへのパケット送信処理 18.4 ネットワークカードからのパケット受信処理 18.5 Linux 2.6では 19章 プロセス間通信 19.1 パイプ 19.2 FIFO(名前付きパイプ) 19.3 System VのIPC 19.4 Linux 2.6では 20章 プログラムの実行 20.1 実行ファイル 20.2 実行形式 20.3 実行ドメイン 20.4 Exec関数 20.5 Linux 2.6では 付録A システムの起動 A.1 先史時代:BIOS A.2 古代:ブートローダ A.3 中世:setup()関数 A.4 ルネッサンス:startup_32()関数 A.5 近世:start_kernel()関数 付録B モジュール B.1 モジュールにすべきか? B.2 モジュールの実装 B.3 モジュールの組み込みと削除 B.4 オンデマンドなモジュール組み込み 付録C ソースコードの構造 参考文献 ソースコード索引 索引