Wine
出典: フリー百科事典『ウィキペディア(Wikipedia)』
| Wine | |
|---|---|
| Ubuntu 8.04 上の Winecfg バージョン 1.1.3 | |
| 開発元 | Wine チーム |
| 最新版 | 1.0.1(2008年10月17日) |
| 最新評価版 | 1.1.35 (2009年12月18日) |
| 対応OS | Unix や Unix系 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環境を中心に開発されているので、Solaris・FreeBSD・Mac OS Xなど、他のOSにも移植されているが、それらの環境下では問題が発生する可能性は比較的高いことに注意されたい。原理上、カーネルレベルのスレッドに対応しているOSであることが必要。[1]
名称は、もともとは頭字語であることを意識して、大文字でWINEと表記していたことがあったが、現在は単にWineと表記するのが正式[2]。"WINdows Emulator"に由来すると説明されることもあるが、Wine Is Not an Emulatorに由来するという、一見してそれとは矛盾する説明がなされることもあり、これは技術的理由による。詳しくは後述する。
ライセンスにLGPLを採用している[3]、フリーソフトウェアである。
目次 |
[編集] 概要
Wine以外でLinux上でWindowsアプリケーションを動作させる方法としては、XenやVMwareなど、仮想マシンを構築するものが代表的である。Wineはそれらとは異なり、互換レイヤーとして動作する。つまり、Windowsプログラムが要求するDLLの代替品を供給し、またWindows NTカーネルのプロセスを再現することによって、Windowsプログラムをネイティブ動作させる。簡単に言えば、WineはLinux上でWindowsを動作させているのではなく、LinuxにWindowsと同じ挙動をさせているのである。したがってWineでWindowsプログラムを動作させる上でWindows OSは必要ではない[4]。ただし、Wineのエミュレーションライブラリが不完全な場合にはWindowsのDLLを利用することで解決できる場合がある[5]。
ところで、Wineという名称は"Wine" Is Not an Emulator(和訳:「Wineはエミュレータではない」)を略した再帰的頭字語であるとも説明される[6]。DOSBoxやzsnesのような典型的なエミュレータと異なり、Wineは基本的にはCPUエミュレーションを行っていない。そのため通常この種のエミュレータに発生する、オリジナル環境と比べた著しいパフォーマンス低下がWineには見られない。このことを強調する開発者の立場から、そのような説明がなされる。実際、アプリケーションによってはWindows上より高速にWine上で動作することもあるという[7]。同じく基本的にはCPUエミュレーションを行わない、ネイティブ仮想マシンと比べても、そのような実行速度は優れたものである。しかし、その代償としてプロジェクト規模が巨大化したWineは、人的資源の不足のため本来実装されるべき機能が依然として完全には提供されていない[8]。そのため再現性は仮想マシン上にインストールしたWindowsと比べて大きく劣るので、Windowsを性能面で上回る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]。
[編集] 対応アプリケーション
Wine における Windows アプリケーションの動作状態は Wine アプリケーションデータベース (AppDB) で調べることができる。Wine AppDB では Wine ユーザからの動作報告がデータベース化されており、アプリケーションが動作状況の良い順に「Platinum」、「Gold」、「Silver」、「Bronze」、「Garbage」で格付けされている[16]。一般に Wine のバージョン毎に格付けが変わる。
Wine 1.0 で
- Adobe Photoshop CS2 体験版
- Microsoft PowerPoint Viewer 97 と 2003
- Microsoft Word Viewer 97 と 2003
- Microsoft Excel Viewer 97 と 2003
がリリース基準に使われた[17]こともあり、Wine 1.0 ではこれらのアプリケーションが問題なく動作すると報告されている[18][19][20][21]。
[編集] 付属プログラム
Wine には wine コマンドを中心として様々なプログラムやツールが含まれている[22]。
- wine - 一般に Wine がインストールされた環境で Windows プログラムを起動するには EXE ファイルをダブルクリックすればよい。しかし、場合によってはデバッグなどの目的でコマンドラインからプログラムを起動させたいことがある。wine はこのようなときに用いるコマンドで、引数に Windows プログラムを指定する。
- Wine設定 (winecfg) - Wine 全体の設定を GUI で行うためのプログラムである。
- Wine File (winefile) - MDI 型のファイルマネージャであり、Windows Explorer に対応する。コマンドラインから
wine explorerと入力することでも起動する。 - Wine Application Uninstaller (uninstaller) - GUI でプログラムをアンインストールするためのツールであり、Windows の「プログラムの変更と削除」に対応する。
- regedit - GUI でレジストリを編集するためのプログラムであり、同名の Windows 付属プログラムに対応する。
コマンドプロンプト (cmd)、メモ帳 (notepad)、タスクマネージャ (taskmgr)、マインスイーパ (winemine) やワードパッド (wordpad) なども含まれている。コマンドラインから起動する場合、cmd、taskmgr や wordpad など一部のプログラムについては、wine コマンドの引数としてプログラム名を指定して起動する。例えば、ワードパッドを起動するには
$ wine wordpad
と入力する。
[編集] ディレクトリ
Wine やアプリケーションの EXE ファイルやレジストリなどはホームディレクトリ内の .wine ディレクトリ下に保存される。保存先は環境変数 WINEPREFIX を設定することで変更できる[23]。かつて Wine の設定ファイルとして config というファイルがあったが、2005年に廃止され[24]現在は拡張子が reg のファイルに設定が保存されるようになっている。
アプリケーションのデスクトップエントリファイルやアイコンなどはホームディレクトリ下の
- .config/menus/applications-merged
- .local/share/applications/wine
- .local/share/desktop-directories
- .local/share/icons
にインストールされる[25]。これらのディレクトリにインストールされるファイルは GNOME や KDE などでメニューに使われる。
[編集] 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 を正しく動作させるのに必要で基本的なコンポーネントをインストールするためのやっつけで汚いスタイルのスクリプトである。これを使えば QuickTime、Windows Media Player、 .NET Framework や DirectX のランタイムライブラリなどが簡単にインストールできる。
- IEs4Linux - バージョン4から6までの Internet Explorer (IE) をインストールするためのユーティリティであり、まもなく IE7 もサポートされる予定である。現在 IE7 のエンジンはユーザが選択したときにのみインストールされる(ベータ段階)。ただし IE のライセンスの関係上、一部のバージョンの IE に関して Wine 上で使用することはライセンス違反となる可能性が高い[注釈 1]。また、それ以外のバージョンでも Windows のライセンスが必須[注釈 2]である。
- WineLocale - Windows プログラムの中には日本語、中国語や韓国語などで使われることのある非 Unicode の文字コードのサポートを必要とするものがある。 WineLocale はこのようなプログラムを Wine で動作させるための拡張ユーティリティである。Ubuntu のフォーラムにこのツールを使うためのドキュメントがいくつかある[26]。
- PlayOnLinux - Wine を使って Windows のゲームのインストールを簡単にするためのアプリケーション。特別な設定が必要なゲームに対して適用するスクリプトのオンラインデータベースを使っている。ゲームがデータベースに無ければ、手動インストールもできる。ゲーム以外のプログラムもインストールでき、あるプログラムが他のプログラムに干渉することを避け隔離するため個々のプログラムは異なるコンテナ (環境変数の WINEPREFIX) に置かれる。これは CrossOver Office の bottles が動作する方法と同じである。
[編集] 脚注
[編集] 注釈
- ^ 例えば IE6 Service Pack 1 の EULA には「本 OS コンポーネントは、該当する OS 製品の既存の機能をアップデート、またはこれに追加もしくは代替するためにのみ提供されています。」という一文があり、Windows のアップグレードとしてのみ使用できる。
- ^ 例えば IE7 の EULA には「お客様は、マイクロソフト Windows XP SP2 and Windows Server 2003 SP1 ソフトウェアの有効なライセンス取得済みの複製 (以下「本ソフトウェア」といいます) ごとに、本追加物の複製 1 部を使用できます。」という一文があり、Windows のライセンスと同等とみなしている。
[編集] 出典
- ^ Under what hardware platform(s) and operating system(s) will Wine(Lib) run?
- ^ Why do some people write WINE and not Wine?
- ^ Wine License
- ^ Do I need to have a DOS partition on my system to use Wine?
- ^ My program doesn't work, what can I do?
- ^ Does Wine emulate a full computer?
- ^ Does Wine emulate a full computer?
- ^ Win API Stats
- ^ Wineの起動
- ^ Wine project status
- ^ WABI available on Linux or not
- ^ a b People - Alexandre Julliard
- ^ That's all folks: Corel leaves Open Source behind
- ^ Google Sponsors Wine Improvements
- ^ Wine Release Plan
- ^ Maintainer Rating Definitions
- ^ Wine 1.0 Release Criteria
- ^ Wine AppDB - Photoshop
- ^ Wine AppDB - Powerpoint Viewer
- ^ Wine AppDB - Word Viewer
- ^ Wine AppDB - Excel Viewer
- ^ ListofCommands
- ^ wine の man ページ
- ^ The config File Has Died!
- ^ How do I uninstall Windows applications?
- ^ HOWTO: CJK in Wine (Chinese, Japanese & Korean)