News 2003年9月24日 06:51 PM 更新

役割を終えるBIOS――-最後の“レガシー”コンポーネント(1/2)

Intelは、先週行われた「IDF Fall 2003」において、EFI準拠のPC用ファームウェアの開発フレームワークを発表した。これが意味するところは、従来型PCの互換性の要であった“BIOS”がその役割を終える、ということかもしれない。

 Intelは、先週行われた「Intel Developer Forum Fall 2003」において、EFI準拠のPC用ファームウェアの開発フレームワーク「Intel Platform Innovation Framework for EFI」を発表した。

 EFI(Extensible Firmware Interface)は、PCのファームウェアとOSのインタフェースを定義した標準規格だ。PCのファームウェアとOS、双方がEFIに対応することで、IBM PCから続く旧来のブートシーケンスは改められる。と同時に、従来型PCの互換性の要であった最後のレガシーコンポーネント“BIOS”は、従来の役割を終えることとなる。

 ただし、今すぐにBIOSがなくなるわけではない。Windowsで構築される環境において、我々がEFIを利用可能になるのは、Windowsの次期バージョン「Longhorn」以降となり、従来型のOSを起動するためには互換機能としてBIOSが必要だ。しかしながら、やっと踏み出した一歩は大きい。

IBM PC/ATが残した最後の遺産

 PCの歴史は、過去との互換性を維持する歴史であった。このため、互換性を維持するためにさまざまな古い仕様を抱えたまま現在にまで至っている。とはいえ、I/OインタフェースにはUSBが普及し、PCカードもExpress Cardによって過去のしがらみを断ち切る土台ができてきた。さまざまな意味において「レガシーフリー」なPCへと脱却し、過去の精算が可能な段階に来ていると言える。

 しかしファームウェアに関しては、旧来からのIBM互換BIOSを使い続けてきた。もちろん、VGA機能、VESA互換グラフィックスをはじめ、機能的な強化は行われてきたが、それらが8086プロセッサの1Mバイトメモリ空間で動作する、リアルモード(8086互換動作モード)のプログラムであることは変わっていない。

 BIOS(Basic Input Output System)の本来の目的は、PCが備えるハードウェアにリアルモードプログラムがアクセスするための手段を提供することである。リアルモードで動作するOSは、BIOSを呼び出すことで周辺ハードウェアとのI/O機能を実装している。そのため、現在のPC(いわゆるIBM PC/AT互換機)上では、BIOSは重要な役割を持っていた。BIOSの品質が互換性の高さを決定付ける主因となっていたからである。

 現在、BIOSベンダーとして不動の地位を築いているPhoenix Technologies、かつて絶大な支持を得ていたAmerican Megatrendsなどは、互換性が高く高性能で、かつ拡張機能によりメンテナンスの容易なBIOSを提供することで人気を博した。しかし現在、BIOSをファームウェアに用いることには、いくつもの無理がある。

 まず、BIOSの機能拡張に限界があることだ。IBM PCのデザインでは、1Mバイトのメモリ空間を640Kバイトと384Kバイトに分割し、前者をプログラム実行用のメインメモリに割り当て、後者をBIOS配置のために割り当てている。しかも、あらかじめ目的が決められているメモリ領域が予約済みで、残りの領域もさまざまなデバイスがひしめく。長年にわたって増え続けたPC用周辺デバイスをBIOSでサポートし続けることは、物理的に不可能になってきた。

 また、PCの周辺デバイスに対して直接的にアクセスする必要がある、システムツールの開発や運用も困難だ。例えばディスクイメージのバックアップツールやBIOSアップデートツールなどは、必ずリアルモードでなければならない。これはBIOS自身がリアルモードでしか動作しないためだ。

 近年は、仮想フロッピーディスクというテクニックを使うことでこれらのツールが起動可能になるなど、運用性は以前よりは高まっているが、リアルモードプログラムであることの制限は免れない。

 例えば、ディスクイメージバックアップツールでUSB 2.0ハードディスクを利用する場合を考えてみよう。現在のBIOSはUSBキーボードとマウスをサポートしているが、USBストレージをサポートしているものは少ない。このため、USBインタフェースのイネーブラ、USBストレージのドライバを、それぞれDOSレベルで組み込む必要がある。

 ところが、実際に運用してみると、ツールの起動オプションなどによってはメモリ不足に陥る、あるいはUSB 2.0モードできちんと動いてくれないといったトラブルに見舞われることがある。ファームウェアがUSB 2.0ハードディスクをサポートしていないことが主因と言えよう。

 DOS時代であればこうした問題も“慣れっこ”だったが、DOSのドライバ組み込みのノウハウが書籍として売れていた時代はともかく、今の時代に沿った仕様とは言えない。現在のPCには、新しく登場するI/Oインタフェースにも柔軟に対応可能なファームウェアが必要なのだ。

互換性と柔軟性を兼ね備えたIntel Platform Innovation Framework

 EFIの仕様そのものは、IA-64プラットフォームを構築する中で生まれてきたものだ。IA-64プラットフォームには、基礎となるIBM PCのようなオリジナルが存在しない。つまり過去との互換性を維持する必要がないため、モダンなアーキテクチャーを採用することが可能だったからだ。当然、EFIはリアルモードに依存せず、拡張性の高い仕様となった。IA-64用のOSは、すべてEFIをインタフェースとしてOSがブートする仕組みだ。

 では、我々が一般的に利用しているIA-32プラットフォームにEFIを利用できないのだろうか?

[本田雅一, ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.

前のページ | 1/2 | 次のページ