Along with a new Terminal app for interacting with command line tools, Microsoft is previewing a major update for its Windows Subsystem for Linux.
The new version is called WSL 2, and Microsoft says it brings significant file system speed improvements, with some operations running up to 20 times faster. WSL 2 also brings full system call compatibility, which allows users to run Docker and other programs that wouldn’t work out of the box with WSL 1.
Microsoft says it will start offering builds of WSL 2 to members of the Windows Insider Program by the end of June, 2019.
One of the key architectural differences between WSL 2 and the Windows Subsystem for Linux we’ve had for the past few years is that the new version uses virtualization technology and has it own kernel.
That means WSL no longer has to interpret system calls and translate them into Windows calls to access the Windows NT kernel. Apps like Docker that didn’t work properly because of translation errors should work now that they can use the Linux kernel.
That also means Microsoft is going to start shipping Windows with two kernels: a Windows NT kernel and a Linux kernel (with some Microsoft patches). As an added bonus, that means Microsoft can also update the kernel regularly to get new features rather than having to build those features directly into WSL.
Unlike the original Windows Subsystem for Linux, WSL 2 uses virtualization technology, but Microsoft says it’s much faster than a typical virtual machine, taking about two seconds to boot and using fewer system resources. There’s also nothing to configure once WSL is enabled and a GNU/Linux distribution is installed.
According to Microsoft, the result of all these changes is that WSL 2 is 2-5 times faster than WSL 1 when using tools like git clone, npm install, or cmake and up to 20 times faster when unpacking a tarball.
Microsoft also has a new Windows Terminal app on the way, which will allow users to interact with all of the company’s command line tools in one place, including WSL/WSL 2, the Command Prompt, and PowerShell.