Linux起動時の動き
Linuxの起動時のプロセスについて知った事をまとめとく。
この人とか(linux ランレベル入門 - 馬鹿と天才は紙一重)
詳しく面白く書いてるから、あくまで自分の記録メモ的なやつ。
まず、システムの起動時の流れというのは、アーキテクチャによって異なる。でも主流はIntelのx86という奴らしいので、Linux起動についてはこいつの流れを踏んでれば良いと思う。
さて、Linuxを起動すると(電源を入れると)、最初にBIOSというのが動き出す。
BIOSはwindowsでも御馴染みだと思うけど、BasicInputOutputSyetemのことで、名前の通りOS(System)における必要最低限(Basic)の機能(Input/Output)を司ってるソフトウェア群の事。
動き出したBIOSがはじめにやるのがハードウェアのチェックや初期化。
何の為にMBRを見に行くかというと、ブートローダを動かす為。
MBRは「ますたーぶーとれこーど」だから、こいつにブートの事が色々書かれてて、その内容によって、ブートローダが動く。
ちなみに、MBRはディスクの区切られた複数のパーティションとは別に先頭に位置してるもので、そのMBRの内のブートセクタ部分が起動時に読まれる。
で、動き出したブートローダがカーネルをメモリ上に読み込むことで、カーネルサンダース..じゃなかった、カーネルが読み込んだメモリの初期化とかシステムロックなんかの設定をする。
そんで、最後にinitプログラムを実行する。
initプログラムはinittabに記述された内容によって、動作されるんだけど、inittabに書いてあるのは基本的にはランレベルの設定。
ランレベルには、まあコレも名前の通りだけど、実行(Run)するモード(Level)が決められてるっていうもの。
そのランレベルの内容、1とか2とかに対応したデーモンが動く。
デーモンはバックグラウンドで動くプログラムで、人間様がやるのが煩わしいことをやってくれるという、名前からは想像できないイケメン君。
いいぞデーモン。やったぞデーモン。
以下、参考にしました。
MBRの構造http://www.hazymoon.jp/OpenBSD/arch/i386/stand/mbr/mbr_structure.html
Linuxランレベル入門http://d.hatena.ne.jp/shim0mura/20101013/1286975194