What to know before using Windows 10’s new Linux system

Curious about what the new Linux subsystem in Windows 10 can and can't do? Here's what we've learned about its first release

What sounded like an April Fools' joke turned out to be anything but: Core Linux tools, including the shell, are now available to run natively inside Windows 10 thanks to an official Microsoft project that translates Linux system calls.

Primordial as this project may be, it's promising. But here are four key points to keep in mind.

1. To use it, you'll need to jump through some hoops, and you may need to wait

If you using the Linux command line at all, odds are you consider yourself a pro. Consequently, the Linux subsystem in Windows is hidden behind a "for pros only" side entrance that you can only get into if you're running Windows 10 from the Fast Ring developer builds numbered 14316 or greater, via the Windows Insider program. (Go to the Windows Insider website to learn more about that.)

Note that once you're an Insider and on the Fast Ring, you may have to wait a few days to get build 14316 pushed to your system. As far as I've been able to tell, there's no quick way to get an .ISO of the latest build.

Once you do have build 14316 running, go to Settings > Update & security > For developers, and choose Developer mode. Then type Windows features in the Search box and select "Turn Windows features on or off." From there, select "Windows Subsystem for Linux (Beta)."

Once it's installed, launch a command prompt and type bash. You'll then be invited to download and install Bash from the Windows Store. (Don't bother searching for it in the Store interface; you won't find it there.) From then on, typing bash from within Windows's CLI will pop you into the Linux subsystem and launch a command line from which you can launch any number of other applications, such as vim.


The 'vim' editor running inside the Linux subsystem in Windows.

2. These are real Linux binaries and run as-is -- to a point

When Microsoft first announced this during Build 2016, it emphasized that the Linux subsystem is not a VM. It's a translation layer, where Linux binaries run as-is and have their system calls translated into something resembling Windows system calls.

With this comes good news and bad news. The good news is the vast majority of Linux binaries, as long as they're compiled for Ubuntu Linux, can run as-is. Packages can be downloaded via apt, as they are in Ubuntu. A few brave souls have apparently even been able to run gcc, a common Linux C compiler, although it's unclear whether they can be used to build working Linux applications within the subsystem.

Over on Reddit, there's now a thread where intrepid experimenters are trying to run various Linux applications in the subsystem and recording how much success they have.


The binaries included with the Linux subsystem are the real thing -- and other binaries can be obtained and added to the mix as well. But there's no guarantee they'll work yet.

3. There's still a lot of stuff missing, by design

With this first iteration of the subsystem, Microsoft wanted to provide the tools that Linux developers use most often (and miss most when using Windows). That means the bash shell, the ssh remote connection tool, and many others. It doesn't mean you should expect to be able to run Docker or VMs.

On the other hand, you might be surprised at what does work, evenearly on. In the aforementioned Reddit thread, folks have reported that while the Apache Web server does work, it's buggy and only functions on a local loopback network. But the fact that it works at all is impressive. Likewise, the xorg client for X Windows runs, although it requires manual configuration and an X display server on the Windows host.

4. Don't expect Linux and Windows apps to be able to talk to each other directly

Linux apps running in the subsystem have no idea they're running in a subsystem. To them, their universe is a Linux machine, Linux applications won't know about the presence of Windows apps. Windows apps might in time be able to know about Linux apps, depending on how Microsoft expands on the functionality of the Linux subsystem and what kind of developer APIs Microsoft exposes.

That said, Linux apps can speak to the Windows world right now through two main avenues. The first is through the network, although that requires a Windows app to listen on the other end. Second is via the filesystem, since the Linux subsystem automatically creates mount points in /mnt that correspond to drives in Windows. It doesn't appear possible to create files from within Linux -- this might be by design or a permissions issue -- but you can read and modify existing ones.

Copyright © 2016 IDG Communications, Inc.