Wineはエミュレータまたは互換性レイヤーですか?


8

昨日、友人の1人(Windowsユーザー)と熱い議論を交わしました。彼はワインは単なるエミュレーターであると言いました。「ワインはエミュレーターではない」と読まれたワインはないと言った。それから彼は私にWineHQのwikiページを含む多くのリンクをくれました。「ワインはそんなエミュレータじゃない」と書いてある。

それで、Wineがエミュレータであるかどうかを尋ねたいのですが、なぜそれ自体が「Wineはエミュレータではない」と呼ばれるのですか?


7
ワインは"の略W INE I S N OT Eの mulator"。

1
「ワインはその種類のエミュレータではない」という見出しの下にあるものを彼に読んでもらいます。
Oxwivi、

「 -その名ワインがどのCPUエミュレーションを行いません『ワインはエミュレータではありません。』」明確に書かれている
Oxwivi

Wineはそのようなエミュレーターではありませんが、それでも幾分エミュレーターですか?WineはCPUのエミュレーションを行わないため、Wineは何をエミュレートしますか?
puneet

Windows ライブラリのみをエミュレートします。したがって、ソフトウェアからのAPI呼び出しはエミュレートされ、残りのソフトウェアコードはエミュレートされず、ネイティブで実行されます。
MestreLion 2011年

回答:


14

Windowsのプログラムは、Microsoft Windowsに属する標準ライブラリを広範囲に使用します。これらのライブラリは、Wineで書き直されて実装されているため、ほとんど同じことができます。プログラムが適切に作成され、標準ライブラリが多いほど、プログラムがWineで機能する可能性が高くなります。

プログラムのコードは、最初にWindowsライブラリを呼び出すために検査されます。これらの呼び出しは、Wineのライブラリが呼び出されるように変換されます。その後、プログラムのコードはフルスピードで実行されました。エミュレートされたコードはありませんが、ライブラリへの呼び出しのみが変換されます。

したがって、理論的には。プログラムはMicrosoft Windowsと同じくらい速く動作するはずです。実際には、翻訳が行われるため、プログラムが遅くなる可能性があります。ただし、Wineのライブラリは単純であり、Linuxではディスクアクセスが高速であることが多いため、プログラムがより高速に動作する可能性があります。

LinuxはOpenGLを使用しているため、OpenGLを使用するWindowsプログラムはWineでよく機能します。LinuxはDirectXを使用しません。ただし、DirectX呼び出しはWineによってOpenGL呼び出しに変換できるため、DirectXゲームはWineで機能します。


4
結論としては、Wineは互換性レイヤーであり、エミュレータではありません。
マルコチェッピ

4

「ワインはCPUエミュレーションを実行しない」で指定したリンクと同じリンクからこれがエミュレーターが通常行うことです(wii、psx、n64など)。

より完全な答えについては、あなたが提供したリンクの最初の段落を読むことができます-誰もそれをより良い方法で説明できるとは思いません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.