Linux start up process
Linuxが起動し、コンソールが使えるようになるまでを非常に簡単に記述しました。
| 1: | LILOがカーネルイメージをメモリに読みこむ |
| LILOがカーネルのイメージファイル(/boot/vmlinuz)をメモリにロードし、カーネルを起動させます。 カーネルが起動、つまりLinuxが起動すると、デバイスの初期化などが行われます。 LILOは/boot/vmlinuzの格納位置をファイルシステムから求めるのではなく、独自にシリンダ単位か何かで管理しています。 このため、カーネル(/boot/vmlinuz)の格納位置が変わるような事があれば、起動前にLILOのジェネレーションが必要です。 これに対しGRUBはファイルシステムを理解するため、bootしなくなる条件は少なくなります。 |
|
2: |
initプロセスの実行 |
| カーネルは/sbin/initというプログラムを実行します。 /sbin/initは/etc/inittabというテキストファイルを参照し、inittabに記載されているプロセスを起動します。 inittabは/etc/rc.d/rc というスクリプトを起動しています。 runlevelに応じて分けてプロセスを起動させるために、/etc/rc.d/rc は引数としてrunlevelが与えられます。 ここの構成はディストリビューションによって異なります。 |
|
3: |
gettyが起動し、login待ちになる。 |
| /sbin/initは/etc/inittab記述されている数のgettyを起動します。gettyはlogin promptを出し、入力を受けつけます。 |