web-dev-qa-db-ja.com

なぜワインは「エミュレーターではない」のですか?

WindowsアプリとLinuxアプリの違いは、実行中のアプリケーションから要求されたライブラリだけではありませんか? ( 前の質問 を参照)それでは、「エミュレータではない」ソフトウェアを使用して、LinuxシステムでWindowsアプリケーションを実行する方法を教えてください。

22
bAN

ここから

Wineはそのようなエミュレーターではありません

ユーザーがエミュレーターについて考えるとき、彼らはDosboxやzsnesのようなプログラムについて考えます。これらのアプリケーションは仮想マシンとして実行され、低速であるため、各プロセッサ命令をエミュレートする必要があります。 WineはCPUエミュレーションを行わないため、「Wineはエミュレータではありません」という名前が付けられています。

一部の人々は、Wineがシステムの上に追加のレイヤーを導入するため、Windowsアプリケーションの実行が遅くなると主張しています。技術的には真実ですが、Wineはこの点で他のソフトウェアライブラリと何ら変わりはありません。新しいバージョンのWindowsでも、古いアプリケーションをサポートするために追加のリソースをロードする必要があります。

重要なのは、WineとUnixの組み合わせがWindows自体よりも高速な場合があることです。これは、システムに優れたドライバーがあり、アプリケーションがパフォーマンス関連のバグを公開していない場合に特に当てはまります。

28
Gnoupi

エミュレーターは完全に他のもののように動作します。これらのアプリケーションには通常、元のアプリケーションまたはプラットフォームに含まれるすべてのものが含まれています。

ただし、Wineは、Windowsの必要な機能のみを実装し、これらをX-Windowsが理解できる命令に変換することにより、トランスレーターとして機能します。

より実用的な例は、仮想マシンです。仮想マシンを使用してLinux上でWindowsを実行する場合、完全なOSがロードされ、ホストとの直接の対話がないため、仮想マシンはWindowsをエミュレートします。

ただし、Wineは必要に応じて特定の指示についてX-Windowsと直接通信します。そのため、アプリケーションがWineで動作するまでに時間がかかります。

詳細はウィキペディアで見つけることができます ここ

15
BinaryMisfit

WineはWindowsをエミュレートしていませんが、Windows以外のOS用のwin32 API(またはそのラッパー)です。

8
Joakim Elofsson

実用的な目的では、Wineはエミュレーターです、または少なくとも、技術的にはそうではない場合でも、ほとんどの人がエミュレーターに期待することを実行しますjustエミュレーター。 適切な説明についてはFAQを参照 。これもUnixの命名における優れた伝統に従います。 GNUはUnixではありません 。:-)

2
Jonik