写真1 Linux上でWindowsアプリケーションを動かしているところ
写真1 Linux上でWindowsアプリケーションを動かしているところ
[画像のクリックで拡大表示]
図1 Wineの仕組み。Windowsが備えるDLL(ダイナミック・リンク・ライブラリ)やAPI(アプリケーション・プログラミング・インタフェース)と同等なものを用意する。
図1 Wineの仕組み。Windowsが備えるDLL(ダイナミック・リンク・ライブラリ)やAPI(アプリケーション・プログラミング・インタフェース)と同等なものを用意する。
[画像のクリックで拡大表示]

 Wine(ワイン)は,X Window Systemが動作するUNIX系OS上で,Windowアプリケーションを動作させるためのオープンソース・ソフトウエア(写真1)。Linux版のほか,FreeBSD版とx86向けSolaris版が公開されている。

 Wineは,米VMware社が提供する仮想化ソフトの「VMware Player」などとは異なり,WindowsやLinuxといったOS自体は動作しない。あくまでも,WindowsアプリケーションがWine上で動作する。

 Wineの手法は,PCをエミュレートするのではなく,Windowsアプリケーションが利用するWindows API(Application Programming Interface)やWindowsアプリケーションが呼び出すDLL(Dynamic linked library)をLinux上に実装することで,Windowsアプリケーションを動作させるというものだ(図1)。Windowsアプリケーションはファイル・アクセスや印刷についてもWindows APIを利用するため,Windowsのディレクトリ構成や印刷についても互換環境を提供できる。

 Wineプロジェクトは,Windows 3.x用の16ビット版ソフトウエアをLinux上で動作させるために,Bob Amstadt氏とEric Youngdale氏が1993年に始めた。2005年10月に0.9版が公開され,2006年9月8日時点のバージョンは0.9.20である。開発期間がこれほど延びた主な理由は,Windows APIの仕様が完全には公開されていないこと,APIの仕様が米Microsoft社により変更され,変更内容が一部しか公開されないこと,32ビット版のAPIであるWin32が登場したこと,の3つである。2006年時点においても,WindowsのAPIのうち,日本語環境を中心に不完全な部分が残っている。したがって,これらのAPIを用いる一部のWindowsアプリケーションは動作しない。

 Wineは,商用アプリケーションとしても提供されている。米CodeWeavers社は主にMicrosoft Officeを動作させるためのソフトウエアとしてWineを用いた商用ソフトウエア「CrossOver Office」を開発・販売している。また,米TransGaming Technologies社が開発・販売する「Cedega」は主にWindows用ゲーム・ソフトの動作を目的としている。

 Wine上で動作する複雑なアプリケーション・ソフトウエアとしては,ジャストシステムのワープロ・ソフト「一太郎 for Linux」や米Google社のフォト・アルバム作成ソフト「Picasa」などが存在する。