Linuxの起動の流れについて
こんにちは。今日はLinuxの起動について解説します。
起動の流れ
Linuxはどのような流れで起動するのでしょうか。基本的な流れは以下のようになっています。
皆さんも自宅にあるPCの電源を入れた時に、PC自体がブーンという音を立てて、カリカリと何かを読み込むような音を聞いたことがあるかと思います。実はいろいろなプログラムが動いていたことが分かりますね。
内容を読んでみると専門的な言葉が多く登場しています。これらはプログラムでそれぞれが役割を持って決まった順番で動いています。
起動時の主要なプログラムの流れ |
---|
BIOS/UEFI ⇒ ブートローダ ⇒ カーネル ⇒ init/systemd |
起動時のプログラムの順番は試験に高確率で出題されるので覚えましょう。
各プログラムについて
先に挙げたプログラムはどんな内容で何をしているのか確認していきましょう。
BIOS/UEFI
BIOS-Basic Input / Output System
BIOSはコンピュータに搭載されたプログラムの中で最も基本的な制御を行うプログラムです。
制御というと何かの動きを制限するように聞こえるかもしれませんが、制御とは目的どおりの動きをするように調整することという意味です。
このBIOSはマザーボードに搭載されたフラッシュROMに書き込まれています。
UEFI-Unified Extensible Firmware Interface
UEFIは、基本的な機能はBIOSと同じですが、拡張機能を持つプログラムです。
具体的な動き
ブートローダ
ブートローダ-Boot Loader
ブートローダは、カーネルを読み込む(ロードする)ためのプログラムです。主な役割としては、起動デバイスからカーネルを読み込むことです。
具体的な動き
ブートローダの具体的な動きは以下の内容です。
カーネル
カーネル-Kernel
カーネルは、オペレーティングシステム(OS)の基本機能の役割を担うソフトウェアです。OSの中でも特に核となるプログラムで、ハードディスクやメモリなどの制御を行います。
起動時の具体的な動き
カーネルの具体的な動きは以下の4つです。
- メモリの初期化やシステムクロックの設定を行う
- 初期RAMディスクをマウントする
- マウントの結果、システムの起動に必要なデバイスへアクセス可能となる
- init/systemdを実行する
ここで登場する初期RAMディスクとは、仮のルートファイルシステムと呼ばれています。このディスクには、正規のルートファイルシステムが存在するディスクをマウントするためのドライバなどが含まれています。
ルートファイルシステムとは、システム起動時にマウントされる全てのファイルシステムの頂点に存在しているファイルシステムのことです。このファイルにアクセスできるようになることで、その他のファイルへアクセスできるようになり、カーネルが実行するinit/systemdが順番に必要なサービスを起動することができるようになります。
init/systemd
イニット/システムディー-init/systemd
この2つのプログラムについては別途詳しく解説します。今回は起動時の働きを確認しておきましょう。
具体的な働き
- 必要なサービスなどを順次起動
- 最後にログインプロンプトを表示して起動処理完了
ここで登場するログインプロンプトとは、コンピュータへログインする際に、ユーザ名・パスワード入力を促す指示のことです。一般的にはその画面のことをログインプロンプトと呼ぶ場合もあります。
いかがだったでしょうか。徐々に専門的な言葉が増えてきましたね。
それでは今日はこの辺で