目次
監訳者まえがき
はじめに
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でのページング
2.6 Linux 2.4では
3章 プロセス
3.1 プロセスディスクリプタ
3.2 プロセス切り替え
3.3 プロセスの生成
3.4 プロセスの破棄
3.5 Linux 2.4では
4章 割り込みと例外
4.1 割り込み信号の役割
4.2 割り込みと例外
4.3 例外および割り込み処理のネスト
4.4 割り込みディスクリプタテーブルの初期化
4.5 例外処理
4.6 割り込み処理
4.7 割り込みおよび例外からの復帰
4.8 Linux 2.4では
5章 時間管理
5.1 ハードウェアクロック
5.2 タイマ割り込みハンドラ
5.3 PITの割り込みサービスルーチン
5.4 TIMER_BHボトムハーフの機能
5.5 時間管理関連のシステムコール
5.6 Linux 2.4では
6章 メモリ管理
6.1 ページフレーム管理
6.2 メモリ領域の管理
6.3 非連続メモリ領域の管理
6.4 Linux 2.4では
7章 プロセスアドレス空間
7.1 プロセスのアドレス空間
7.2 メモリディスクリプタ
7.3 メモリリージョン
7.4 ページフォルト例外ハンドラ
7.5 プロセスアドレス空間の生成と削除
7.6 ヒープ領域の管理
7.7 Linux 2.4では
8章 システムコール
8.1 POSIX APIとシステムコール
8.2 システムコールハンドラとシステムコールサービスルーチン
8.3 ラッパールーチン
8.4 Linux 2.4では
9章 シグナル
9.1 シグナルの役割
9.2 シグナルの送信
9.3 シグナルの受信
9.4 リアルタイムシグナル
9.5 シグナル処理関連のシステムコール
9.6 Linux 2.4では
10章 プロセススケジューリング
10.1 スケジューリングポリシー
10.2 スケジューリングアルゴリズム
10.3 スケジューリング関連のシステムコール
10.4 Linux 2.4では
11章 カーネルの同期処理
11.1 カーネル実行パス
11.2 同期の方法
11.3 SMPのアーキテクチャ
11.4 SMP版Linuxカーネル
11.5 Linux 2.4では
12章 仮想ファイルシステム
12.1 VFSの役割
12.2 VFSデータ構造
12.3 ファイルシステムのマウント
12.4 パス名の検索
12.5 VFSシステムコールの実装
12.6 ファイルロック
12.7 Linux 2.4では
13章 I/Oデバイスの管理
13.1 I/Oアーキテクチャ
13.2 I/Oデバイスとファイル
13.3 デバイスドライバ
13.4 キャラクタ型デバイスの操作
13.5 ブロック型デバイスの操作
13.6 ページI/O操作
13.7 Linux 2.4では
14章 ディスクキャッシュ
14.1 バッファキャッシュ
14.2 ページキャッシュ
14.3 Linux 2.4では
15章 通常ファイルへのアクセス
15.1 通常ファイルの読み取りと書き込み
15.2 メモリマッピング
15.3 Linux 2.4では
16章 スワップ処理:メモリ解放の方法
16.1 スワップ処理とは何か
16.2 スワップ領域
16.3 スワップキャッシュ
16.4 スワップページの転送
16.5 ページスワップアウト
16.6 ページスワップイン
16.7 ページフレームの解放
16.8 Linux 2.4では
17章 Ext2ファイルシステム
17.1 一般的な特徴
17.2 ディスク上のデータ構造
17.3 メモリ上のデータ構造
17.4 ファイルシステムの作成
17.5 Ext2関数
17.6 ディスク領域の管理
17.7 Ext2の通常ファイルの読み取りと書き込み
17.8 Linux 2.4では
18章 プロセス間通信
18.1 パイプ
18.2 FIFO
18.3 System VのIPC
18.4 Linux 2.4では
19章 プログラムの実行
19.1 実行ファイル
19.2 実行形式
19.3 実行ドメイン
19.4 Exec系関数
19.5 Linux 2.4では
付録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 ソースコードの構造
参考文献
ソースコード索引
索引
|