How to Get Started With the Windows Subsystem for Linux

Linux users are probably familiar with Wine, the software that allows Windows software to run on Linux.

But did you know that you can download and run Linux on Windows natively and through the Microsoft Store anywhere? Yes, I’m serious.

All thanks to the Windows Subsystem for Linux (WSL), a feature that was first added to Windows 10 in 2016 as a beta feature for Windows Insiders and has since been released to the general public.

With WSL, anyone can quickly and easily install and run one of the many Linux distributions (distros for short) in minutes.

For Linux vets who have never heard of WSL, this might sound too good to be true. On paper, WSL even sounds like a potential entry point into the Linux world for newbies. However, the reality is more complicated.

Later in this post, we’ll walk you through how to get WSL up and running Linux on your Windows PC, as well as provide links to some helpful resources. But first, let’s talk about WSL – what it is, what it isn’t, and whether Linux is right for you.

What is WSL?

Obviously the first question here is, are WSL and the distributions available in the Microsoft Store really Linux?

Technically speaking, yes. WSL was originally known as the “Bash on Windows” feature and allowed users to use Ubuntu bash commands in Windows PowerShell. But now WSL allows you to execute a lot of other commands besides Bash (and if this is all over your head, bear with it, it will become clearer as you continue).

Linux distributions that can be downloaded from the Windows Store and run via WSL are a complete Linux package, at least in terms of basic functionality, without the need for emulation. So yes, by installing WSL and downloading the distro from the Microsoft store, you are running Linux on Windows, full stop.

However, there are some caveats directly related to the nature of WSL and the intended use case that make it a more viable option for some users and, frankly, almost useless for others.

WSL is best for developers

WSL is primarily a development tool and exists to help web and software developers, in particular for testing purposes.

You see, the Internet, and the vast majority of software running on Windows PCs, is actually built on Linux.

While this awkward bifurcation has always existed, the developers have made it work as best they can by creating tools and workarounds like Cygwin or MYSYS so that their Linux experience works well with Windows and vice versa. WSL is Microsoft’s recognition of this reality and an active effort to help developers streamline their workflow and provide them with native support on Windows.

WSL is an essential feature for all developers. For example, by running a Linux distribution with WSL, web developers can code on Linux while simultaneously tracking in real time the exact page they are working on through a web browser on Windows, without requiring additional or paid software. In addition, since WSL is a Windows process, you can use Windows tools and features such as the Task Manager at the same time. The ability to kill a Linux process using the Task Manager is useful in cases where something crashes or the process hangs.

So when we say that WSL is a complete Linux package, we mean that almost anything a programmer would like or should do in Linux can be done in WSL along with your regular Windows functions.

What WSL is not

WSL is a great development tool, and the built-in Windows support is likely to help programmers make the transition between Windows and Linux easier.

However, WSL has some caveats that might prevent some users from using it, especially casual or novice Linux users. If you’ve been expecting an easy way to get a full Linux experience, it’s wise to moderate your expectations.

WSL does not support graphical user interfaces

By default, WSL does not support graphical user interface (GUI) versions of Linux, but uses a command line environment. This will be a difficult transition for those who are used to a visual interface for work (for example, as, for example, most Windows users), and limits what software can be installed and run.

The WSL CLI requires the user to know Linux commands and understand the file organization of the Linux system. This takes time to learn and will probably be difficult if you are a beginner.

Unless you’re willing to put in the effort, this isn’t the ideal way for novice Linux users to experience the OS.

To be honest, it would be wrong to say that there are no Linux graphical options available for WSL. However, getting the GUI up and running will require you to have at least intermediate knowledge of Linux command line operations in order to set it up in the first place, and even so it won’t be ideal. Any graphical support for Linux is more or less a byproduct of Microsoft’s work with Linux developers to run specific distributions, not the main purpose or function of WSL. In fact, Microsoft has made it clear that it has no plans to add official support for Linux GUIs.

WSL uses two file systems

Using WSL requires you to know and use both Windows and Linux at the same time – this is not an emulation and not a clean Linux environment on a separate disk partition. Anyone looking to replace Windows or run a more “complete” version of Linux will need to install the OS using one of the methods below.

More importantly, using WSL means working with two different file systems. For developers, this is actually a pretty handy feature. At the end of this post, we have guides that provide a detailed explanation of each file system, how they interact (and do not interact) with each other, and help you establish a workflow between them.

WSL is not open source

Finally, it is important to note that WSL is not an open source program or Linux kernel, but rather a proprietary Microsoft framework.

There is not a large developer community on WSL – any future functionality or advanced integrations should only come from Microsoft.

But what about non-developer, does it make sense to use WSL?

To be honest, not really. However, this does not mean that WSL is completely useless for a Linux newbie. As we said above, this is the fastest and easiest way to get Linux running on Windows, and since it’s natively supported and offered directly from Microsoft, you don’t have to worry too much about it breaking your computer in some way.

It was a great way for us to get started and get started, and we think it provides an interesting opportunity to learn more of the technical operations your computer can perform and even learn about how the Linux filesystem works. However, if you’re looking for a way to control or modify Windows using console commands, WSL doesn’t do much for you either, but there are tons of cool things you can do using the Windows Command Prompt .

When it comes down to it, if you’re looking for an easy way to dive into the Linux platform, or an easy solution to get Linux installed on your computer side-by-side with Windows, WSL is probably not the case. Fortunately, there are several alternative Linux installation methods if you are looking for a fully functional and / or graphical version.

  • If you have a powerful enough computer, you can explore a virtual machine (VM) . Virtual machines are, in general, separate “virtual” PCs that can run in an application window along with your regular OS. This can be system load-related and requires a fair amount of tweaking, but the end result is a fully functional graphical version of the Linux distribution of your choice, running on Windows.
  • Alternatively, you can install the Linux version to a USB stick and use it as a boot disk. This is an easy way to test the OS without making any changes to your computer.
  • Likewise, you can install Linux side by side with Windows, which is called “dual boot”. This will take up space on your hard drive, but it is preferable to using a USB stick if you plan on using Linux frequently and installing software.

How to enable WSL and install Linux from the Microsoft Store

If you’ve come this far selling WSL features, or you’re just wondering what it is and how to install it, this section will walk you through the initial setup.

Here’s what you need:

  • Windows 10 64-bit PC (We’ll explain in detail below how to check this if you’re not sure which version you have installed).
  • Internet connection to access the Microsoft store and download applications.
  • We also recommend this WSL tutorial on Github by Michael Treat . It contains some of the same information we have, but it is written specifically to help developers new to WSL set up their environment and understand how the Windows and Linux file systems interact.

1. Check your Windows version.

Open the Start menu and click the gear icon to open the Settings menu. Click System> About. Your PC’s system type will be listed at the bottom of the device specifications section.

To enable WSL, you need a 64-bit operating system. The WSL feature will not be available if you are using Windows 10 32-bit.

2. Enable WSL.

Open the settings menu again.

In the search bar, type “turn Windows features on or off”, click an item in the drop-down list and a new window will appear.

The download may take a while, but once it’s done, a list of features will appear with checkboxes next to them. Scroll down to Windows Subsystems for Linux and check the box. The download and installation of the required files will begin. Your computer will restart and the installation is complete.

3. Download Ubuntu (or any other available distribution) from the Microsoft Store.

It’s as easy as opening the Microsoft Store tab in Windows and searching for “Linux.”

The search results should contain several available Linux distributions that WSL can run. Just select one of the available options and start downloading.

We installed Ubuntu, but Debian, openSUSE, Fedora, Kali, and SLES are also available in the store (all free, we could add) and some users reported that several other not yet supported distributions have been successfully installed like Well.

Next steps

At this point, you can launch the Ubuntu version (or whatever distribution you have installed) from the command line right in Windows. It can be launched from the Start menu like most other applications.

However, this is actually just the beginning of the process. When opening your Linux distribution for the first time, you need to create a UNIX system account, and then you probably want to start installing files, updating software and setting up your working environment, but exactly what you do and how more or less is up to you and your needs.

Here are a few resources we recommend for the next steps with WSL:


Leave a Reply