次のページ 前のページ 目次へ

7. Linux カーネルソースツリーツアー

7.1 ディレクトリごとの大雑把な説明

Documentation/

ドライバなどに関する文書

arch/

アーキテクチャ依存コード
ブートストラップ・割り込み処理・メモリ周りの操作など

i386/

x86 系ですね

arm/

ARM

mips/

32bit MIPS

mips64/

64bit MIPS

などなど

drivers/

各デバイスドライバ

fs/

ファイルシステム関係.
といっても,デバイス非依存の,ext2 などの論理フォーマットに関するあたりです.

include/

ヘッダファイル asm-アーキテクチャ名,のディレクトリに,アーキテクチャ依存のヘッ ダファイルが格納されています.

init/

init/main.c で,init を起動しています.

kernel/

kernel/printk.c で printk() が定義されています.

7.2 3つの入口

Linux カーネルのソースを読もうとする場合,どこから読んでいいかわからない,という話をよく聞きます.

Linux カーネルには大きく分けて次の 3 つの入口があります.

7.3 ブート

これは,Linux カーネルの起動時に通るパスです.

MIPS の場合,

という経路を取ります.

この順番にたどっていけばわかると思いますが,ハードウェアや内部変数を初期化し,最終的には init/main.c で init プロセスを起動しシャットダウン,という処理を行なっています.

7.4 割り込み

ハードウェアからの割り込み信号を受信した時に通るパスです.

MIPS の場合,例えば Au1000 CPU の場合では

という経路をたどります.

処理の大まかな手順としては

となります.

7.5 システムコール

もう 1 つの経路はシステムコールです. 一般にユーザプロセスからシステムコールはソフトウェア割り込みでコールされます.


次のページ 前のページ 目次へ