News for hackers. Stuff that matters.
Re:Windows Subsystem for Linux is out of beta by wvenable on Friday July 28, 2017 @08:02PM (#14878593)
It's a pretty interesting design -- Microsoft created a new class of processes called pico processes; these are native processes run without the normal Win32 overhead and are managed by a special pico process driver. For WSL, the driver implements the Linux kernel API and process loading. Linux API calls are mapped to existing Windows APIs or implemented directly in the driver.

Everything else in the WSL is the regular Ubuntu user land. So all the processes are "native" and they make calls to a kernel that acts just like Linux.

Re:Windows Subsystem for Linux is out of beta by xenadu02 on Friday July 28, 2017 @08:24PM (#14878689)
This is possible because Dave Cutler and the rest of his VMS team built Windows NT to support multiple personalities. From day one the Win32 subsystem was just one of several. That idea got sidelined when Windows became so popular but the core has always been there.

It's kinda funny: the Windows NT kernel (and Executive, the actual native API) are a single-root object hierarchy where everything gets mounted - much like unix - only even moreso. Mutexes, Registry Keys, etc are all objects mounted in the root filesystem.

I guess everything old is new again. Microsoft used to have a server product called Services for Unix that replaced the built-in POSIX 1.0 subsystem with a legit Unix environment but it was always a neglected product that only existed to get people to port server apps to Windows. This time they're doing the integration on end-user desktops and have spent more time getting Win API integration working smoothly.

Re:Windows Subsystem for Linux is out of beta by wvenable on Friday July 28, 2017 @09:12PM (#14878927)
> This is possible because Dave Cutler and the rest of his VMS team built Windows NT to support multiple personalities.

Although it would seem logical, the WSL doesn't actually use this system. The whole pico process engine and how it interacts with Windows is all new and not related to that design. I'm not really sure the reasoning behind it; perhaps it didn't allow them to do the level of integration they wanted.