mutao.net

いわゆる雑記。

BIOS

BIOSUEFI

BIOS

Basic Input Output Systemの略。

  • OSを起動するためのプログラムをディスクから読み込んで実行する。
  • バイスの動作を設定する。
  • 基本的な入出力の制御を行う。

現在ではBIOSの後継となるIntelが開発したUEFI(Unified Extensible Firmware Interface)が主流となっている。

UEFIもごちゃ混ぜでBIOSとして呼ばれることが多い。

UEFIのメリットは以下の2点

  • OSの起動ドライブの容量制限の緩和(BIOSは2TB)
  • GUIベースでのセットアップができる。

システム起動までの流れ

電源投入からシステム起動までの一連の処理をブートもしくはブートストラップと言う。 電源投入後の流れ

BIOSが起動

  • ハードウェアの最低限の認識をして起動デバイスの優先順位の決定や初期化を行う。
  • 起動する順番にデバイスの先頭セクタにあるMBR(Master Boot Record) を読み込みブートローダに制御を移す。

ブートローダ

カーネル

  • メモリの初期化やシステムクロックの設定を行い、仮のルートファイルシステムをマウントする。
  • カーネルは最初のプロセスであるinit or systemd を実行する。

init systemd

  • サービスを順次起動する。

  • SysVinit

    • カーネルから起動されるinitプロセスとして「/sbin/init」を起動する。
    • initは起動されると、設定ファイル「/etc/inittab」の記述に基づいて、自動起動するべきプロセスを立ちあげるなど、アプリケーションレベルの初期化を行う。
  • systemd

    • systemdで扱う処理はUnit単位で管理する。Unitは設定ファイルであり、Unitの設定に従ってsystemd自体が処理を行う。
    • systemdはUpstartと同様、各サービスを並列起動することができ、順次起動していくSysVinitに比べて高速なシステム起動や停止が行える。
    • cgroupsというLinuxカーネルの機能によってプロセスのリソースを管理する。