過去との互換性を最大限実現するには、過去のOSをそのまま実行できればよい。Win 7の仮想環境で可能になった、XPをそのまま実行するXP Modeとは?
本記事は、Windows 7のベータ版に基づいたWindows 7 プレビュー―第2回 Windows XP Modeとディスク管理機能」の記事を、RTM版ベースで加筆・修正したものです
今回は、仮想化技術を使って過去のOS環境との互換性を実現するWindows XP Modeについて解説する。
Windows 7の開発目標の1つに、過去のアプリケーションとの互換性を最大限に確保する、というものがある。OSが新しくなって便利になるのは望ましいことだが、そのせいで過去のアプリケーションが利用できなくなったり、不具合が生じたりするようでは困る。そのような問題を避けるため、可能な限り過去との互換性を保つように設計されている。とはいえ、新しい機能や仕様変更を行えば、動作に何らかの支障をきたす過去のアプリケーションが出るのはやむを得ない。
一番簡単な例でいえば、OSのバージョンを見てプログラムが動作を停止するといったケースがある。システムの内部(に近いところ)を操作するようなアプリケーションなどでは、(アプリケーション作成時にはまだ登場していなかった)新しいOSでの動作が保証できないため、意図的に新しいバージョンのOSでは起動しないようにしているものがある。このような場合は、互換性ウィザードなどを使い、アプリケーションから見たOSのバージョン番号を一時的に過去のものにして実行させることができる(いくつかの代表的なアプリケーションに関しては、ウィザードを使わずとも、あらかじめ互換環境で実行するように設定されている)。Windows VistaやWindows XPなどでもこの機能は備えていたが(実行プログラム・ファイルやショートカットのプロパティ画面で変更する)、Windows 7ではアプリケーションを右クリックするだけで簡単に互換性ウィザードが起動できるようになっている。
このウィザードでは、OSが返すバージョン番号を変更したり、Windows 7のいくつかの機能を無効にしたりするなどして、可能な限りアプリケーションの実行環境を過去のOSと互換になるようにしている。具体的には以下のような項目の設定を変更してプログラムを実行させることができる。
上記の[互換性]タブによる実行環境の変更は、過去のOSとの互換性をなるべく実現するようにしてはいるが、完全ではない。基本的にはWindows 7上で実行されているため、APIの挙動やOSの基本仕様などが変わっているとそのままでは実行できない。また32bitと64bitといったアーキテクチャの違いなどに起因する非互換性などの問題もあるし、そもそもシステムの基本部分を操作するようなユーティリティでは、無理にバージョン番号を合わせて動かすと、システムを破壊する可能性もあるだろう。具体的には、次のような問題には対処できない。
■Windows 7上では正しく動作しないアプリケーション
Windows 7とWindows XPを比較すると、例えばフォルダの構造などは大きく異なっており、エクスプローラなどのユーザー・インターフェイスも大きく変更されている。UACの導入によるシステム内部の仕様変更も影響は少なくない。Internet Explorer 8(IE8)では正しく表示できないWebページやアプリケーションなども存在するし、フォントのエンコーディングがJIS90からJIS X 0213:2004(JIS2004)に変更されたことにより、正しく文字が処理できなくなっった古いグラフィックス・アプリケーションなども存在する。IE8やJIS2004はWindows 7の基本機能であり、変更することはできないので、これらを想定したアプリケーションはそのままでは利用できなくなる。
■64bit版Windows 7上で動作保証されていないアプリケーション
最近ではシステムの高性能化も進み、64bitをサポートしたCPUや4Gbytes以上のメモリを持つシステムも少なくない。このようなシステムでは64bit版のWindows 7を利用することが少なくないだろうが、これはほぼ32bit版しか利用されていなかったWindows XPの頃とは大きく状況が異なるといえる。64bit版Windowsでも従来のアプリケーションはほとんどそのまま利用できるが、いくつか制限がある。例えば16bitアプリケーションは利用できない(起動できない)、64bit版のデバイス・ドライバが必須、Program Filesのフォルダ構成などが異なるのでアプリケーションによっては不具合を起こす可能性がある、などである。
■Windows XP版のドライバしか提供されていないデバイスは利用できない
古いデバイスの中には、Windows XP版のドライバしか提供されていない(サポートされていない)ものがあるが、このようなデバイスはWindows 7環境では利用できない。
■32bit版のドライバしか提供されていないデバイスは64bit Windows 7上では利用できない
64bit版のWindows 7上でデバイスを利用するためには、64bit版のドライバが必要だが、コンシューマ向けデバイスの場合は、32bit版の(主にWindows Vista向けの)デバイス・ドライバしか提供されていないことがある。このようなデバイスは64bit版のWindows 7では利用できない。
以上のような互換性の問題を解決する方法としてWindows 7に搭載されたのが「Windows XP Mode」という機能である(とはいえ、すべての問題が解決するわけではないのだが)。
Copyright© Digital Advantage Corp. All Rights Reserved.