▼Windows x64 Editionが出荷開始されたのを受けて,64ビット・ネイティブで動作するアプリケーションの発表が相次いでいる。
▼アプリケーションの中には,64ビット化しないと動作しないものや,64ビット化することで大きなメリットが得られるものがある。
▼出荷が表明されている企業向け64ビット・ネイティブ・アプリケーションを,既存アプリケーションの対応状況も踏まえて紹介する。

図1●フィルタ・ドライバの動作
ドライバとドライバの間,もしくはドライバとカーネルの間に位置して,通過するデータを監視/変更する。図を簡単にするために,ここではバス・ドライバとファンクション・ドライバなどの細かい区別を省略している。
表1●x64対応64ビット版の出荷が表明されている企業向けアプリケーションの例(主要な機能のみ64ビット化されている製品を含む)
図2●PTCジャパンのCADソフトPro/ENGINEERの64ビット版の画面
2Gバイトを超えるデータ・ファイルを読み込んで表示したところ。32ビット版では一度に読み込めないため,データを分割して読み込むなどの作業が必要になる。
図3●Pro/ENGINEERの32ビット版と64ビット版の性能比較(日本ヒューレット・パッカードとPTCジャパンが共同で実施したテストの結果を基に作成)
グラフはいずれも処理にかかった時間(秒)を表しているので,値が小さいほうが高速である。テストに使用したマシンは,3.6GHz動作のXeonを2個と4Gバイトのメモリーを搭載したHP xw8200。OSは,テスト時期の関係で,Windows XP Professional SP2とWindows XP Professional x64 Edition RC2である。
 Windows XP Professional x64 EditionとWindows Server 2003 Standard/Enterprise x64 Editionでは,WOW64と呼ぶ仕組みによって既存の32ビット・アプリケーションの多くがそのまま動く。しかも,IPF(Itaniumプロセッサ・ファミリ)向けの64ビットWindowsと異なり,32ビットWindowsの上で動作させた場合と比較してパフォーマンスはほとんど低下しない。

 とはいえ,アプリケーションの中には,64ビット化することが望ましいものが少なからずある。これらは大きく2つのカテゴリに分けられる。1つはそもそもWOW64で動作しないアプリケーション,もう1つは64ビット化によって大きなメリットが得られるアプリケーションである。

 WOW64上で32ビット・アプリケーションが動作しないケースはいくつかある。まず挙げられるのが,カーネル・モードで動作するフィルタ・ドライバなどを利用して一部の機能を実装している場合だ。フィルタ・ドライバは,ドライバの階層構造の間,もしくはドライバとカーネルの間に割り込んで,流れるデータを監視したり変更したりするソフトウエアである(図1[拡大表示])。例えば,ウイルス対策ソフトは,ファイルを読み書きする際にウイルスを含んでいるかどうかをリアルタイムにチェックするといった機能を持つものが一般的だ。こうした機能をフィルタ・ドライバとして実装すれば,ハードウエア固有のコードを書くことなくすべてのファイル・アクセスを監視できる。

 しかし,フィルタ・ドライバはカーネル・モードで動作する上,利用するAPIも通常のWin32 APIと異なるので,WOW64上で動作させることができない。32ビット版ウイルス対策ソフトの多くがx64 Editionで動作しないのは,これが1つの原因だ。同様に,ファイルの書き込みを監視するタイプのバックアップ・ソフトにも,同じ理由で動作しないものがある。

 64ビット・プロセスが32ビットDLLを呼び出せないこともWOW64上で動作しない原因の1つだ。Internet Explorer(IE)の機能を拡張する32ビット・プログラムが,64ビット版IEで動作しない,というのがその例である。また,アプリケーション自体が32ビットでも,インストーラが16ビットであるためにインストールできないというケースもある。x64 Editionは,InstallShieldなどのよく利用される16ビット・インストーラを動作させる仕組みを備えているが,すべての16ビット・インストーラが動作するわけではない。

 一方,64ビット化によって大きなメリットが得られるソフトとしては,CADソフトや3Dモデリング/レンダリング・ソフトなどが挙げられる。32ビットWindowsでは,アプリケーションが利用できるメモリーは通常2Gバイト,特別なオプションを指定しても3Gバイトであるのに対し,x64 Editionでは最大8Tバイトのメモリーを利用できる。巨大なデータを扱うことが多いこうしたソフトは,利用可能なメモリー量は何よりも重要だ。また,データベース管理システム,SMTPサーバー,Webアプリケーション・サーバーなども,データ量や接続クライアント数によってはパフォーマンスの大幅な向上が期待できる。加えて64ビット化すれば,(1)レジスタ幅が広い,(2)レジスタの数が多い,(3)関数呼び出しのオーバーヘッドが小さい――といったパフォーマンス上のメリットも得られる。

 ちなみに,x64 Editionでは,32ビット・アプリケーションであっても32ビットWindowsよりも多くのメモリーを利用できる。実行ファイルのヘッダー部にあるIMAGE_FILE_LARGE_ADDRESS_AWAREフラグをオンに設定した場合,32ビットWindowsでは3Gバイトまでしか利用できないが,x64 Editionでは4Gバイトのアドレス空間すべてをアプリケーションで利用できるようになる。アドビシステムズが7月に出荷する画像処理ソフトの新版Photoshop CS2は,32ビット・アプリケーションであるものの,これを利用してWOW64上で約3.5Gバイトのデータを扱えるようにしている。

64ビット化で巨大なデータを扱える

 2005年6月時点で出荷済み,もしくは今後出荷が表明されているx64対応の企業向け64ビット・アプリケーションの例を表1[拡大表示]に示す。いずれも,先の2つのカテゴリに当てはまるものばかりだ。

 最初のウイルス対策ソフトは,ファイルをスキャンするだけならWOW64上でも動作するが,ファイル・アクセスをリアルタイムに監視したりするためには,64ビット化しなければならない。シマンテックのSymantec AntiVirus Corporate Edition 10.0は管理サーバーや検疫サーバーなどのコンポーネントがx64 Editionに未対応であるものの,クライアント側については64ビット・ネイティブ版を用意している。x64 Editionの正式発表前から体験版が公開されていたコンピュータ・アソシエイツのeTrust Antivirus 7.1も,64ビット化されている。

 バックアップ・ソフトは,動作する仕組みによって64ビット化が必要なものとそうでないものに分かれる。ベリタスソフトウェアのBackup Execと,プロトンが販売するTrue Imageは,64ビット化したエージェントを用意する。これに対し,報映産業とアクト・ツーが販売するRetrospect 7.0は,開発元の米EMCが配布するパッチを適用してWOW64上で動作させる。コンピュータ・アソシエイツのARCserve BackupもWOW64上で動く新版を出荷する予定という。

 CADソフトや3Dモデリング/レンダリング・ソフトは,大量のメモリーを必要とするほかに計算量も多い。64ビット化することで,32ビット版では分割して設計しなければならなかったようなデータ・サイズの大きな図でも一度に扱えるようになる。さらに,パフォーマンスの向上も期待できる。実際,PTCジャパンが販売するCADソフトPro/ENGINEER Wildfire(図2[拡大表示])では,データの読み込み速度や隠線表示などの処理が32ビット版に比べて5~15%程度高速になる(図3[拡大表示])。

 データベース管理システムも,利用可能メモリーが多いほど性能が向上し,64ビット化の利点が大きい。既にIA-64版などが出荷されているDB2とOracleは,x64 Edition向けの64ビット版も出荷する。SQL Server 2000は,5月にリリースされたSP4でx64 Editionに対応したが,32ビットのままである。2005年末に出荷予定のSQL Server 2005には,64ビット版も用意される。

 サーバーアプリケーションでは,グループウエア・ソフトのExchange Server 2003がx64 Edition上で動作しない点に注意が必要だ。これは,データ・アクセス用のコンポーネントであるExchange Installable File Systemがカーネル・モード・ドライバとして実装されているためである。マイクロソフトは,次期版でx64に対応する予定だ。同社は,Exchange Serverに限らず,サーバー製品の多くを次のバージョンで64ビット化するという。

 これに対してサイボウズは,グループウエア「サイボウズOffice 6.5」の動作をWindows 2003 x64 Editionで検証し,インストーラを起動するフォルダに制限があるほかは,WOW64上での動作を確認した。同社は,WOW64上でも十分なパフォーマンスを得られるため,現時点で64ビット化の予定はないとしている。Lotus Notes/Dominoについて,日本IBMは対応する予定はないという。

32ビットのままで十分なものも多い

 一方,メモリーをそれほど必要としないなど,64ビット化のメリットがあまりないアプリケーションの場合は,新たに64ビット版を開発するのはコストに見合わない。オフィス製品や中小企業向け会計ソフトをはじめ,多くのアプリケーションがこれに相当する。こうしたアプリケーションについては,32ビット版をそのままWOW64で動作させるのが現実的だ。ただ,その場合でも,正常に動作するかどうかの検証作業は必要になる。

 マイクロソフトは,WordやExcelなどのOffice 2003製品について,x64 Edition上での動作を確認している。ただしx64 Editionでは,仮想プリンタのOffice Document Writerが利用できないという制限がある。これは,Office Document Writerがプリンタ・ドライバとして動作するためだ。

 同様に,ジャストシステムは,一太郎,花子,三四郎などについてWindows XP Professional x64 Edition上での動作を確認しているが,64ビットのIEで一太郎の文書ファイルを表示できない,ATOKで64ビット・アプリケーションへの日本語入力ができないといった制限がある。いずれも,64ビット・アプリケーションから32ビットDLLを呼び出せないことが原因である。

 会計ソフトは,利用するユーザー数などによって64ビット化のメリットがあるかどうかが異なる。オービックビジネスコンサルタントは,同社が販売する奉行シリーズすべてがWOW64上で動作することを確認済みであるほか,次期版で.NET Framework 2.0に対応した製品を出荷する予定だ。.NET Framework 2.0を利用することで,1つのプログラムが32ビットWindows上では32ビットで,64ビットWindows上では64ビットで動作するようになる。

 残念ながら,x64 Editionが出荷されて間もない現在,動作検証を終えているベンダーは少数派だ。各種会計ソフトを販売する弥生,資産管理ソフトQND Plusを販売するクオリティやLanScope Catを販売するエムオーテックスなど,多くのベンダーが検証作業を進めている段階だという。こうした検証結果ができるだけ早く公開されることを望みたい。

(山本 哲史)