In Windows 10 version 2004, the Windows Subsystem for Linux (WSL) picks up additional capabilities and performance. But it’s going to get even better next year in Windows 10 version 21H1.
This is good news, and because WSL has become so important to Windows 10, I’m adding a command-line chapter to the Windows 10 Field Guide that will cover the basics of using the Command shell (cmd), Windows PowerShell, and WSL. And as I’ve discovered in using WSL these past few weeks, for all its power and capability, it’s still somewhat complex to install and upgrade, and still somewhat limited functionally, in Windows 10 2004.
As you may know, Microsoft released the initial version of WSL in July 2017 and added it as a formal new Windows 10 feature in Windows 10 version 1709. As I wrote at the time, WSL was then, and is now, designed primarily for developers and IT admins who work in heterogeneous environments with both Windows and Linux. It provides access to Linux command-line tools via a growing library of Linux environments, plus the ability to share and access files on the host Windows system from Linux, invoke Windows executables from Linux, and invoke Linux executables from Windows.
Since then, Microsoft has aggressively improved WSL with new features as more and more Linux distributions signed on. But the most impressive change so far was WSL 2, which was announced in May 2019, then introduced in an Insider build in June 2019, and then added to the OS formally with Windows 10 version 2004.
“WSL 2 is a new version of the architecture that powers the Windows Subsystem for Linux to run ELF64 Linux binaries on Windows,” Microsoft’s Dona Sarkar wrote at the time. “This new architecture, which uses a real Linux kernel, 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). WSL 2 delivers a much faster file system performance and full system call compatibility, which lets you run more applications like Docker.”
But it’s clear now that WSL 2 is just the launching pad for a new set of functionality that wouldn’t have been possible, or at least viable, using the original WSL architecture. And at Build 2020 in May, Microsoft revealed its plans for the future.
As anyone who has used WSL or upgraded to WSL 2 knows, installing WSL today is a strange, non-discoverable multi-step experience that involves both command-line and graphical tools like the Windows Features control panel and the Microsoft Store. So Microsoft will make it much easier to install WSL from the command-line using a single command:
“This command will be added to every Windows machine so that all you need to do is open a Terminal window elevated with administrator privileges and run [that command],” Microsoft’s Rich Turner explained last month. “From there[,] the WSL optional components will be enabled and your specified distro will be downloaded and installed for you automatically upon restart.” This command will arrive in Windows 10 version 21H1.
Additionally, WSL 2 will be made the default WSL experience on install going forward, whereas today users need to manually upgrade from WSL 1 using, you guessed it, a combination of command-line and graphical tools (the latter of which literally involves a manual software download from the web). So this, too, will get easier: Starting with Windows 10 version 21H1, WSL 2 will become the default.
Microsoft also announced that WSL would gain GPU Compute workflows, and Insiders in the Fast ring can now start testing this functionality courtesy of Windows 10 build 20150, the first 21H1 pre-release build. (So, yes, this too arrives in 21H1).
“Adding GPU compute support to WSL has been our #1 most requested feature since the first release,” Microsoft wrote this past week. “This preview will initially support artificial intelligence (AI) and machine learning (ML) workflows, enabling professionals and students alike to run ML training workloads across the breadth of GPUs in the Windows ecosystem.”
This is important because these scientific workloads are a key area in which Linux has outperformed Windows to date, and there is now a wide variety of ML and AI apps that only run on Linux. By adding this support to Windows 10, Microsoft’s users will no longer need to maintain two PCs/workstations, or switch to Linux.
But the biggest coming change to the user experience, perhaps, is support for Linux graphical apps. This may seem a bit unnecessarily, given the depth and quality of GUI apps on Windows. But remember the audiences here.
“Some users want to run their preferred Linux GUI text editor or IDE in a Linux environment and work on their code stored locally within their distro’s filesystem, or simply develop Linux GUI apps on their Windows machine,” Microsoft explains. “Our goal is for you to be able to run Linux GUI apps on your desktop seamlessly alongside your Windows apps. This will enable you to use Linux apps to edit, build, and run your code, visualize data plots in Python, or even use applications that are optimized for a Linux environment.”
Microsoft showed off an early peek at this work at Build 2020 with some GNOME-based apps running on the Windows 10 desktop. But it’s not clear when we’ll see this support: I assume Windows 10 version 21H1 is the earliest possible timeline, but it’s possible, perhaps likely, that it will arrive even later than that. So I’ll be looking for any mention of Linux GUI app support in Insider Fast ring build announcements, which will indicate that it could at least happen in 21H1.
Anyway, that’s where WSL is at, and where it’s going. And I anticipate that my first stab at covering this exciting new technology in the book will be available before the end of the month. This won’t be of interest to experts, but for those curious about WSL and the other command-line shells in Windows 10, it should be a nice introduction.