システムが起動するまでの流れ
システムの電源を入れてから起動するまでの流れについて
この一連の処理の流れを「ブート(boot)」「ブートストラップ(bootstrap)」と呼びます。
流れはOSの構造によって異なります。今回は例として一般的なPC(x86 / x86_64アーキテクチャ)における起動の手順を紹介します。
電源入力後の工程は大きく分けると4つに別れています。
1.BIOS/UEFI
BIOS/UEFIはハードウエアのチェック,初期化などを行います。
その後起動デバイス(HDD,SSDなど)に書き込まれたブートローダを読み出し、制御をブートローダに移します。
2.ブートローダ
ブートローダが起動デバイス上からカーネルをメモリ上に読み込みます。
3.カーネル
カーネルがメモリの初期化、システムクロックなどの設定を行い、仮のルートファイルシステム(initramfs:初期RAMディスク)をマウントします。
※マウント…あるファイルシステムに別のファイルシステムを組み込み、全体として1つのファイルシステムとして扱えるようにすること
初期RAMディスクにはシステム起動に必要なデバイスドライバが組み込まれています。
これを使うことでハードディスク等のデバイスへアクセスが可能になります。
その後、最初のプロセス「init(もしくはsystemd)プロセス」を実行します。
4.init/systemd
必要なサービスなどを順次起動します。
最後にログインプロンプトが表示されて起動処理が完了します。