Dlaczego wino nie jest emulatorem?

22

Czy różnica między aplikacjami systemu Windows a aplikacjami systemu Linux nie jest tylko bibliotekami pytanymi przez uruchomione aplikacje? (patrz poprzednie pytanie ) Jak zatem można sprawić, aby aplikacje Windows działały w systemie Linux za pomocą oprogramowania, które „nie jest emulatorem”!

zakaz
źródło

Odpowiedzi:

28

Stąd

Wino nie jest tego rodzaju emulatorem

Kiedy użytkownicy myślą o emulatorach, myślą o programach takich jak Dosbox lub zsnes. Aplikacje te działają jako maszyny wirtualne i działają wolno, muszą emulować każdą instrukcję procesora. Wine nie emuluje procesora - stąd nazwa „Wine Is Not an Emulator”.

Niektórzy twierdzą, że ponieważ Wine wprowadza dodatkową warstwę nad systemem, aplikacja Windows będzie działać wolno. Chociaż technicznie jest to prawda, Wine nie różni się pod tym względem od żadnej innej biblioteki oprogramowania; nawet nowsze wersje systemu Windows muszą ładować dodatkowe zasoby, aby obsługiwać starsze aplikacje.

Co ważne, połączenie Wine i Unixa może czasem być szybsze niż sam Windows. Jest to szczególnie prawdziwe, gdy system ma dobre sterowniki, a aplikacja nie ujawnia żadnych błędów związanych z wydajnością.

Gnoupi
źródło
15

Emulator działa zupełnie jak coś innego. Te aplikacje zwykle zawierają wszystko, co zawiera oryginalna aplikacja lub platforma.

Wine działa jednak jako tłumacz, wdrażając tylko wymagane funkcje systemu Windows, a także tłumacząc je na instrukcje zrozumiałe dla X-Windows.

Bardziej praktycznym przykładem może być maszyna wirtualna. Podczas uruchamiania systemu Windows w systemie Linux za pomocą maszyny wirtualnej maszyna wirtualna emuluje system Windows, ponieważ ładowany jest cały system operacyjny i nie ma bezpośredniej interakcji z hostem.

Jednak Wine rozmawia z X-Windows w celu uzyskania instrukcji bezpośrednio, kiedy i jeśli to konieczne, dlatego też aplikacja potrzebuje czasu.

Więcej można znaleźć na Wikipedii tutaj .

BinaryMisfit
źródło
Twój link do wiki jest trochę zepsuty
Jonik
Nie rozumiem, jak maszynę wirtualną lepiej określa termin emulator niż Wine. Maszyn wirtualnych z systemem Windows nie emulować Windows, oni z systemem Windows.
Aaron Franke
8

Wine nie emuluje systemu Windows, ale raczej (lub otacza) interfejs API win32 dla systemu operacyjnego innego niż Windows.

Joakim Elofsson
źródło
1

Dla celów praktycznych Wine jest emulatorem, a przynajmniej działa tak, jak większość ludzi spodziewałaby się emulatora, nawet jeśli technicznie nie jest to tylko emulator. Dobre wyjaśnienie znajduje się w FAQ . Jest to również zgodne z wielkimi tradycjami w nazewnictwie uniksowym, por. GNU nie jest Uniksem . :-)

Jonik
źródło
2
to nie jest tradycja UNIX, to się nazywa rekurencyjnym akronimem
2
FYI, humorystyczne rekurencyjne akronimy można uznać za „tradycję” w nazewnictwie uniksowym. Patrz np. En.wikipedia.org/wiki/Recursive_acronym ; „W branży komputerowej wczesną tradycją społeczności hakerów (szczególnie w MIT) było wybieranie akronimów i skrótów, które w humorystyczny sposób odnosiły się do nich samych lub innych skrótów”.
Jonik
2
nie ma to nic wspólnego z UNIX
3
Co? Zarówno GNU, jak i Wine mają wiele wspólnego z Uniksem. Podobnie jak nazywanie za pomocą rekurencyjnych akronimów. A może starasz się być nadmiernie „inteligentny” z rozróżnieniem systemów UNIX i „uniksopodobnych”? westchnienie Nawet w takim przypadku uniksowych systemów, takich jak GNU / Linux i oprogramowania, które działa na tych systemach, takich jak wino, czy mają coś wspólnego z UNIX.
Jonik