Microsoft built a Linux subsystem for Windows for Project Astoria, its system for running Android apps on Windows 10 Mobile.
But in February the company confirmed that Astoria was dead, as it rather undermined the Universal Windows Platform concept. At the time, we speculated that portions of Astoria might live on, as portions of it had mysteriously started showing up in Windows Insider Previews. And today, that has come to pass, with Microsoft saying that the Windows 10 Anniversary Update will include the ability to run the popular bash shell from Unix, along with the rest of a typical Unix command-line environment.
We’re still trying to get the inside story on what Microsoft has done here, but what we’ve known for several months now is that the company has developed some Windows kernel components (lxcore.sys, lxss.sys, presumably standing for “Linux core” and “Linux subsystem,” respectively) that support the major Linux kernel APIs. These components are not GPLed and do not appear to contain Linux code themselves; instead, they implement the Linux kernel API using the native Windows NT API that the Windows kernel provides. Microsoft is calling this the “Windows Subsystem for Linux” (WSL).
A kernel API is one thing, but to be useful you need user mode applications. For Astoria, this would have been a version of the Android Open Source Project, Google’s mostly BSD-licensed code that provides a Java-like runtime and various applications and system services. For WSL, however, Microsoft is turning to Canonical, creators of Ubuntu, for help. Canonical has provided a system image containing the Ubuntu versions of the various command-line tools that are typically found in a Linux distribution.