The latter would be much more interesting to me, since what I really want out of "running linux on my desktop" is for it to actually act like the linux machines my code is targeting, and I'm dubious that a syscall layer will achieve that to the degree I want.
Cygwin and things like colinux exist on opposite ends of that awkward divide, but something officially supported by the OS could maybe straddle it better.
From what I can gather Microsoft is paying Canonical to help with a few user-mode bits and the Windows apt-get stuff uses the official Canonical sources.
As I said to him: "NT is the only major OS I know of that has always had personality subsystems. Cutler’s vision finally pays off after 3 decades of waiting"
There is NO Windows "apt-get stuff" - it's just apt-get. From Ubuntu.
In what way is a "subsystem" different than a "library" or a "process" or a "driver" (if it runs in kernel space)?
Any process can use the native API. What's special about a "subsystem"?
I know that Dave Cutler was heavily involved in designing NT, and was earlier the same with DEC VMS. (Had read the book Inside Windows NT.)
But don't know what vision you refer to. Was it about the personality subsystems?
It is widely claimed and believed that when he moved with his team to MS that he reimplemented Mica as the NT kernel. http://www.textfiles.com/bitsavers/pdf/dec/prism/mica/
Quite!
But only because the Interix-derived POSIX subsytem was, and is, little-known and vastly underappreciated. Had it been better known, the payoff might have come a decade or more sooner. There are a fair number of questions being asked now, about the new Linux subsystem, where the answer is "No; but the old POSIX subsystem had that.".
* Does it support pseudo-terminals? No, according to the demonstration video; but the old POSIX subsystem did. (https://news.ycombinator.com/item?id=11415843)
* Does it let you kill Win32 processes? No; but the old POSIX subsystem did. (https://news.ycombinator.com/item?id=11415872)
* Does it support managing daemons? No; but the old POSIX subsystem did. (https://news.ycombinator.com/item?id=11416376)
* Does it support GUI programs? No (say the people behind it themselves, although I suspect that it could run X clients); but the old POSIX subsystem did. (https://news.ycombinator.com/item?id=11391961) (https://technet.microsoft.com/en-gb/library/bb463223.aspx)
Seeing her send SIGSTOP to a running MSWORD.EXE process and observe it stop updating its window in response to expose events was splendid. :-)
The linux module provides limited Linux ABI (application binary inter-
face) compatibility for userland applications. The module provides the
following significant facilities:
+o An image activator for correctly branded elf(5) executable images
+o Special signal handling for activated images
+o Linux to native system call translation
It is important to note that the Linux ABI support it not provided
through an emulator. Rather, a true (albeit limited) ABI implementation
is provided.
https://www.freebsd.org/cgi/man.cgi?query=linux&apropos=0&se..."Mapping syscalls from one OS to another" was really just an example to give the OP an idea of how this sort of thing works without a VM.
Edit: Nevermind then