このページの本文へ

前へ 1 2 3 次へ

あなたの知らないWindows 第18回

32bitアプリを64bit Windows 7で動かす「WOW64」

2009年12月03日 12時00分更新

文● 山本雅史

  • この記事をはてなブックマークに追加
  • 本文印刷

 Windows 7が発売されて1ヵ月が過ぎた。すでにWindows 7へ移行した読者の方も多いだろう。Windows 7はVistaの時とは異なり、64bit対応CPUの普及やメモリーの低価格化などにより、32bit版よりも64bit版に人気が集まっているという話も聞こえる。秋葉原などで販売されている自作パソコン用のDSP版だけでなく、パソコンメーカーのラインナップにも、64bit版Windows 7搭載製品が増えている。

 だが64bit版の導入に当たって一番気になるのは、既存の32bitプログラムとの互換性だろう。そこで今回は、64bit版Windows上で、32bitプログラムを動かす仕組み「WOW64」(Windows On Windows 64)について解説しよう。なお、32bit版Windows 7と64bit版Windows 7のパフォーマンス差については、こちらの記事を参照のこと。

64bit版Windows 7のタスクマネージャーのプロセスを見ると

64bit版Windows 7のタスクマネージャーのプロセスを見ると、名前の後ろに「*32」と書かれたものがある。これがWOW64により32bitモードで動作している32bitプログラムだ


そもそも64bit版Windows 7の特徴は?

 64bit版Windows 7は、当然ながら64bitプログラムによるカーネルソフトでOSが動作している。カーネルを64bit化することで、64bit x86 CPUで拡張された64bit汎用レジスターの機能をフルに生かせる。

 またOSが対応するメインメモリー量も、32bit版Windows 7が最大4GB(Starterは2GB)なのに対して、64bit版Windows 7 Home Premiumでは最大16GBまで、Professional以上なら192GBまでとなっている。もっとも、実際のパソコン用CPUやチップセットが対応するメモリー量はそこまで大きくない(Core i7-800番台で16GB)ので、パソコンにこれだけのメモリーを積めるわけではないが。ちなみに、64bit版Windows 7とOSカーネルが同じサーバーOS「Windows Server 2008 R2」のDatacenterエディションでは、最大2TBまでサポートしている。

 64bit版Windows 7が対応するメモリー領域が大きくなれば、ソフトは32bit版をはるかに超える広大なメモリー領域を使用できる。例えば、巨大なサイズの写真を扱うことも多い写真編集ソフトの「Adobe Photoshop」などは、64bit版Windows 7のメリットが生かせるソフトだろう。


CPUの64bit拡張によってWOW64は実現

64bit版Windowsでの、64bitプロセスと32bitプロセスの扱われ方

64bit版Windowsでの、64bitプロセスと32bitプロセスの扱われ方(マイクロソフト資料より引用)

 64bit Windows(VistaやXPも含む)は、WOW64という32bitエミュレーション機能を搭載している。この機能により、64bit OSでも32bitプログラムを問題なく動かすことができる。元々はWindows XPの64bit Editionから導入された仕組みなので、Windows 7の新機能というわけではない。

 WOW64は、x86アーキテクチャーで拡張された64bit機能(Intel64、AMD64)を活かしている。CPUの64bit拡張に関しては、「ロードマップでわかる!当世プロセッサー事情」の第24回で詳しく述べられているので、ここでは詳しくは解説しない。簡単に言えば、x86の64bit拡張は、CPUレジスターをあまり変えずに、32bitだったものを64bitに拡張している。また64bit命令セットは、32bitの命令セットと互換性をもっている。そのため64bitモードでも、32bitの命令をそのまま動かすことができる。

64bitカーネル上に、32bitプログラムが動作できる環境を構築

64bitカーネル上に、32bitプログラムが動作できる環境を構築。それが「WOW64」(TechED09のスライドより引用、以下同)

 WOW64は、Intel64やAMD64で拡張された64bitの仕組みをうまく使って、64bit OSで32bitプログラムを動かしている。先に「WOW64という32bitエミュレーション機能」と書いたが、エミュレーションといっても、仮想マシンのようにx86命令を異なるCPUアーキテクチャーの命令に変更するわけではない。

WOW64はIntel64/AMD64だけでなくItaniumにも搭載されている

WOW64はIntel64/AMD64だけでなくItaniumにも搭載されている。ただし、Itanium版は、WOW64でx86CPUのエミュレーションをするため遅い

 Intel64/AMD64では、シームレスに32bitプログラムと64bitプログラムを動かせる。そのため、64bit環境で32bitプログラムを、64bitプログラムとほぼ同等のパフォーマンスで動かすことが可能だ。ただし、WOW64を使用する分若干のオーバーヘッドが存在はする。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン