🐥

BIOSやUEFIという用語の使われ方の変遷

2021/01/02に公開

はじめに

本記事はコンピュータの世界の用語、Basic Input Output System(BIOS)およびUnified Exensible Firmware Interface(UEFI)がどのように使われてきたのかについてまとめたものです。この用語が生まれたのが1975年でわたしがPCを使い始めたのが1990年代中盤なので、そのあたりは直接知っているわけではなく伝聞やwikipediaなどを情報源とした耳学問をもとに書いています。したがって「本記事に書いてあることが正解」ということはなく筆者の理解、程度の意味でとらえてください。

BIOSの登場

BIOSという言葉は1974年に誕生したマイコン向けOSであるCP/M由来に由来します。BIOSはCP/Mの中のI/O制御をするためのプログラムのことを指しており、現在でいうデバイスドライバの役割を果たしていました。後述するPC(PC/AT互換機)とは異なり、BIOSはOSの一部として読み書き可能なディスクに保存されていました。多くの人にとってはBIOSとは後述のPCにおけるもののようにROMに入っているものという認識でしょう。もともとのBIOSはOSの一部としてディスクに入っているものだったというのは驚きではないでしょうか[1]

PC/AT互換機(いわゆるPC)のBIOS

1984年にリリースされたIBMのPC/ATにおいては、CP/Mに倣って入出力を担当するソフトウェアをBIOSと呼んでいました。このBIOSはCP/MのBIOSのようにOSの一部ではなくマシン自体がファームウェアとして提供するものであり、ROMに格納されていました。

PC/ATがヒットしたのを受けて大量にリリースされてきたPC/AT互換機、いわゆる現代まで続くパーソナルコンピュータ(PC)と呼ばれるもの、ではPC/ATと互換性を持つBIOSを持っていました。この意味でのBIOSがPC世代の多くのIT技術者がイメージするBIOSでしょう[2]。コンピュータをに詳しくない人にとってはBIOSの設定をするためのインタフェース、とくにグラフィカルインタフェースがBIOSと認識されてきました。

EFI

1990年代中盤から、IntelとHPはサーバ向けのIA-64アーキテクチャを採用したCPU、Itaniumを使ったマシンの開発、普及をもくろんでいました。その過程でPC/AT互換機で使われてきたBIOSは技術的にサーバマシンに使うには力不足だと判断されたため、新しいファームウェアのインタフェースが作られました。これがExtensible Unified Interface(EFI)です。見ての通り"U"FEIではなくUが無いEFIです。EFIは2000年代にサーバベンダでIA-64のマシンにかかわってきた人以外にはあまり知られていないのではないでしょうか。

EFIそのものはインタフェースの規格ですが、当時はEFIおよびその実装を含めて慣習的にEFIと呼ばれていたように記憶しています。このあたりはBIOSと同じですね。

UEFI

2005年にPCをはじめとしたさまざまなプラットフォームのファームウェア仕様としてUnified Exetensible Firmware Interface(UEFI)が生まれました。EFIはIntel主導のものですが、UEFIはそれ以外にも様々なベンダが参加しているUnified EFI Forumによって作られています。

UEFIもEFIと同様インタフェース規格であるもののインタフェースおよび実装をひっくるめてUEFIと呼ばれてきました。同じ意味でUEFI BIOSという名前で呼ばれることもあります。また、UEFIになったところで一般の人には大して違いはわからないのでUEFIのグラフィカルインタフェースを指してBIOSと呼ぶ人もいまだ大勢います。

BIOSとUEFIの互換レイヤ

新しいものが出てくるときに重要になってくるものの一つが互換性です。BIOSとUEFIについてもそれは同様です。とくにUEFIをサポートするファームウェアが登場した直後はハードウェアに近いOSなどのソフトウェアがUEFIのインタフェースに対応していないなどの理由によって、いきなりBIOSが使えないハードウェアを出すというのは無理筋でした。

この問題を解決するために生まれたのがIntelが規格化したCompatibility Support Module(CSM)です。このモジュールによってハードウェアベンダが提供するファームウェアはUEFIに沿ったインタフェース、および旧来のBIOSインタフェース、両方を提供できました。

現在のPCはBIOSやUEFI、CSMという文脈で4つのクラスに分けられます[3]

  • class 0: UEFIについて一切考慮していないただのBIOS。いわゆるlegacy BIOS
  • class 1: UEFIに沿ったインタフェースを提供しているが、ソフトウェアにはBIOSインタフェースのみ見せる
  • class 2: ソフトウェアにBIOSインタフェースとUEFIインタフェースの両方を見せる
  • class 3: ソフトウェアにUEFIインタフェースのみ見せる

新しいマシンほどclass番号が大きい傾向にあるといっていいでしょう。

BIOSの終わり?

2017年、Intelは2020年までにすべてのマシンをclass 3に移行したい、つまりlegacy BIOSサポートをやめたい、という意向を示しました。実際その目論見が達成できたのかは他のベンダとの兼ね合いもありますし私はハードウェアに詳しくないのでよく知らないのですが、いずれはほとんどあるいはすべてのマシンがclass 3のマシンのみになるのではないでしょう。

余談ですが、「ほとんど」と書いたのには理由があります。世の中には更新の見込みはないものの特定の組織にとって無くてはならないソフトウェアはいくらでもあります。これらのソフトウェアを動かし続けるために大人の事情によってlegacy BIOSインタフェースを備えたマシンはしばらくは出続けるのではないかと推測しています。また、そのような状況が終わった後もしばらくはそのような古いマシンを求めてさまよう人がジャンクショップで目撃されるのではないでしょうか。

おわりに

ここしばらくBIOSやUEFIについて技術的にどうこうというよりも歴史に興味が出たのでいろいろ調べていました。本記事はその成果物です。とくにこれを読んで何かの技術に詳しくなれるというわけではないですが、小噺として楽しんでいただけたのなら幸いです。不備、不明点がありましたら正していただけると助かります。

参考サイト/参考文献

脚注
  1. わたしも知ったときは驚きました。 ↩︎

  2. といっても最近のBIOSは読み書き可能なフラッシュメモリに入っているのでややこしいですが… ↩︎

  3. 正確にはもうひとつclass 3+というものがありますが、ここでは触れません。 ↩︎

Discussion