WOW64によってレジストリも2種類あり
64bit版Windowsでアプリケーションが動作する際には、Windowsシステムフォルダー(¥Windows¥System32)にあるアプリケーションやDLLにアクセスする。このWindowsシステムフォルダーにあるのは、64bitのプログラムだ(64bitプログラムがあるのに「System32」なのは互換性維持のため)。
先に述べたように、WOW64上で32bitプログラムを動かした場合、64bitのDLLは呼び出せない。そのためWOW64では、32bitプログラムに対してWindowsシステムフォルダーを「¥Windows¥SysWOW64」に切り替える。このSysWOW64フォルダーに、32bit版のアプリケーションやDLLが保存されている。
またレジストリにも、WOW64上で動かす32bitプログラムのために、「HKEY_LOCAL_MACHINE¥Software¥Wow6432Node」という項目が用意されている。32bitプログラムが使用するレジストリは、この項目以下に作られる。もちろん、WOW64環境用の32bit用レジストリエディター(¥Windows¥SysWOW64¥Regedit.exe)も用意されている。
なお、アプリケーションをインストールする際には自動でチェックされ、64bitアプリケーションは「¥Program Files」に、32bitプログラムは「¥Program Files(x86)」にインストールされる。
.NETアプリケーションはシームレスに
C++などで作成した一般的な32bitアプリケーションは、先に説明したようにWOW64でエミュレーションされる。ところで、マイクロソフトの「.NET Framework」で作成した.NET対応アプリケーションはどうなるのだろうか?
.NET FrameworkはJavaのように、プログラムを中間言語に変換して、インタプリターが逐次実行する仕組みをとる。64bit Windowsでは、64bit版の.NET Frameworkが用意されるため、.NET対応アプリケーションは自動的に64bit環境で動作する。.NET Frameworkは32bitか64bitといった違いも吸収してくれるわけだ。
64bit版だけの機能も搭載
主流になるのも遠くない
WOW64は64bit Windows環境の上に32bit Windows環境を用意する互換機能だ。そのため、64bitと32bitのプログラムは事実上分断されている。しかし、x86 CPUのIntel64/AMD64機能自体は、64bit/32bitプログラムの混在が可能である。例えばMac OS Xでは、64bit OS上で32bitのデバイスドライバーが使えている。そのため、「WOW64のコンセプトに問題があるのでは」とも言われる。
OS開発の経緯や優先順位など、いろいろな事情はあるだろう。しかし、16bitから32bitへのOSとアプリケーションの進化の過程を見てきたマイクロソフトは、「早晩すべてのソフトが64bit化する」と考えているのではないか。
32bitと64bitの混在を許せば、多くのアプリケーションが64bit化されても、カーネルやデバイスドライバーの一部などに、32bitプログラムが澱のように残ってしまう。そうなると、32bitプログラムが性能面でのボトルネックになったり、トラブルの原因となる可能性もある。そう考えて、WOW64によって32bitプログラムと64bitプログラムの実行環境を分け、将来的にフル64bit環境をWindowsで実現しようとしているのでは、と筆者は考える。
実際に、64bit版Windows 7付属のアプリケーションは、メモ帳やペイントなど、ほとんどが64bit化されている。また、2010年にリリース予定の「Office 2010」では64bit版もリリースされる予定だ。
また、64bit版Windows7とWindows Server 2008 R2には、Vista/Windows Server 2008までと異なり、カーネルにマルチスレッドを効率的に動かす機能「UMS」(User Mode Scheduler)が追加されている。32bit版Windows 7にはない機能である。
UMSは2010年にリリースされる開発ツール「Visual Studio 2010」(VS2010)でサポートされる。今後VS2010で開発したソフトが出てくれば、64bit版Windows 7では、より効率いいスレッド管理が行なえるようになる。こうなると、マルチコアCPUでの64bit版Windows 7のパフォーマンスは、さらに向上していくだろう。
Windows Server 2008 R2が64bit版しかリリースされなかったように、次世代のWindows 8もまた、64bit版しかリリースされないことも考えられる。将来、「Windows 7は64bitアプリケーション時代への幕開けとなった」と記憶されるかもしれない。
この連載の記事
-
第50回
PC
次期IE「Internet Explorer 10」プレビュー版が公開 -
第49回
PC
RTM版も登場 Windows Home Server 2011の変更点とは -
第48回
PC
5秒で起動するSplashtop OSを自作パソコンで試す -
第47回
PC
ベンチで検証 Internet Explorer 9 RCの互換性と性能 -
第46回
PC
正式版の直前となるInternet Explorer 9 RC版が登場 -
第45回
PC
Silverlightをさらに進化させる「Silverlight 5」 -
第44回
PC
「Windows on ARM」が持つ意味と課題は何か? -
第43回
PC
GPUを利用できる仮想化ソフト XenClient 実践編 -
第42回
PC
複数のWindowsを使い分ける仮想化ソフト XenClient -
第41回
PC
3秒で起動しWindowsと共存するOS「Splashtop OS」 -
第40回
PC
最新版「PP7」に見るIE9の性能と互換性の高さ - この連載の一覧へ