The Windows Subsystem for Linux (WSL) requires fewer resources (CPU, memory, and storage) than a full virtual machine. WSL can to run Linux command-line tools and apps alongside your Windows command-line, desktop, store apps and to access Windows files from within Linux.
What is the Windows Subsystem for Linux 1?
Windows Subsystem for Linux lets developers run a GNU/Linux environment — including most command-line tools, utilities, and applications — directly on Windows, unmodified, without the overhead of a traditional virtual machine or dualboot setup.
- Choose your favorite GNU/Linux distributions from the Microsoft Store.
- Run common command-line tools such as
awk, or other ELF-64 binaries.
- Run Bash shell scripts and GNU/Linux command-line applications including:
- Tools: vim, emacs, tmux
- Services: SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
- Install additional software using your own GNU/Linux distribution package manager.
- Invoke Windows applications using a Unix-like command-line shell.
- Invoke GNU/Linux applications on Windows.
What is the Windows Subsystem for Linux 2?
WSL 2 is a new version of the Windows Subsystem for Linux architecture that powers the Windows Subsystem for Linux to run ELF64 Linux binaries on Windows. Its primary goals are to increase file system performance, as well as adding full system call compatibility.
This new architecture changes how these Linux binaries interact with Windows and your computer’s hardware, but still provides the same user experience as in WSL 1 (the current widely available version).
Individual Linux distributions can be run with either the WSL 1 or WSL 2 architecture. Each distribution can be upgraded or downgraded at any time and you can run WSL 1 and WSL 2 distributions side by side. WSL 2 uses an entirely new architecture that benefits from running a real Linux kernel.
Comparing WSL 1 and WSL 2
The primary difference and reasons for updating the Windows Subsystem for Linux from WSL 1 to WSL 2 are to:
- increase file system performance,
- support full system call compatibility.
WSL 2 uses the latest and greatest in virtualization technology to run a Linux kernel inside of a lightweight utility virtual machine (VM). However, WSL 2 is not a traditional VM experience.
|Feature||WSL 1||WSL 2|
|Integration between Windows and Linux||✅||✅|
|Fast boot times||✅||✅|
|Small resource foot print compared to traditional Virtual Machines||✅||✅|
|Runs with current versions of VMware and VirtualBox||✅||✅|
|Full Linux Kernel||❌||✅|
|Full system call compatibility||❌||✅|
|Performance across OS file systems||✅||❌|
As you can tell from the comparison table above, the WSL 2 architecture outperforms WSL 1 in several ways, with the exception of performance across OS file systems.
Performance across OS file systems
We recommend against working across operating systems with your files, unless you have a specific reason for doing so. For the fastest performance speed, store your files in the WSL file system if you are working in a Linux command line (Ubuntu, OpenSUSE, etc). If you’re working in a Windows command line (PowerShell, Command Prompt), store your files in the Windows file system.
For example, when storing your WSL project files:
- Use the Linux file system root directory:
- Not the Windows file system root directory:
All currently running distributions (
wsl -l) are accessible via network connection. To get there run a command [WIN+R] (keyboard shortcut) or type in File Explorer address bar
\\wsl$ to find respective distribution names and access their root file systems.
You can also use windows commands inside WSL’s Linux Terminal. Try opening a Linux distribution (ie Ubuntu), be sure that you are in the Linux home directory by entering this command:
cd ~. Then open your Linux file system in File Explorer by entering (don’t forget the period at the end):
powershell.exe /c start .
If you experience an error -bash: powershell.exe: command not found please refer to the WSL troubleshooting page to resolve it.
WSL 2 is only available in Windows 10, Version 1903, Build 18362 or higher. Check your Windows version by selecting the Windows logo key + R, type winver, select OK. (Or enter the
ver command in Windows Command Prompt). You may need to update to the latest Windows version. For builds lower than 18362, WSL is not supported at all.