3 ms·
"As I understand it, Microsoft has copied the Linux kernel system call interfaces and provided their own underlying implementation." Not sure your understandin
by hsitz 11y ago
"As I understand it, Microsoft has copied the Linux kernel system call interfaces and provided their own underlying implementation."
Not sure your understanding is correct, but in any case is that not precisely what Wine does on Linux when running Windows apps? Are you worried about Windows copyright violations with Wine? From Wine webpage, "Wine translates Windows API calls into POSIX calls on-the-fly. . ." [1]
[1] https://www.winehq.org/ https://www.winehq.org/
- koenigdavidmj 11y agoWindows doesn't provide consistency between versions at the interrupt level, and Wine doesn't provide any interface at that level. It's basically a COFF loader, and a bunch of regular userspace functions in DLLs that do everything. Linux, on the other hand, provides exactly that, and this wrapper makes it so that you can actually run "movl $1, %eax; movl $0, %ebx; int $0x80" and it will actually call the equivalent of exit(0).
- ultramancool 11y agoYes Windows does provide such a thing: http://j00ru.vexillium.org/ntapi/ http://j00ru.vexillium.org/ntapi/ Would be very interesting to see a Wine based on this concept instead...
- koenigdavidmj 11y agoOf course it does at some point, but they're not meant to be used by the public, which is why: * you're linking to a URL with leetspeak in it, and not MSDN. * the codes change so frequently. * some of them disappear or are renumbered, even in service packs. If we wanted to do this for Wine, then it would also require emulation or something like OS X's Hypervisor.framework to catch system calls, which seems heavyhanded when we have working code already.
- ultramancool 11y ago> If we wanted to do this for Wine, then it would also require emulation or something like OS X's Hypervisor.framework to catch system calls, which seems heavyhanded when we have working code already. It could also be done as a kernel level loadable module in the sort of style this Linux subsystem is being done, which is more what I was thinking. Changing a few numbers for every Windows service pack (really, not even necessary if you only support certain versions of ntdll for example) might not be so bad compare to re-implementing bug level compatibility with every Windows API. Calling Wine "working" in its current state is a bit of an overstatement.
- atgreen 11y agoAll I know for sure is that the whole situation was a mess. See http://fortune.com/2015/06/29/supreme-court-oracle-api/ http://fortune.com/2015/06/29/supreme-court-oracle-api/ What's interesting to me right now is whether or not Microsoft is saying it's OK in one context (linux interfaces on windows), and not the other (java interfaces on android), and why are they different?