Microsoft is reportedly working on adding a new subsystem for Windows 10, which will make it possible to run apps compiled for Unx systems. They have released a demo video showing several Unx tools running on Windows, without a VM. These tools include the Borne Again SHell (bash), vi(m), emacs, git, gcc, and others.
These tools appear to have come from Ubuntu’s code base (14.04.4, Trusty Tahr, FYI). Ubuntu is one of the most popular GNU/Linux distributions in the GNU/Linux community. Apparently, Microsoft has been working with Canonical Ltd., the company behind Ubuntu, for some time. In their demonstration, they installed the GNU/Linux version of git using the apt-get command, which is used on Debian-based GNU/Linux distros, including Ubuntu and it’s derivatives, to install software packages.
This is definitely a change from Microsoft’s previous views on free (as in freedom) and open source software, as Microsoft’s Steve Ballmer had previously compared [GNU/]Linux to communism. And now, since Bash, GCC, and other Un*x tools are licensed under “copyleft” licenses, most notably the GNU General Public License, Microsoft will have no legal choice but to join the FOSS world, even if for a moment.
It’s worth noting that this is not just a few utilities ported from Ubuntu. Rather, these are Ubuntu’s native binary files that are running without any form of modification. From the sounds of it, Microsoft is probably creating a set of software wrappers to run Unx programs, which will sit on top of the WIN32/64 API. These wrappers will probably work much like WINE, except in reverse: turning Unx library/system calls into Win32/64 calls. And, they will be running as user software, as opposed to lower-level system software.
This new Un*x subsystem is expected to be distributed through the Windows 10 app store. At the moment, there are still some kinks that need to be hammered out. One of my favorite process monitoring tools, top, reportedly does not work, and there are still tools which, according to Microsoft, have not yet been fully tested. At the moment, I have no idea when this new subsystem will see a stable release. I also have know idea how much processing power this new subsystem will require, since combining two different types of binaries will inevitably add some overhead.
At the moment, this new subsystem is targeted at developers, not end users. Microsoft seems to be interested in supporting CLI tools, not graphical tools. Therefore, it’s unlikely that any of Ubuntu’s graphical utilities (including it’s Unity desktop environment) will be supported.
On a personal note, I find it quite interesting that Microsoft is using 14.04, a “long term support” or “LTS” release of Ubuntu, right when 16.04, another LTS release, is on the verge of being released as well. I can’t help but wonder if Microsoft will be adding 16.04 in the future. Canonical will stop supporting 14.04 in 2019, while Windows 10 until 2025.