Windows 2000 Insider/PC Insider合同特別企画

Windows XPの正体
―― 実験/実証によって探るWindows XPの真実の姿 ――

セーフモードが高解像度対応になるWindows XP

元麻布春男
2001/07/12


 マイクロソフトによると、システムがクラッシュする原因で最も多いのがデバイス・ドライバに起因するものだという。通常、こうした状態に陥ると、システムをセーフモードで再起動し、怪しそうなデバイス・ドライバをシステムから外す、といった作業を行うことになる。セーフモードは、こうした作業にも耐えられるように、またシステムが起動する確率を最大限にするように、最小限のデバイス・ドライバしかロードしないようになっている。これまでのWindows 2000の場合、画面解像度がVGAの640×480ドット、色数が16色になる、ということでもあった。もちろん、この画面解像度でもメンテナンス作業が不可能ということはないが、決して作業がやりやすいとはいえなかった。

Windows XPの標準のディスプレイ・ドライバ

 こうした問題が生じていた直接の理由は、セーフモードで利用されるグラフィックス・ドライバが、「VGAドライバ」であったことだ。640×480ドット、16色というのは、標準VGAがサポートする最大の解像度である。このVGAドライバは、Windowsが標準でサポートしていないグラフィックス・チップの場合でも使われる。そもそもVGAは、1987年にリリースされたIBM PS/2の上位モデルに採用されたグラフィックス技術だ。「標準」という点では、この15年近く前の技術が進歩せずに、現在まで使われてきたわけだ。Windows XPでは、この部分が大きく変わる。標準で用いられるディスプレイ・ドライバが、VGA対応からSVGA(SuperVGA)対応に変わるのである。

 下の画面は、最新のグラフィックス・アクセラレータであるGeForce 3を組み込んだシステムに、Windows XPベータ2を単純にインストールしたものだ。デスクトップの解像度は1024×768ドットに、色数は32bitにそれぞれ設定されている。しかし、用いられているグラフィックス・アダプタのプロパティを見ても、何も情報がない。さらにグラフィックス・ドライバのプロパティを見ると、「VgaSave」(標準のディスプレイ・ドライバ)となっており、GeForce 3に対応したものでないことが確認できる。

GeForce 3を搭載したPCでWindows XPベータ2をインストールした状態
デスクトップの解像度は1024×768ドットにもかかわらず、グラフィックス・アダプタのプロパティに何の情報もない。
  このように[アダプタ情報]は、<利用不可>と表示される。

 ちなみに、GeForce 3対応のディスプレイ・ドライバを組み込むと、下の画面のように変わる。

GeForce 3対応のディスプレイ・ドライバを組み込んだ状態
対応のディスプレイ・ドライバを組み込むと、このようにグラフィックス・チップ名やグラフィックス・メモリの容量などの情報も得られる。
  GeForce 3対応のグラフィックス・ドライバを組み込むと、[アダプタ情報]には、このようにチップの種類やグラフィックBIOSの情報などが表示される。

 また、その下の画面はセーフモード実行中のデスクトップだが、標準のディスプレイ・ドライバ(VgaSave)を用いて、高解像度による多色表示が可能となっている。

セーフモードの状態
グラフィックス・アダプタは、「VgaSave」となる。セーフモードにもかかわらず、高解像度、多色表示が実現している。Windows 2000の場合、セーフモードでは解像度が640×480ドットで16色表示となってしまう。

VBE 3.0対応で実現したセーフモードの高解像度サポート

 以上のような高解像度モードのサポートは、「標準ディスプレイ・ドライバ」がVESAのVBE 3.0(VESA BIOS Extension 3.0)をサポートすることにより実現されている。VBEとは、もともとのVGA BIOS(ビデオBIOS)の仕様をベースに拡張を施した、PCのグラフィックス・サブシステムのためのファームウェア・インターフェイス規格である。ディスプレイ関連規格をとりまとめているVESA(Video Electronics Standards Association)が策定している。最新版であるVBE 3.0には、いわゆるVGA BIOSの拡張だけでなく、プロテクト・モードから拡張機能(VGAに対する)を呼び出すエントリ・ポイントが用意されており、Windows XPの標準ドライバは、このプロテクト・モード・インターフェイスを用いている。したがって、専用ディスプレイ・ドライバを用いずに高解像度を利用するには、グラフィックス・カードがVBE 3.0をサポートしていることが不可欠となるので注意していただきたい(VBE 3.0に対応していなくても、専用ドライバがあれば高解像度表示は可能)。

 もちろん、標準ドライバがVBE 3.0に対応したからといって、専用ディスプレイ・ドライバが不要になるわけではない。確かに標準ドライバだけでも高解像度表示は可能だが、ハードウェアが持つアクセラレーション機能が利用できないため、画面表示がかなり遅くなる。当然のことだが、3Dグラフィックス機能や動画表示関連の機能を用いることもできない。あくまでも、専用ドライバが利用できないような非常事態向けの機能といえるかもしれないが、セットアップ時、あるいはセーフモード時も高解像度が利用可能になるメリットは大きい。少なくともセーフモードでのメンテナンス中に、ダイアログ・ボックスの表示が画面からはみ出す、といったトラブルからは解放されるハズだ。

VBE 3.0対応はUGAサポートへの第一歩

 標準ドライバが高解像度表示に対応することで、Windows XPのディスプレイ機能は、確実に一歩前進する。が、進歩はここで止まるわけではない。Windows XPのさらに次のバージョン「Blackcomb(開発コード名:ブラッコム)」以降のOSでは、UGA(Universal Graphics Adapter)と呼ばれるディスプレイ標準の採用が検討されている。

 VGAまでの標準ディスプレイ技術(CGA、MDA、EGAなど)は、標準化されたBIOSインターフェイスを備えると同時に、I/Oアドレスやレジスタといったハードウェア・インターフェイスの標準が定義されていた。それにより、ハードウェアに直接アクセスするDOSアプリケーション・レベルでの互換性を保証していた。しかし、時代は移り変わり、アプリケーションがハードウェアに直接アクセスすることは事実上なくなった。WindowsなどGUIに対応したアクセラレータ(というより、現在市販されているすべてのグラフィックス・チップ)は、VGAを超えた部分でのハードウェア・レベルの互換性は持たないが、それぞれのOSに対応したデバイス・ドライバを用意することで、ハードウェア・レベルの互換性を不要にしている。

 UGAでは、こうした考えに基づき、ハードウェア・インターフェイスの標準を定めない。定められるのは、VGA BIOSに代わるUGAファームウェアのインターフェイスであり、このインターフェイスに準拠していれば、特にハードウェアをどう設計しなければならない、ということはなくなる。逆に求められるのは、VGA互換のハードウェア・インターフェイスを用いないことだ。

 UGAの狙いは、VGA BIOSに代わるUGAファームウェアのインターフェイス(ソフトウェア・インターフェイス)を定義することで、VGAという旧式のデバイス(レガシー・デバイス)を除去することにある、と考えられる。上記のとおりVGAは、特定のI/Oアドレス、特定のメモリ・アドレスなど、ハードウェア依存のリソースを用いる。こうしたリソースの存在は、システムの自由度を低くするだけでなく、使い勝手の低下を招く。例えば、PCに2枚のグラフィックス・カードをインストールする場合、組み合わせによっては動作しない理由の1つに、現在市販されているすべてのグラフィックス・チップが、VGAの固定したリソースを用いるようになっていることが挙げられる。これは、VGAとハードウェア・レベルの互換性を持っているため、2枚同時に利用しようとすると、リソースの衝突が生じるからだ。現在のPCは、システムに1枚のVGA互換のグラフィックス・カードがインストールされることを前提に、ほかのデバイスがVGAのリソースを使わないことで、プラグ&プレイを実現している。

 いまのところ、2枚のグラフィックス・カードがインストールされた場合、2枚目以降のカードは、内蔵するVGA互換の機能を無効にすることで、2枚のグラフィックス・カードが1台のシステムに共存できるようにしているが、これがいつもうまく動作するとは限らない。そもそも、VGAはそのように考えて作られていない。一部には、VGA機能を無効にするジャンパ・スイッチを持ったグラフィックス・カードもあるが、これはプラグ&プレイの観点から、決して望ましいとはいえない。UGAではVGA互換のリソースを使わず、プラグ&プレイで割り当てられたリソースだけを用いることで、この問題を解消する。

 UGAに準拠したグラフィックス・チップ(を用いたグラフィックス・カード)は、完全なプラグ&プレイが保証されると同時に、複数枚のカードを同時に利用することが容易になる。システムの起動と、OSのセットアップやセーフモードの画面表示は、UGAファームウェアと、これに対応したディスプレイ・ドライバで実現されるが、3Dグラフィックスなど高度な機能にはやはりグラフィックス・チップごとに対応した専用のディスプレイ・ドライバが必要になると考えられる。現時点では詳細は明らかにされていないが、UGAファームウェアの機能は、VBE 3.0の機能を強化したものになる、と考えるのが常識的だろう。サーバなど、グラフィックス機能を必要としないプラットフォームでは、OS標準のUGAドライバを用いるものも出てくるかもしれない。


 INDEX
  Windows 2000 Insider/PC Insider合同特別企画
    Windows XPの正体
    次世代に向けたCD-R/RWの書き込み機能のサポート
  セーフモードが高解像度対応になるWindows XP
    文字表示を滑らかにする新技術「ClearType」
    Windows XPで正式サポートされたDVD-RAM
    大幅に改善されたWindows XPのIDEサポート
    Windows XPのドライバ・インストールに関する安全機能
    高速化されたスタンバイ状態と休止状態
   
 
 
Windows XPの正体


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間