kernelおよびシステム初期化のプロセス


1.Kernel初期化プロセス:
a、設備探知
b、駆動初期化(initramfs)ファイルから駆動モジュールをロードする場合がある)
c、ルートファイルシステムを読み取り専用でマウントする.
d、最初のプロセスinitをマウントする(PID:1)
e、intプロセスのプロファイル/etc/inittab
f、/etc/inittabファイルのフォーマット
     id:runlevels:action:process
id:識別子
runlevels:この行を実行するレベル
Action:この行はどのような場合に実行されますか
process:プログラムを実行するには
      action:
initdefault:デフォルトの実行レベルを設定する
Sysinit:システム初期化
wait:待機レベルがこのレベルに切り替わったときに実行
respawn:プログラムが終了すると再起動します
id:3:initdefault:デフォルトの起動レベルを設定する
      si::sysinit:/etc/rc.d/rc.Sysinit設定システム初期化時に実行するスクリプト
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

2./etc/rc.d/rc.Sysinitファイルが完了したタスク:
1、udevとselinuxをアクティブにする
2、/etc/sysctlによる.confファイル、カーネルパラメータを設定する
3、クロックの設定
4、マウントキーボードマッピング
5、交換パーティションの有効化
6、ホスト名の設定
7、ルートファイルシステムを検査し、読み書き方式で再マウントする
8、RAIDとLVM設備の活性化
9、ディスク割当の有効化
10、/etc/fstabに基づいて、他のファイルシステムを検査してマウントする
11、期限切れのロックとPIDファイルを整理する
3./etc/rc.d/rc.Sysinitスクリプトは、実行レベル選択に基づいて、対応するディレクトリのスクリプト(サービス起動または停止)を実行します.
l3:3:wait:/etc/rc.d/rc 3

運転レベルは3対応/etc/rcである.d/rc3.d/ディレクトリ下のファイルは、Kで始まるサービスが停止され、Sで始まるサービスが開く(先に停止してから開く)閉じたり起動したりする優先順位で、数値が小さいほど優先される
/etc/rc3.dはリンクファイルの指向/etc/rcである.d/rc3.d
/etc/rc3.d/ディレクトリの下のファイルはリンクファイルであり、ソースファイルは/etc/rcに格納される.d/init.d/ディレクトリの下
/etc/init.d指向/etc/rc.d/init.d
4.システム初期化
si::sysinit:/etc/rc.d/rc.sysinit

/etc/rc.d/init.d/ディレクトリの下にあるすべてのサービスクラススクリプト
注意:この2行の前に必ず番号があります.
# chkconfig: 2345 9 91
# description: start and stop ISDN services

この2行は、対応するレベルのディレクトリの下で対応するリンクファイルを作成するために使用されます.
# chkconfig: 2345 9 91

# chkconfig: runlevels SS KK
2345はどのレベルで開始されたかを表し、runlevelsはデフォルトでS*の先頭に作成されたリンクを表し、-レベルがデフォルトでS*の先頭に設定されていないリンクを表し、それ以外のレベルはデフォルトでK*の先頭に作成されたリンクを表します.
9 SSに対応する起動優先度はSSが示す数字
91 KK対応クローズ優先順位KKで表される数字
# description: start and stop ISDN services

このスクリプトを説明するための簡単な機能です.次の行に使用
chkconfigコマンドを実行すると、この2行のスクリプトが自動的にリンクファイルを作成します.
5.var/lock/ディレクトリの下
サービススクリプトが起動すると、/var/lock/ディレクトリまたは/var/lock/subsys/ディレクトリの下に適切なロックファイルが作成されます.
chkconfig--list:すべての独立したデーモンサービスの起動設定を表示し、独立したデーモンプロセス
chkconfig --list SERVICE_NAME
指定したスクリプトをサービス・スクリプトに変換し、実行可能な対応するレベルのディレクトリの下にリンク・ファイルを作成します.
chkconfig --add SERVICE_NAME
該当するディレクトリの下にあるすべてのリンクファイルを削除
chkconfig --del SERVICE_NAME
サービス・スクリプトがどのレベルでオンまたはオフになるかを指定します.
chkconfig [--level RUNLEVELS] SERVICE_NAME {on|off}
レベル指定を省略した場合、デフォルトは2345レベルです.
6./etc/rc.d/rc.localファイル
システムが最後に起動したサービスは、正確には、実行すべきスクリプトです.
7./etc/inittabファイル
/etc/inittabのタスク:
1、デフォルト運行レベルを設定する
2、システム初期化スクリプトの実行
3、指定した運転レベルに対応するディレクトリの下のスクリプトを実行する
4、Ctrl+Alt+Delキーの操作を設定する
5、UPS電源の電源故障/回復時の操作を定義する
6、仮想端末の起動(2345レベル)
7、起動グラフィック端末(5レベル)