OS

【BIOS/UEFI】OSが起動するまでの流れ

汎用PCの電源を入れると、Windows や Linux などのOSが起動します。
このページでは、OSが起動されるまでの流れを「BIOS(バイオス)」に注目して説明いたします。

 

BIOSとは?

BIOS とは、Basic Input Output System の略で、PC の土台であるマザーボードに搭載されています。
デスクトップPCとノートPC、どちらのタイプでも必須のプログラムです。

BIOS は、Windows や Linux の OS が起動する前のタイミングで実行され、
その名の通り、キーボード・マウス、CPU 、メモリや補助記憶装置(HDD/SSDなど)の管理や制御を行う。

汎用PCを起動した際、「F2」や「DEL」キーを押下してBIOS設定プログラムを起動することができます。

BIOS設定画面

BIOS設定画面

 

BIOSを構成するデバイス

BIOS は、主に 2 つのデバイスで構成されています。

  • BIOS プログラムを格納する Flash ROM
  • BIOS の設定を保存する CMOS メモリ

いずれのデバイスも、マザーボードに搭載されています。

 

Flash ROM:BIOS プログラム

昔は ROM(Read Only Memory)を使用していましたが、最近では BIOS の更新等も行えるよう、
Flash ROM を採用している場合がほとんどです。サイズは 16MB 程度のもです。

SANACHAN
SANACHAN
NOR 型が多い印象です。

 

CMOS:BIOS 設定値

CMOS とは、ComplementaryMetal Oxide Semiconductor の略で、
BIOS の設定日時などの情報を格納する半導体メモリです。

微弱な電流で値を保持しておくことが可能で、下図のようにボタン電池が電源として使用されています。

CMOS-Battery

CMOS 用バッテリ(ボタン電池)

 

BIOS の種類

BIOS にはいくつかの種類があります。
後に紹介しますが、種類によって OS の起動プロセスが異なります。

 

BIOS

先に掲載した青の背景と白の文字が中心の基本的なBIOS設定画面を備えたBIOSです。
そのままの名称ですが、Legacy BIOS などと呼ばれたりもします。

 

UEFI

BIOS の後続として2010年ごろから移行が進んでいるBIOSのインターフェイス仕様です。
Unified Extensible Firmware Interface の略で、最近のPCではUEFIが主流となっております。

 

BOIS と UEFI の違い

OS が起動されるまでの流れとして、大きく2種類の仕組みがあります。
MBR(Master Boot Record)と GPT(GUID Partition Table)です。

Legacy BOIS では MBR しか扱えないのに対し、UEFI では MBR/GPT の両方を扱うことができます。
それぞれの特徴を以下にまとめておきます。

MBR GPT
サイズ 512 [Byte] 16.5 [KiB]~
パーティション
サイズ
2 [TiB] 8 [ZiB]
パーティション
最大数
4つ 128つ
内容 ・1st ブートローダ
・MBRパーティションテーブル
・GPTパーティションテーブル
処理 ①MBR内の 1st ブートローダ起動
②grub/Windows Boot Manager 起動
③OS起動
①ESP(EFI System Pertition:/boot/efi 等)
に含まれる grub/Windows Boot Manager 起動
②OS起動
アドレス
指定方法
物理アドレス(CHS) 論理アドレス(LBA)

OS で扱うファイルサイズが大きくなり、補助記憶装置(HDDやSSD)の容量が大きくなったことにより、
従来の MBR のパーティションサイズ上限 2TB に引っかかるため、GPT が登場しました。
他にも、ブートプロセスが複雑になり、512 [Bytes] に収まらなくなったこともあげられます。

 

BIOSからOSが起動されるまでの流れ

Legacy BIOS と UEFI と、それぞれの起動プロセスを見ていきましょう。

 

Legacy BIOS Boot

  1. FlashROM から BIOS プログラムをメモリに展開
  2. [BIOS] 起動デバイス(HDD/DVD)を決定
  3. [BIOS] 起動デバイスの先頭ブロック/セクタから MBR をロード
  4. [MBR] Boot Loader 起動
  5. [Boot] Kernel 起動
  6. [Kernel] OS 起動

 

UEFI Boot

  1. FlashROM から BIOS プログラムをメモリに展開
  2. [BIOS] 起動デバイス(HDD/DVD)を決定
  3. [BIOS] 起動デバイスの先頭ブロック/セクタから GPT/ESP をロード
  4. [ESP] Kernel 起動
  5. [Kernel] OS 起動

 

BIOS の後継だけあって、UEFI の方がシンプルに起動できそうです。
UEFI では、FAT のファイアるシステムを扱うことができるため、直接 Kernel を起動することができます。

 

こちらの記事もよく読まれています

  • この記事を書いた人
  • 最新記事
SANACHAN

SANACHAN

「生涯一エンジニア」を掲げ、大手グローバル企業でSE/PGとして8年勤め、キャリアアップ転職した現役のエンジニアです。世にあるメジャーな全プログラム言語(コボル除く)を自由に扱えます。一児の父。自分のため、家族のため、日々勉強してます。システムエンジニア、プログラミングに関する情報を蓄積している雑記帳です。

-OS
-, , , ,