PC起動時に動作するBIOSに取って代わる「UEFI」とはいったい何なのか?

GIGAZINE


by Nick Gray

2021年10月5日にリリースされたWindows 11のシステム要件の1つに、「UEFI、セキュアブート対応」とあります。UEFIは、従来のBIOSと同様にPCでOSが起動する前段階に実行されるプログラムですが、従来のBIOSを搭載するPCがWindows 11の動作対象外となっている通り、UEFIと従来のBIOSで実行している内容は全く異なります。

Differences Between UEFI and BIOS, and Which One You Should Use?
https://www.maketecheasier.com/differences-between-uefi-and-bios/

What’s The Deal With UEFI? | Hackaday
https://hackaday.com/2021/11/30/whats-the-deal-with-uefi/

BIOSは「Basic Input/Output System」の略で、PCのマザーボード上にあるROMに保存されるファームウェアです。PCを起動すると、ROMに書き込まれたBIOSプログラムが起動し、ハードウェアの初期状態を整えるイニシャライズを行い、キーボードやマウス、CPU、保存装置などのハードウェアデバイスを制御し、OSのブートローダーを呼び出します。つまり、BIOSはハードウェアが起動してからOSが起動するまでの橋渡しの役割を担います。BIOSはマスターブートレコード(MBR)と呼ばれる特殊なストレージ領域によってパーティションを管理していますが、MBRが管理できる最大パーティション数は4で、ディスク容量は最大2TBという制限があります。

by Chip Poutine

UEFIとは「Unified Extensible Firmware Interface」の略で、「United EFI Forum」と呼ばれる団体が定めた仕様で、Intelとヒューレット・パッカード(HP)が開発したEFI(Extensible Firmware Interface)が基になっています。UEFIとBIOSはどちらも表面上「OSの起動前に動くプログラム」となっていますが、実際に実行しているタスクは異なります。

UEFIはGUIDパーティションテーブル(GPT)と呼ばれるパーティション形式に対応しています。GPTは仕様上最大8ゼタバイト(80億TB)まで管理可能で、最大パーティション数は128となっています。また、UEFIはイニシャライズと起動に関するすべての情報を、HDDやSSD上に設けられたEFIシステムパーティションと呼ばれる特別な領域に保存する仕組み。このEFIシステムパーティションには、コンピューターにインストールされているOSのブートローダーも含まれます。UEFIはプラットフォームに依存しないので、場合によってはPCの起動時間がわずかに早くなるという利点があります。

by Isriya Paireepairit

EFIやUEFIはIntelが開発を主導したため、x86プロセッサを想定して設計されています。x86は16bitマイクロプロセッサであるIntel 8086向けに開発された命令セットアーキテクチャで、Intel 8086には20bitのメモリアドレス空間が与えられていたことから、1MBのメモリ制限が存在しました。その後、x86アーキテクチャを32bitに拡張したIA-32や64bitに拡張したx64が登場するなど、プロセッサはどんどん進化を遂げましたが、互換性を重視するためにすべてのx86プロセッサは起動時にIntel 8086互換の動作をするリアルモードで動作します。

BIOSはイニシャライズする次のデバイスのアドレスや実行すべきコードが書かれたハードディスクの最初のセクタを読み取ることで動作します。また、OSを起動するためのブートデバイスを選択してイニシャライズします。しかし、BIOSはリアルモードの16bit環境で動作するため、ROMから読み込んで実行できるコードの量には1MBのメモリ制限が科されます。また、BIOSは16bit環境でしか動作しないので、マザーボードごとにハードウェアの進歩によってプログラムが複雑化するにもかかわらず、その開発にアセンブラのような低級言語を利用しなければならない制約があり、難度が高いというのも懸念すべき材料でした。

Intelが2000年にEFIを開発しようとしたのは、このBIOSを廃止して新しファームウェアに移行すべきだと考えたからでした。UEFIであれば最初から64bitモードで動作することができるので、メモリ制限が撤廃され、OSが読み込み前に悪意のあるコードが実行されないようにするセキュアブートや、暗号化機能が組み込まれたドライブのセキュリティ機能を使うことができるようになります。また、ファームウェアもC++やRustなどの高級言語でコーディングできるのも大きなメリットです。

by Cathy

ただし、当時は64bitと32bitの互換性の問題が解決されておらず、64bitマシン自体が市場でもあまり出回っていなかったため、EFIは注目されていませんでした。そのため、Intelは2005年にUnited EFI Forumを立ち上げてEFIの仕様を公開し、UEFIと改名しました。United EFI ForumにはAMDやIBM、Microsoftなどさまざまなメーカーも参加し、UEFIの仕様策定が進みました。なお、MicrosoftはUEFIを発表した2005年にWindows XP Professional x64 Editionをリリースしています。

UEFIが市場から大きく注目されたのは、Intelの第2世代CoreプロセッサであるSandy Bridgeが登場した2011年のことで、Sandy Bridge世代に対応するマザーボードがレガシーなBIOSではなくUEFIを導入していたことで、UEFIの認知度が上がりました。また、同時期に2TBを超えるストレージが入手しやすい価格帯で販売されるようになったのも影響しています。

さらに、2017年にIntelがUEFIからBIOS互換モジュールであるCompatibility Support Module(CSM)を削除する方針を明らかにしました。このCSMは、UEFI上でレガシーなBIOS向けに書かれた16bitコードを実行するためのもので、CSMによってBIOSをエミュレーションすることが可能でした。しかし、レガシーなBIOSとの互換機能を残すことはUEFIの普及を抑制するだけではなく、セキュリティ面でのリスクを抱え続けることになります。なお、CSMの削除によってBIOSをエミュレーションすることができなくなることで、PS/2接続のマウスやキーボードが使えなくなる可能性もあります。

ただし、技術系ニュースサイトのHackadayは「UEFIの最大の不満点は、UEFIが閉じたブラックボックスであることです。UEFIはユーザーが意識していないところでコンピュータにアクセスしており、OSが起動した後も常駐しています」と述べています。また、UEFIのアップデートはBIOSよりも簡単になったものの、アップデートのミスによってシステムが立ち上がらなくなってしまうと物理的に修理が不可能になるため、リスクも高くなったとしています。

この記事のタイトルとURLをコピーする

Source