Wine

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Wine
Wine logo
Wine 1.3.7 on Ubuntu 10.10.png
Ubuntu 10.10上の winecfg
開発元 Wine チーム
最新版

1.4.1 - 2012年6月15日(11か月前) (2012-06-15

[±]
最新評価版

1.5.30 - 2013年5月10日(31日前) (2013-05-10

[±]
対応OS UnixUnix系 OS
種別 互換レイヤー
ライセンス GNU Lesser General Public License
公式サイト http://winehq.org/
テンプレートを表示

Wine (ワイン)は、オープンソースWindows API 実装を通じて、主として x86 アーキテクチャ上の Unix 系 オペレーティングシステム (OS) において Microsoft Windowsアプリケーションをネイティブ動作させることを目標とするプログラム群である。

X Window System を利用して、16 ビット・32 ビット・64 ビット Windows 向け GUI アプリケーションを動作させることができるほか、MS-DOS 用アプリケーションも動作する。x86 上の Linux 環境を中心に開発されているので、SolarisFreeBSDMac OS X など、他の OS にも移植されているが、それらの環境下では問題が発生する可能性は比較的高い。原理上、カーネルレベルのスレッドに対応している OS であることが必要である[1]

名称は、もともとは頭字語であることを意識して、大文字で WINE と表記していたことがあったが、現在は Wine と表記するのが正式である[2]。"WINdows Emulator" に由来すると説明されることもあるが、Wine Is Not an Emulator に由来するという、一見してそれとは矛盾する説明がなされることもあり、これは技術的理由による。詳しくは後述する。

ライセンスに LGPL を採用している[3]フリーソフトウェアである。

目次

概要[編集]

Wine 上の Media Player Classic バージョン 6.4.8.3

Wine 以外に Linux 上で Windows アプリケーションを動作させる方法としては、XenVMware など、仮想マシンを構築するものが代表的である。Wine はそれらとは異なり、互換レイヤーとして動作する。つまり、Windows プログラムが要求する DLL の代替品を供給し、また Windows NT カーネルプロセスを再現することによって、Windows プログラムをネイティブ動作させる。簡単に言えば Wine は、Linux 上で Windows を動作させているのではなく、Linux に Windowsと同じ挙動をさせているのである。したがって Wine で Windows プログラムを動作させる上では、Windows のコピーもライセンスも必要ではない[4]。ただし、Wine のエミュレーションライブラリが不完全な場合には Windows の DLL を利用することで解決できる場合がある[5]。その場合には Wine を動作させるコンピュータに Windows のコピーとライセンスが必要である。

ところで、Wine という名称は "Wine" Is Not an Emulator を略した再帰的頭字語であるとも説明される[6]DOSBox や zsnes のような典型的なエミュレータと異なり、Wine は基本的には CPU エミュレーションを行っていない。そのため通常この種のエミュレータに発生する、オリジナル環境と比べた著しいパフォーマンス低下が Wine には見られない。このことを強調する開発者の立場から、そのような説明がなされる。実際、アプリケーションによっては Windows 上より高速に動作することもあるという[7]。同じく基本的には CPU エミュレーションを行わない、x86 上の仮想マシンにインストールした Windows 環境と比べても、そのような実行速度は優れたものである。しかし、その代償としてプロジェクト規模が巨大化した Wine は、人的資源の不足のため本来実装されるべき機能が依然として完全には提供されていない[8]。そのため再現性は仮想マシン上にインストールした Windows と比べて大きく劣る。高速化よりはむしろ再現性の向上を第一の目標として開発されている。

Wine に含まれる Windows API 実装は Winelib と呼ばれ、これを用いて Windows プログラムのソースコードからプラットフォームネイティブなバイナリ実行ファイルや DLL)をビルドすることも可能である。しかしながら、x86 環境では付属するバイナリローダー(wine コマンド)からコンパイル済みバイナリを起動すればよく、実用上は実行速度にも大きな差はない。非 x86 環境で Windows バイナリを実行するためには、QEMU などを CPU エミュレータとして利用可能[9]だが、低速である。

歴史[編集]

サン・マイクロシステムズPWI (Public Windows Initiative) や Wabi[10] (Windows API のパブリックドメインソフトウェアによる完全代替を目指したもの) の影響を受け、ボブ・アムスタッドとエリック・ヤングデイルにより Windows アプリケーションを Linux 上で動作させることを目的として Wine プロジェクトは1993年にネットニュース上で創始された[11]。当初は Windows 3.1 用 (16 ビット) アプリケーションに主眼を置いたが、現在は 32 ビット中心に開発されている。1994年以降はアレクサンダー・ジュリアードがプロジェクトリーダーを務めている[12]

プロジェクトは困難を極め、なかなか互換性が高まらなかった。特に 1990年代は、日本語環境においてアプリケーションが思うように動かせない状況が続き、Wine のインストールや動作にもそれなりのスキルが必要とされていた。

Wine プロジェクトに着目したコーレルなどの支援によって一時的に状況は好転したが、マイクロソフトのコーレルへの大規模投資が原因となって、この支援は中止された[13]

現在は CodeWeavers がジュリアードらを雇っている[12]。また、Google は Linux 版 Picasa で Wine を利用し、Wine の開発を支援している[14]

最初のベータ版となったバージョン 0.9 は 2005年10月25日にリリースされ、最初のリリース候補版 (1.0-rc1) は 2008年5月9日にリリースされた。2008年6月17日には Wine 1.0 がリリースされた[15]2010年5月21日 Wine 1.2 のリリース候補版 (1.2-rc1) がリリースされ[16]2010年7月16日、Wine 1.2 がリリースされた。[17]2012年3月7日には、Wine 1.4がリリースされた。

対応アプリケーション[編集]

Wine における Windows アプリケーションの動作状態は Wine アプリケーションデータベース (AppDB) で調べることができる。Wine AppDB では Wine ユーザからの動作報告がデータベース化されており、アプリケーションが動作状況の良い順に "Platinum", "Gold", "Silver", "Bronze", "Garbage" で格付けされている[18]。一般に Wine のバージョン毎に格付けが変わる。

Wine 1.0 で

がリリース基準に使われた[19]こともあり、Wine 1.0 ではこれらのアプリケーションが問題なく動作すると報告されている[20][21][22][23]

付属プログラム[編集]

Wine には wine コマンドを中心として様々なプログラムやツールが含まれている[24]

  • wine - 一般に Wine がインストールされた環境で Windows プログラムを起動するには EXE ファイルをダブルクリックすればよい。しかし、場合によってはデバッグなどの目的でコマンドラインからプログラムを起動させたいことがある。wine はこのようなときに用いるコマンドで、引数に Windows プログラムを指定する。
  • Wine 設定 (winecfg) - Wine 全体の設定を GUI で行うためのプログラムである。
  • Wine File (winefile) - MDI 型のファイルマネージャであり、Windows Explorer に対応する(見た目としてはWindows 3.xのファイルマネージャに近い)。コマンドラインから wine explorer と入力することでも起動する。
  • Wine Application Uninstaller (uninstaller) - GUI でプログラムをアンインストールするためのツールであり、Windows の「プログラムの変更と削除」に対応する。
  • regedit - GUI でレジストリを編集するためのプログラムであり、同名の Windows 付属プログラムに対応する。

コマンドプロンプト (cmd)、メモ帳 (notepad)、タスクマネージャ (taskmgr)、マインスイーパ (winemine) やワードパッド (wordpad) なども含まれている。コマンドラインから起動する場合、cmd, taskmgr, wordpad など一部のプログラムについては、wine コマンドの引数としてプログラム名を指定して起動する。例えば、ワードパッドを起動するには仮想端末から

$ wine wordpad

と入力する。なお $ は Bash 等のシェルにおけるプロンプトである。

ディレクトリ[編集]

Wine やアプリケーションの EXE ファイルやレジストリなどはホームディレクトリ内の .wine ディレクトリ下に保存される。保存先は環境変数 WINEPREFIX を設定することで変更できる[25]。かつて Wine の設定ファイルとして config というファイルがあったが、2005年に廃止され[26]現在は拡張子が reg のファイルに設定が保存されるようになっている。

アプリケーションのデスクトップエントリファイルやアイコンなどはホームディレクトリ下の

  • .config/menus/applications-merged
  • .local/share/applications/wine
  • .local/share/desktop-directories
  • .local/share/icons

にインストールされる[27]。これらのディレクトリにインストールされるファイルは GNOMEKDE などでメニューに使われる。

Wineに似た他のプロジェクト[編集]

  • CodeWeavers - アメリカの会社で、Windows 向けのブラウザ用プラグインソフトを Linux 上で動作させる CodeWeavers Plugin などを開発・販売している。Wine ベース。また、Windows アプリケーションを動作させる CrossOver Linux という製品や、Mac OS X 上で Win32 アプリケーションを動作させる CrossOver Mac を出荷している。
  • cedega - TransGaming Technologies 社の Wine の改良版プロジェクト。 DirectX に対応しているのが特徴。主に Windows 用ゲームを Linux 上で動かすことを主目的にしている。
  • ReactOS - Windows NT とバイナリレベル・ドライバレベルでの互換性を確保することを目標とした、オープンソースプロジェクト。Wine とも協力して開発を進めている。

Wine 用のツール[編集]

  • Wine-Doors - GNOME デスクトップ用のアプリケーション管理ツールであり、Wine に機能を追加する。Wine-Doors は WineTools の代りとなるもので、WineTools の機能を改善し、より現代的な設計アプローチのもとで WineTools のアイディアを発展させることを狙いとしている。
  • WineBot - apt/dpkg/rpm のようなネイティブな Linux パッケージマネージャと同様の方法で動作するようなアプリケーション管理ツールである。このプロジェクトの狙いは特定のアプリケーションをインストールするのに必要なハックを追跡するためのプラットフォームと、Wine プロジェクトの自動退行テストフレームワークを提供することに加え、Wine-Doors とのデータ互換性をもたせることにある。
  • WineTricks - Wine を正しく動作させるのに必要で基本的なコンポーネントをインストールするためのやっつけで汚いスタイルのスクリプトである。これを使えば QuickTimeWindows Media Player.NET FrameworkDirectXランタイムライブラリなどが簡単にインストールできる。
  • IEs4Linux - バージョン 5 から 6 までの Internet Explorer (IE) をインストールするためのユーティリティであり、まもなく IE7 もサポートされる予定である。現在 IE7 のエンジンはユーザが選択したときにのみインストールされる(ベータ段階)。ただし IE のライセンスの関係上、一部のバージョンの IE に関して Wine 上で使用することはライセンス違反となる可能性が高い[注釈 1]。また、それ以外のバージョンでも Windows のライセンスが必須[注釈 2]である。
  • WineLocale - Windows プログラムの中には日本語や中国語、韓国語などで使われることのある非 Unicode文字コードのサポートを必要とするものがある。 WineLocale はこのようなプログラムを Wine で動作させるための拡張ユーティリティである。Ubuntu のフォーラムにこのツールを使うためのドキュメントがいくつかある[28]
  • PlayOnLinux - Wine を使って Windows のゲームのインストールを簡単にするためのアプリケーション。特別な設定が必要なゲームに対して適用するスクリプトのオンラインデータベースを使っている。ゲームがデータベースに無ければ、手動インストールもできる。ゲーム以外のプログラムもインストールでき、あるプログラムが他のプログラムに干渉することを避け隔離するため個々のプログラムは異なるコンテナ (環境変数の WINEPREFIX) に置かれる。これは CrossOver Office の bottles が動作する方法と同じである。

Wine を利用しているソフトウェア[編集]

  • CrossOver - Intel Mac, Linux 上で Windows アプリケーションを利用するためのソフトウェア。あらかじめ動作を保証するアプリケーションを提示しており、そのアプリケーションに関してはドライバのインストールなどテクニカルな設定を行う必要が無い。場合によってはある程度テクニカルな設定を行う必要があるが、保証しないアプリケーションに関しても概ね動作する。多くのドライバを必要とする Windows 専用のゲームソフトウェアを Intel Mac、Linux 上で動かす事を主眼に据えた Games バージョンも存在する。
  • MikuInstaller - Intel ベースの Macintosh に Windows 用の DAW ソフトである 初音ミク をインストールするための環境パッケージ。Wine や CrossOver のソースコードの一部を利用している。 初音ミク をインストールするためのソフトと謳われているものの、書き換えなくても実行できるソフトがある可能性が示唆されておりまた同梱の Wine を書き換えることで様々なアプリケーションを Mac ネイティブで実行できるともしている。

脚注[編集]

注釈[編集]

  1. ^ 例えば IE6 Service Pack 1 の EULA には「本 OS コンポーネントは、該当する OS 製品の既存の機能をアップデート、またはこれに追加もしくは代替するためにのみ提供されています。」という一文があり、Windows のアップグレードとしてのみ使用できる。
  2. ^ 例えば IE7 の EULA には「お客様は、マイクロソフト Windows XP SP2 and Windows Server 2003 SP1 ソフトウェアの有効なライセンス取得済みの複製 (以下「本ソフトウェア」といいます) ごとに、本追加物の複製 1 部を使用できます。」という一文があり、Windows のライセンスと同等とみなしている。

出典[編集]

関連項目[編集]

外部リンク[編集]