Linuxが起動するしくみについてまとめてみよう。
Linuxが起動する流れ
先ず、パソコンの電源を入れると、マザーボード上にあるBIOSというファームウェアが起動する。自分も今までそう思っていたが、長年、IT技術から離れていた間に世の中は進化しているようで、近年は、BIOSに変わって、UEFIというファームウェアが主流になりつつあるそうだ。BIOSはハードディスクの容量が2TBまでしか対応できないという制限があり、ハードディスクの大容量化に伴い普及しつつある。
このファームが起動して、ハードディスク上にある、ブートローダという部分を起動させる。ブートローダにはいくつか種類があり、LinuxではGRUBが主流となっている。各ディストリビューションでもこれが採用されており、UbuntuでもGRUBを採用している。ブートローダの役割は、カーネル(つまりLinux)をメモリ上のコピーする事にある。
さて、カーネルだが、オープンソースということもあり、全てのハードに対応しているとか限らない。運悪く対応していなければ、当然上手く起動してくれないことになる。この場合どうするか、カーネルのビルド(つまりコンパイル)をしてやらないといけなくなるのだ。素人には当然敷居が高くなる。
カーネルが立ち上がったら、次にinitシステムが起動される。initシステムだが、各サービスを自動で起動してくれるシステムである。Linuxではデーモンといういいかたをする。
ここまでの流れを経て、晴れてOSが使えるということになるのだ。
まとめ
- 電源ON
- BIOS / UEFI が起動
- GRUB(ブートローダ)が起動
- Linux(カーネル)をメモリ上のコピー
- initシステムが起動