The Future of the Windows Subsystem for Linux

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.

Windows Intelligence In Your Inbox

Sign up for our new free newsletter to get three time-saving tips each Friday — and get free copies of Paul Thurrott's Windows 11 and Windows 10 Field Guides (normally $9.99) as a special welcome gift!

"*" indicates required fields

This field is for validation purposes and should be left unchanged.

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:

wsl.exe --install

“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.

More soon.

Tagged with

Share post

Please check our Community Guidelines before commenting

Conversation 27 comments

  • woelfel

    20 June, 2020 - 10:34 am

    <p>These improvements are so awesome and make my work machine useful even more than before. </p>

  • sherlockholmes

    Premium Member
    20 June, 2020 - 11:53 am

    <p>Paul, do I need to worry about you? Such a long post on Linux? Im shocked 😉 </p>

  • Sri Yogesh

    20 June, 2020 - 12:00 pm

    <p>I can't believe how great wsl2 has been for my workflow, I no longer have to dualboot into linux for some of my dev work. Wow, if windows can just become a shell that allows you to run apps from linux, android and windows on a single machine without it feelling like an overburdened vm. It would be awesome. If android apps can perform as well as my wsl programs, I have no doubt windows can be this unique os that runs applications built for all open platforms effortlessly and seamlessly. (as you can run android apps now, but it is a horrible experience)</p>

    • Jonas Barkå

      21 June, 2020 - 6:04 am

      <blockquote><em><a href="#547682">In reply to sriyogesh94:</a></em></blockquote><p>I hope I'm wrong, but I don't think MS will add Android support themselves.</p><p><br></p><p>That said WSL2 might enable a better third party Android emulator. </p>

      • Sri Yogesh

        22 June, 2020 - 11:05 am

        <blockquote><a href="#547742"><em>In reply to Havoc:</em></a><em> I agree, even if microsoft bakes android support into the os, it would still lack google play services. If google would agree to create a shell experience and distribute it, similar to Ubuntu and other Linux distributions for wsl. That would be the holy grail. And, I totally recognize that this is only a pipe dream.</em></blockquote><p><br></p>

  • alsorun

    20 June, 2020 - 12:27 pm

    <p>This article is so informative, in particular the part that many ML and AI apps only run on Linux, not on Windows. </p>

  • lwetzel

    Premium Member
    20 June, 2020 - 12:31 pm

    <p>Am eager to see the book update.</p>

  • navarac

    20 June, 2020 - 1:47 pm

    <p>This is all good, but will still keep a dedicated Linux PC.</p>

  • bschnatt

    20 June, 2020 - 2:37 pm

    <p>One thing to note is that not every PC out there supports the virtualization required for WSL 2. I bought a refurbished HP Envy x2 recently. The Snapdragon 835 in it *does* support virtualization, but HP chose not to expose it in the BIOS, so there's no way to turn it on. Considering the limited memory on this thing (4GB), I'm not surprised.</p><p><br></p><p>I'm not *too* disappointed since WSL 1 still works fine. I took a chance on this machine in order to get the stellar battery life, and was willing to live with the consequences, whatever they were. Although it's not my primary laptop. I *am* keeping it in sync with my main laptop as far as I can (the same Windows developer tools, settings, extensions, etc), and the only deviation from this (so far) is the WSL thing. If I do web development on it, I'm sure I won't have a problem running Webpack, Babel, etc (I haven't so far)…</p>

  • hrlngrv

    Premium Member
    20 June, 2020 - 4:25 pm

    <p>MSFT's own current instructions for installing WSL, https://docs.microsoft.com/en-us/windows/wsl/install-win10, differ from yours. Your instructions above also differ from how I remember installing it when it was first introduced.</p><p>The DISM commands in the linked MSFT web page are every bit the nondiscoverable (without a web search) process as you claim above.</p><p>Re command line generally, why bother with CMD? People who use the command line a lot either use Powershell or a Linux-like shell either via WSL or cygwin or MinGW or other Unix-like commandline environments for Windows. I've been using batch files for over 3.5 decades at this point, and there's no way I'd use FOR /R in preference to POSIX find unless I was writing something for others to use, and I doubt your commandline chapter would go into that depth. FWIW, the gymnastics needed to use CMD's FOR with filespecs which contain spaces is enough to prove to all but the pig-headed like me that CMD should not be used if there are better alternatives available. The only reason CMD exists as successor to COMMAND.COM is that MSFT had a profound case of NIH with a severe allergy to all things Unix in the early 1990s. It always sucked, as a wander through the archives of alt.msdos.batch.nt would demonstrate.</p><p>There's also the likelihood that any primer on CMD will read like a warmed over rewrite of the *.* column from PC World from the mid-1980s.</p><p>Finally, I believe it's already possible to run Linux GUI software if one installs a Windows X client, though I believe it requires a fair bit of configuration to do so. Why would anyone want to? There's A LOT of scientific software for Linux which doesn't have Windows versions. Some truly arcane math software too. I figure <em>preferred Linux GUI text editor</em> means EMACS or XEMACS, and while there are Windows ports, it really isn't the same as running them under a Unix-like OS.</p>

    • anton1900

      21 June, 2020 - 3:24 am

      <blockquote><em><a href="#547725">In reply to hrlngrv:</a></em></blockquote><p>Wow, you really need to get out of the 90´s and all that old grudge you holding. Cant be good for you. </p>

    • Paul Thurrott

      Premium Member
      21 June, 2020 - 8:10 am

      <blockquote><em><a href="#547725">In reply to hrlngrv:</a></em></blockquote><p>My instructions are in the book. This is a brief mention, so I'm not sure what you mean. But I've done this multiple times and have instructions that work 100 percent of the time. Not sure how/if they differ from what Microsoft wrote. Or care, frankly. </p><p><br></p><p>Not sure why you have opinions about what I'm writing about the Command shell (Cmd) in the book. But I'm covering Cmd, PowerShell, and WSL in introductory ways only. PowerShell more than Cmd.</p>

  • proftheory

    Premium Member
    20 June, 2020 - 9:38 pm

    <p>For those who really needed to run Linux alongside Windows they would just install a VM of their favorite distro. Maybe you could compare running a VM versus WSL 2.x?</p>

    • wright_is

      Premium Member
      21 June, 2020 - 4:01 am

      <blockquote><em><a href="#547732">In reply to proftheory:</a></em></blockquote><p>It depends, I have both. WSL is a lot less fuss, when you need to quickly do something. I generally have a couple of VMs running in the background and I have a few Pis around the office.</p><p>Generally, I start WSL Ubuntu and ssh into the Linux VMs I want to work on. If I want to go directly to the VMs, I have to start HyperV, then I have to go to the VM I want and then open a window. WSL is just more light weight and flexible, most of the time. I used to use PuTTY for this, but I've since just switched over to WSL.</p>

  • pierre_masse

    21 June, 2020 - 8:21 am

    <p>I wish Microsoft make an Edgebook for those like me who don't need all that stuff but don't want the Google's bulls*** either.</p>

    • hrlngrv

      Premium Member
      21 June, 2020 - 6:59 pm

      <p><a href="https://www.thurrott.com/windows/windows-10/236646/the-future-of-the-windows-subsystem-for-linux#547752&quot; target="_blank"><em>In reply to pierre_masse:</em></a></p><p>Dream on.</p><p>What would be the upside for MSFT if it had to sell Windows licenses at much lower prices than Windows Home? What would be the upside for OEMs if they have to pay the same prices as Windows Home? Dream on indeed if you believe MSFT would come out with low-price, MSFT-branded Edgebooks.</p><p>You may want them, but no one who'd need to make them has any economic incentive to do so.</p>

      • pierre_masse

        21 June, 2020 - 9:11 pm

        <blockquote><em><a href="#547796">In reply to hrlngrv:</a></em></blockquote><p>I never thought of that. Makes sense. Damn'.</p>

  • Usman

    Premium Member
    21 June, 2020 - 8:22 am

    <p>I wonder if programs like Davinci resolve will run better on WSL2 than on Windows</p>

  • RonV42

    Premium Member
    21 June, 2020 - 8:35 am

    <p>I was amazed how fast Docker updated their tooling for WSL2 I downloaded the update, turn on WSL2 support and bam it just worked. No need to HyperV images. I can now easily build docker images for both Windows and Linux based systems.</p>

    • anderb

      Premium Member
      21 June, 2020 - 5:01 pm

      <blockquote><em><a href="#547754">In reply to RonV42:</a></em></blockquote><p>Running Docker with a useable level of performance was one of the drivers for developing WSL2 in the first place. It's therefore no surprise their tooling is ready for it!</p>

  • donofrio

    21 June, 2020 - 10:15 am

    <p>I have been using gui with wsl1 for four years now, I live in xfce4 on w10 in ubuntu my setup guide and photos are at <a href="https://www.tinyurl.com/donofrioworkremmina2020&quot; target="_blank">https://www.tinyurl.com/donofrioworkremmina2020</a&gt; it has been an awesome way to stay sane in a windows only corp environment ;)</p>

  • wright_is

    Premium Member
    22 June, 2020 - 2:32 am

    <blockquote><em><a href="#547795">In reply to fishnet37222:</a></em></blockquote><p>As a Linux die-hard that has to use Windows, I'm very happy about WSL2.</p><p>Some of what he says makes sense, but a lot is inaccurate or is an anti-big corporate rant.</p>

  • Slvrgun

    23 June, 2020 - 1:29 am

    <p>Can I have a Unix based Windows already?</p>

    • Paul Thurrott

      Premium Member
      23 June, 2020 - 7:14 am

      Why?

    • anton1900

      24 June, 2020 - 7:46 am

      <blockquote><em><a href="#548222">In reply to Slvrgun:</a></em></blockquote><p>UNIX are dead, outgunned and outnumbered by Linux. Old big irons petty turf wars and the open nature of Linux made sure of that. Welcome to the 21st century btw. </p>

Windows Intelligence In Your Inbox

Sign up for our new free newsletter to get three time-saving tips each Friday

"*" indicates required fields

This field is for validation purposes and should be left unchanged.

Thurrott © 2024 Thurrott LLC