Yes, you’ve read that right, and no, it’s not an April Fools’ Day prank, Microsoft and Canonical really cooperated to bring Ubuntu user space to Windows 10 allowing developers and others to run bash commands directly into Windows. All you’ll need to do is to install Ubuntu on Windows app, hit the Windows key, and type bash to get a terminal window.
Once you are in bash, you can run any Ubuntu command line, including apt-get to install packages, just like if you were in a terminal in Ubuntu, and all binaries are the same as in Ubuntu, as Microsoft implemented new infrastructure within Windows called the Windows Subsystem for Linux (WSL). That means Ubuntu runs without Linux, but instead the implementation is a conversion layer somewhat similar to Wine to run Windows programs in Ubuntu, or Libhybris to convert Linux calls to Android calls.
Dustin Kirkland, in charge of Ubuntu Product and Strategy, explains it’s not Ubuntu running in a virtual machine or a container, not something like cygwin his blog post about the announcement:
“Right, so just Ubuntu running in a virtual machine?” Nope! This isn’t a virtual machine at all. There’s no Linux kernel booting in a VM under a hypervisor. It’s just the Ubuntu user space.“Ah, okay, so this is Ubuntu in a container then?” Nope! This isn’t a container either. It’s native Ubuntu binaries running directly in Windows.“Hum, well it’s like cygwin perhaps?” Nope! Cygwin includes open source utilities are recompiled from source to run natively in Windows. Here, we’re talking about bit-for-bit, checksum-for-checksum Ubuntu ELF binaries running directly in Windows.[long pause]“So maybe something like a Linux emulator?” Now you’re getting warmer! A team of sharp developers at Microsoft has been hard at work adapting some Microsoft research technology to basically perform real time translation of Linux syscalls into Windows OS syscalls. Linux geeks can think of it sort of the inverse of “wine” — Ubuntu binaries running natively in Windows. Microsoft calls it their “Windows Subsystem for Linux”. (No, it’s not open source at this time.)
CPU, memory, and I/O performance is almost the same as native performance according to results obtained with sysbench utility.
Since there are already ways to access a Linux terminal in Windows as mentioned above, this new feature may not not seem much, but for example that means Ubuntu or Linux instructions posted in this website, most of them using the command line, will run in Windows 10 natively without having to install a VirtualBox or VMWare and a virtual machine running Ubuntu.
You can also get a perspective from a web developer using Windows 10 on Scott Hanselman blog.
This is a beta release so it’s not working 100% just yet. If you are part of Windows Insider program you can have access to the early beta of Ubuntu on Windows.