汎用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 は、主に 2 つのデバイスで構成されています。
- BIOS プログラムを格納する Flash ROM
- BIOS の設定を保存する CMOS メモリ
いずれのデバイスも、マザーボードに搭載されています。
Flash ROM:BIOS プログラム
昔は ROM(Read Only Memory)を使用していましたが、最近では BIOS の更新等も行えるよう、
Flash ROM を採用している場合がほとんどです。サイズは 16MB 程度のもです。
CMOS:BIOS 設定値
CMOS とは、ComplementaryMetal Oxide Semiconductor の略で、
BIOS の設定、日時などの情報を格納する半導体メモリです。
微弱な電流で値を保持しておくことが可能で、下図のようにボタン電池が電源として使用されています。
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
- FlashROM から BIOS プログラムをメモリに展開
- [BIOS] 起動デバイス(HDD/DVD)を決定
- [BIOS] 起動デバイスの先頭ブロック/セクタから MBR をロード
- [MBR] Boot Loader 起動
- [Boot] Kernel 起動
- [Kernel] OS 起動
UEFI Boot
- FlashROM から BIOS プログラムをメモリに展開
- [BIOS] 起動デバイス(HDD/DVD)を決定
- [BIOS] 起動デバイスの先頭ブロック/セクタから GPT/ESP をロード
- [ESP] Kernel 起動
- [Kernel] OS 起動
BIOS の後継だけあって、UEFI の方がシンプルに起動できそうです。
UEFI では、FAT のファイアるシステムを扱うことができるため、直接 Kernel を起動することができます。