4 ms·
Wine is not an emulator, as it runs unmodified PE executable by mocking the ABI calls, translating them to Linux equivalent. You can say it is like Windows on L
by stevefan1999 1y ago
Wine is not an emulator, as it runs unmodified PE executable by mocking the ABI calls, translating them to Linux equivalent. You can say it is like Windows on Linux, just like Windows on Windows 64, otherwise, WoW64 would be considered an emulator.
The only difference is that only programs that fully uses userspace works, and anything that uses kernel driver will fail miserably. In this sense, games worked out the best because they usually have high level of independence and self-contained, with hardware abstraction layers to make things highly compatible.
If you want to talk about similar stuff, FreeBSD have a Linux compatibility layer similar to Wine. You can use that as a reference, despite both FreeBSD and Linux use ELF, and Windows use PE.
But to be honest at the end of the day, it's just program header describing code sections, library imports/exports and relocations, and this is why you can run Windows app on Linux basically untouched, given you can reverse engineer userspace Windows API calls 100% precisely.
And the legal aspect of it, well...
Also, there is a project called Winlator (https://github.com/brunodev85/winlator https://github.com/brunodev85/winlator) that combines Wine + Box64/Box86 to run x86 games on Wine on Android. Now that is what I call an emulator since Box64/Box86 really is one.
- Razengan 1y agoShush it lets me play Monkey Island on a Mac it’s an emulator
- potamic 1y agoWhy isn't there something similar for running OSX apps on linux? Should be easier than wine in theory because it's unix based?
- yjftsjthsd-h 1y agoThere is: https://www.darlinghq.org/ https://www.darlinghq.org/ (It is, unfortunately, newer and much less far along, probably purely because there's less dev-hours and dollars in it)
- stevefan1999 1y agoYes, of course it can be done, but instead of dealing with PE, now you have to deal with Mach-O