独学でLPIC受験してみた

勉強したことをアウトプットする備忘録的ブログです

Linuxの起動の流れについて

こんにちは。今日はLinuxの起動について解説します。

起動の流れ

Linuxはどのような流れで起動するのでしょうか。基本的な流れは以下のようになっています。

  1. システムの電源を入れる
  2. BIOS/UEFIが起動
  3. BIOS/UEFIがハードウェアのチェックや初期化を行う
  4. 起動デバイスに書き込まれたブートローダを読み込み
  5. ブートローダが起動
  6. ブートローダカーネルをメモリ上へ読み込み
  7. カーネルが起動
  8. カーネルがメモリの初期化やシステムクロックの設定などを実施
  9. カーネルが初期RAMディスクをマウント
  10. カーネルがinit/systemdプロセスを実行
  11. init/systemdが必要なサービスを起動した後にログインプロンプトを表示
  12. 起動処理の完了

皆さんも自宅にあるPCの電源を入れた時に、PC自体がブーンという音を立てて、カリカリと何かを読み込むような音を聞いたことがあるかと思います。実はいろいろなプログラムが動いていたことが分かりますね。

内容を読んでみると専門的な言葉が多く登場しています。これらはプログラムでそれぞれが役割を持って決まった順番で動いています。

起動時の主要なプログラムの流れ
BIOS/UEFIブートローダ ⇒ カーネルinit/systemd

起動時のプログラムの順番は試験に高確率で出題されるので覚えましょう。

各プログラムについて

先に挙げたプログラムはどんな内容で何をしているのか確認していきましょう。

BIOS/UEFI

BIOS-Basic Input / Output System

BIOSはコンピュータに搭載されたプログラムの中で最も基本的な制御を行うプログラムです。

制御というと何かの動きを制限するように聞こえるかもしれませんが、制御とは目的どおりの動きをするように調整することという意味です。

このBIOSマザーボードに搭載されたフラッシュROMに書き込まれています。

UEFI-Unified Extensible Firmware Interface

UEFIは、基本的な機能はBIOSと同じですが、拡張機能を持つプログラムです。

具体的な動き

BIOS/UEFIは具体的には以下の3つの働きをします。

  1. バイスを認識して起動デバイスの順位を決める
  2. キーボードやハードディスクなどのハードウェアレベルでの制御を行う
  3. ブートローダを読み込み、制御をブートローダに渡す

ブートローダ

ブートローダ-Boot Loader

ブートローダは、カーネルを読み込む(ロードする)ためのプログラムです。主な役割としては、起動デバイスからカーネルを読み込むことです。

具体的な動き

ブートローダの具体的な動きは以下の内容です。

  1. カーネルと初期RAMディスクイメージをメモリにロード
  2. カーネルに制御を渡す

カーネル

カーネル-Kernel

カーネルは、オペレーティングシステム(OS)の基本機能の役割を担うソフトウェアです。OSの中でも特に核となるプログラムで、ハードディスクやメモリなどの制御を行います。

起動時の具体的な動き

カーネルの具体的な動きは以下の4つです。

  1. メモリの初期化やシステムクロックの設定を行う
  2. 初期RAMディスクをマウントする
  3. マウントの結果、システムの起動に必要なデバイスへアクセス可能となる
  4. init/systemdを実行する

ここで登場する初期RAMディスクとは、仮のルートファイルシステムと呼ばれています。このディスクには、正規のルートファイルシステムが存在するディスクをマウントするためのドライバなどが含まれています。

ルートファイルシステムとは、システム起動時にマウントされる全てのファイルシステムの頂点に存在しているファイルシステムのことです。このファイルにアクセスできるようになることで、その他のファイルへアクセスできるようになり、カーネルが実行するinit/systemdが順番に必要なサービスを起動することができるようになります。

init/systemd

イニット/システムディー-init/systemd

この2つのプログラムについては別途詳しく解説します。今回は起動時の働きを確認しておきましょう。

具体的な働き
  1. 必要なサービスなどを順次起動
  2. 最後にログインプロンプトを表示して起動処理完了

ここで登場するログインプロンプトとは、コンピュータへログインする際に、ユーザ名・パスワード入力を促す指示のことです。一般的にはその画面のことをログインプロンプトと呼ぶ場合もあります。

 

 

いかがだったでしょうか。徐々に専門的な言葉が増えてきましたね。

それでは今日はこの辺で