4 ms·
Wine is a great project, and truly 'is not an emulator'. It takes the main win32 APIs and they are reimplemented natively by posix means, GDI, USER32, ADVAPI, a
by jesuslop 10y ago
Wine is a great project, and truly 'is not an emulator'. It takes the main win32 APIs and they are reimplemented natively by posix means, GDI, USER32, ADVAPI, and so on. Time ago I run an experiment to port Wine to windows and run a notepad.exe on top of X11. After that I managed to wrap ActiveX components inside GTK2 bonobo components served on windows to insert them into Linux GTK apps so you could have UI-bound network transparent middleware components, and it worked. Sadly de Icaza changed the arch later.
- tzs 10y ago> Wine is a great project, and truly 'is not an emulator'. The Wine is not an emulator thing has an interesting history. It originally was officially called an emulator. The change was largely due to essentially marketing. The first suggestion for the "Wine Is Not an Emulator" language was made in 1993, over concern that "Windows Emulator" might run into trademark problems with Microsoft. That suggestion was by Bob Amstadt [1] in a post where he also explained how the name "wine" came about. His original thought when he started the project was to name it "winemu", but didn't like that and shortened it to "wine", which led him to "whine" and "whinny". He liked "whine" but felt it was too long. As far as I can tell, nothing ever came of that 1993 post. By 1997, though, the "not an emulator" meaning was in use as an alternative. According to the Wine FAQ from late 1997 [2]: "The word Wine stands for one of two things: WINdows Emulator, or Wine Is Not an Emulator. Both are right. Use whichever one you like best". Calling Wine an emulator was dropped between releases 981108 and 981211. The 981108 release notes [3] say "This is release 981108 of Wine, the MS Windows emulator", and the 981211 release notes [4] say "This is release 981211 of Wine, a free implementation of Windows on Unix". The dropping of calling Wine an emulator appears to have taken place for two reasons. One was that Wine could be used for more than just running Windows binaries on Unix. It could also be used as a library that could be linked with Windows source that was compiled on Unix in order to make a stand-alone Unix binary of a Windows program. The other was that most users had only encountered emulators that emulated hardware (e.g., emulators that emulated old gaming systems or old 8-bit personal computers). Those emulators tended to be slow, which led most users to make the unjustified assumption that emulation necessarily implied slowness. If Wine was called an emulator many people would assume that programs running under Wine would be massively slower than those same programs running on a real Windows system. (I once had sources for the claims in this and the preceding paragraph but did not save them, and have not been able to rediscover them. They were probably posts in comp.emulators.ms-windows.wine in the late '90s if anyone with better search skills wants to have a go at it). [1] https://groups.google.com/forum/#!original/comp.os.linux.misc/_g3F2H4ieDc/1tN3XZODaYwJ https://groups.google.com/forum/#!original/comp.os.linux.mis... [2] https://groups.google.com/forum/#!msg/comp.emulators.ms-windows.wine/GOg6NAoNkg8/_jOvbogsh70J https://groups.google.com/forum/#!msg/comp.emulators.ms-wind... [3] https://groups.google.com/forum/#!msg/comp.emulators.ms-windows.wine/yYfTNV3Z2J0/fu4dtf_A2RcJ https://groups.google.com/forum/#!msg/comp.emulators.ms-wind... [4] https://groups.google.com/forum/#!msg/comp.emulators.ms-windows.wine/tbMAhTg6GEs/tbBxEO4OtmEJ https://groups.google.com/forum/#!msg/comp.emulators.ms-wind...
- asperous 10y agoThe "not an emulator" thing I think is good marketing but yeah kinda confusing since it is essentially High-level emulation. https://en.wikipedia.org/wiki/High-level_emulation https://en.wikipedia.org/wiki/High-level_emulation Interestingly that's how video game system console emulators after N64 got to be so fast, my understanding is the core concept is they just convert the machine instructions to x64 and do special linking to link the graphic calls to hardware-accelerated APIs.
- wtallis 10y agoWine is at least distinct from emulators for recent consoles in that Wine is purely HLE techniques, without a low-level emulation component (although there was some work to integrate Wine and QEMU during the Mac Power PC days). Wine works on the level of the dynamic loader to handle a foreign object file format and intercept library calls, but all the machine code executes natively.
- alexbock 10y agoUse of Wine with QEMU was still a recurring topic even on Intel Macs (until this release) because 64-bit Windows binaries use a calling convention that isn't compatible with macOS.
- yellowapple 10y agoIt's also still a topic worth discussing in the context of ARM devices running Linux (be it on a smartphone or a netbook or a single-board PC). There's also the additional topic of whether or not Windows Mobile applications would be worth running via a native ARM->ARM variant of Wine.
- PaulRobinson 10y agoFound the /r/AskHistorians moderator. ;) You're either crazy fast with your research, or you have really looked into this in some depth. Great write-up, thank you.