4 ms·
> it emulates API of an OS that has very large amount of software it runs I thought WINE stood for Wine Is Not an Emulator - has that changed?
by slantyyz 7y ago
> it emulates API of an OS that has very large amount of software it runs
I thought WINE stood for Wine Is Not an Emulator - has that changed?
- mikepurvis 7y agoIt's supposed to be an API translation layer. So there's no VM, no interpreting of machine code, none of the usual "emulation stuff." Running a Windows binary on Linux via WINE is your x86 processor directly executing the real x86 machine code, just with a compatibility layer providing equivalents whenever the binary tries to call Windows or DirectX APIs. WSL1 did the same thing in reverse, though WSL2 abandoned that course and does in fact use virtualization.
- als0 7y agoI find the change in direction particularly interesting. Intuitively, virtualization would have been one of the first and easier suggestions for any system. But they decided to take on the monumental task of implementing a translation layer. It’s probably not their first time either since they did support POSIX in some old versions of Windows. Then they switched to virtualization. I’m guessing it was simply not a sustainable effort? Still a bold move and an interesting part of Windows history.
- my123 7y agoThey had to use the syscall translation path because of the earlier plans. WSL is what could be saved from the Astoria subsystem to run Android apps on Windows 10 Mobile, with the ARM virtualization story being nonexistent at the time for shipping smartphone SoCs.
- mikepurvis 7y agoIf you're interested, the Build talk where WSL2 was introduced is pretty in-depth and does a great job of talking about the motivation. See starting around this point: https://youtu.be/lwhMThePdIo?t=1070 https://youtu.be/lwhMThePdIo?t=1070
- sp332 7y agoIt emulates the OS, not the CPU or other hardware. So it's not what you'd expect if you wanted "an emulator", like DOSBox. But there's still some "emulation" going on.
- takeda 7y agoThey may be say that but if it isn't emulating Windows API what is it doing? IMO (this is just a guess, and might be completely wrong) but I have a feeling that originally WINE stood for WINdows Emulator.
- msclrhd 7y agoEmulation is typically reserved for processor emulation. A NES emulator works by simulating the CPU, PPU (GPU), bus and other parts of the NES system on the computer running the emulator. DOSEmu, QEmu, and Amiga Forever work in similar ways. When Wine runs an application or game, that program is executing directly on the computer's CPU, so it is not an emulator. Think of it like when you have a Qt/KDE or Gtk/Gnome application and run that on the other platform, or on Windows or Mac. You have the APIs the application is calling (Qt or Gtk) which are the same regardless of the platform they are running on; for Wine these are the Windows APIs. The libraries then map the library APIs to the platform APIs, like how Wine is mapping the Windows APIs to Linux/Mac/etc.
- takeda 7y agoWord emulation means to pretend something else, just because most of the time emulating hardware is required doesn't mean that the meaning of the word change. Since you mentioned Amiga, there was an MacOS emulator called ShapeShifter[1], it didn't emulate CPU since at the time MacOS used the same CPU as Amiga, but it still referred itself as an emulator. Actually I remember that MacOS run even faster on Amiga + ShapeShifter than original Mac with similar hardware. If you are not convinced, what about FreeBSD capability to emulate Linux[2] ABI allowing to run linux binaries as if they were native. This also doesn't emulate the CPU and other hardware. And I suppose it is even closer to what WINE does. [1] https://shapeshifter.cebix.net/ https://shapeshifter.cebix.net/ [2] https://www.freebsd.org/doc/en/articles/linux-emulation/freebsd-emulation.html https://www.freebsd.org/doc/en/articles/linux-emulation/free...
- Piskvorrr 7y agoThat's a lost etymological battle, just like we can forever repeat that "hacker" does not equal "cybercriminal": even though the thesaurus says otherwise, one narrower definition of the word has taken over.