1. BIOS

PCの電源を投入すると、BIOS(Basic Input Output System)が、マザーボードのROMからメモリ上にコピーされ、実行される。
BIOSは入出力を制御するソフトウェアで、マザーボードに接続されているデバイスの初期化とPCの起動設定を行う(それ以外にもPOST – Power On Self Test やブード順序の変更、SATA RAID の有効無効の切り替え、接続デバイスを無効にする機能もある)。

2. MBR

BIOSでPOSTが実行された後、ブートデバイス(SSD、HDDなど)の先頭部分MBR(Master Boot Record)に起動プログラムが書き込まれているかをチェックする。
MBRはブートデバイスの先頭512バイト部分。
起動プログラムが見つかった場合、そのプログラムをメモリに書き込み実行する。

3. ブートローダー

ブートローダーMBRの0〜455バイト目までに格納されている、カーネルを実行するためのプログラム(Linux本体というわけではない)。
保存容量の問題から、カーネル本体はSSD、HDDなどの大容量メディアに保存されていることが一般的である。
ブートローダーはこれらのメディアから起動するカーネルを探し、メモリにコピーしてカーネルのセットアップルーチンを呼び出す。

4. Linuxカーネルのセットアップルーチン

ルーチンは起動されると、ハードウェアの初期化を行う。
メモリのサイズ、入力装置、SSH/HDDなどの情報を取得し、カーネルの展開ルーチンを呼び出す。
その後、圧縮されたカーネル展開し、実行する。

そして、ブートローダーのLinuxカーネルのオプション「init=」に指定されたプログラムをカーネルが実行される。指定がなければ、「/sbin/init」を実行する。