マイクロソフト、64bit環境に関する開発/技術者向けセミナー“Microsoft Windows 64-bit Edition Technology Tour 2004”を開催
2004年06月23日 20時57分更新
米マイクロソフトのWindowsディビジョン・リードプロジェクトマネージャー、クライド・ロドリゲス氏 | 『Windows XP 64-bit Edition』の起動画面。x64向け64bit版Windows XPのリリースは2004年下半期に登場予定 |
64bit版Windowsがサポートするメモリー容量とプロセッサー数などの一覧 |
冒頭「今回来場した開発者の方々の中には16bitから32bitへの移行を経験した人も多いのではないか」と述べた同氏は、異なるメモリーモデルやデータサイズタイプ、エントリーポイントの問題など、「しばしば多くの困難を伴った」(同氏)16bitから32bitへの移行プロセスと比較すると、メモリーモデルとデータタイプサイズが同じことなどから、今回の32bitから64bitへの移行は容易であるとしている。
32bit版と64bit版のWindows XPやWindows Server 2003は同じソースコードツリーから開発されている |
64bit版Windowsに“IPF”向けと“x64”向けがあることは前述したとおりだが、同氏の説明によると、いずれのバージョンも32bit版と同じソースコードツリーから開発されており、ごく少数の非互換API(10程度)を除く99%以上の互換性を持つという。また、バイナリーは“IPF”版と“x64”版とで別々だが、機能的には差異はないという。
“Windows 32 on Windows 64(WOW64)”の基本構造。IPF向け64bit版Windowsでは32bitアプリケーションの動作にWOW64に加えて実行レイヤーが必要。x64ではそのまま実行される | dumpbin.exeでWord 2003の実行ファイルを判定した結果。32bitアプリケーションと判定されたが、64bit環境でも問題なく動作していた |
64bit版Windows上での32bitアプリケーションの実行は、OS起動時にロードされる新サブシステム“Windows 32 on Windows 64(WOW64)”が用いられる。エンドユーザー側からは見えない状態で機能し、64bit版Windows上でほとんどの32bitアプリケーションが動作するようになる。ただし、16bitアプリケーションは動作せず、Kernel Modeドライバーは64bit化が必須となるという。なお、アプリケーションを実行しただけではそのアプリケーションが32bitが64bitかを判定するのは困難だが、dumpbin.exeという判定プログラムやタスクマネージャーにより確認が可能だという。
32bitアプリケーションの64bitへの移行に向けたガイドとしては、アプリケーションの分析の必要性を強調。分析すべき点としては、
- 単体アプリケーションか、階層型のアプリケーションか
- 必要とするテクノロジーは何か(COM/COM+、ISAPI、.NET、など)
- どのコンポーネントが利用可能か
を挙げている。
MSDNで配布されているサンプルプログラム“Nile”(32bitアプリケーション、画面左)を64bit化する例。右が64bit化されたのちの構造図。画面へのアウトプット部分は64bit化の恩恵がないため32bitのまま残し、データのやり取りが行なわれる他の部分を64bit化している |
またロドリゲス氏は、64bitに移行するメリットをケースバイケースで分析し、「本当に64bitに移行する必要があるかどうかを判断する必要がある」と述べている。例として紹介された32bitアプリケーションの場合、SQL Serverとのデータ交換を行なう部分などは64bit化による高速化などのメリットが大きいが、結果の表示部分については、64bit化しても高速化などのメリットはないため、あえて工数を費やして64bit化する必要はなくそのまま使用する、といったように判定されていた。なお、同氏のコメントによると、32bitアプリケーションを64bitにリコンパイルした場合、アプリケーションによって違いはあるものの、おおむね64bitアプリケーションのほうが25%程度ほどファイルサイズが大きくなる傾向にあるという。