As far as I know, it just emulates the windows API on Linux, and passes the windows c functions to the c functions in the Linux kernel. Can anyone shed some light on this?
1 Answer
Wikipedia - is a good starting point, and states:
The phrase "Wine Is Not an Emulator" is a reference to the fact that no processor code execution emulation occurs when running a Windows app under Wine. "Emulation" usually refers to the execution of compiled code intended for one processor (say, x86) by interpreting/recompiling software running on a different processor (say, PowerPC). Such emulation is almost always much slower than execution of the same code by the processor for which the code was compiled. In Wine, the Windows app's compiled x86 code runs at full native speed on the computer's x86 processor, just as it does when running under Windows. And Windows API calls and services also are not emulated, but rather substituted with Linux equivalents that are compiled for x86 and run at full, native speed.
-
ahhh so its a semantic thing? interesting and awkward definition of "emulation", from my perspective. but no matter, definitions are relative at the best of times.– ErikMar 8, 2013 at 6:15
-
It also is a great recursive acronym, which is essential when naming foss softwarw– Journeyman Geek ♦Mar 8, 2013 at 6:56
-
-
@Erik - no, its more then a semantic thing. Emulation implies modifying the byte code, where as WINE does not do that - it just passes is straight to the CPU. (Much like running a 32 bit program in a 64 bit OS is not emulation).– davidgoMar 8, 2013 at 7:15
-
@davidgo - I term the author might understand is its a abstraction layer and/or wrapper, WINE calls Win32 library functions, which call functions supported by Linux that return the same value.– RamhoundMar 8, 2013 at 12:10