Linux on the desktop has had more than its fair share of troubles. Sure, the Linux desktop has long been a favorite of top-flight developers, system administrators, and loyal fans. But, when it comes to the mass audience, Linux has only about 1% of users. One major company, however, still believes in the Linux desktop: Microsoft.
At Microsoft Build, its virtual developers' conference, Microsoft CEO Satya Nadella announced that Windows Subsystem for Linux (WSL) 2.0 would soon support Linux GUIs and applications. Specifically, this will enable programmers to develop native and cross-platform programs with tools like GNOME Builder, KDevelop, and Emacs. Besides supporting Linux GUI programs, you'll be able to run Linux and Windows GUI applications simultaneously on the same desktop screen.
This has been coming for some time. Four years ago, Microsoft introduced WSL, which brought the Linux Bash shell to Windows 10. With Bash and WSL, you can run most Linux shell tools and popular Linux programming languages.
As time went on, Linux became ever more a first-class citizen on the Windows desktop. Multiple Linux distros, starting with Ubuntu, were followed by Red Hat Fedora and SUSE Linux Enterprise Desktop (SLED). Then, Microsoft replaced its WSL translation layer, which converted Linux kernel calls into Windows calls, with WSL 2. This update came with Microsoft's own Linux kernel running on a thin version of the Hyper-V hypervisor.
Now, Microsoft is taking one more major step forward by making the full Linux desktop experience available to Windows 10 users. It had been possible to run Linux GUI applications even with WSL's first generation, but it wasn't easy. You had to run an X Server on Windows 10 and then connect it to the Linux application. Now, Microsoft promises that running Linux GUI applications on WSL will be as easy as running them on native Linux.
That said, WSL 2 is meant primarily for programmers. For example, the other new major feature announced at Build was Nvidia CUDA and DirectML support for GPU accelerated applications and development tools, such as Kubeflow on microk8s, Canonical's easy-to-run Kubernetes cluster program.
You can, of course, also try to run Steam-powered games on WSL as well. After all, developers just want to have fun.
WSL 2 will be generally available in Windows 10 version 2004, a major Windows 10 update that will be released shortly. GPU support for developer tools will be available in Windows Insiders Fast Ring builds in a few months. Linux GUI application support will come later this year.
This 2004 version of WSL 2 is based on the 4.19.81 long-term support Linux kernel. You'll find, based on my tests with advanced releases, that WSL 2 boots very quickly. It can do this because its thin Hyper-V hypervisor preloads a great deal of Linux into RAM. Microsoft wants WSL 2 to look and feel like an integrated Windows application, rather than an add-on.
WSL 2 is much faster than its immediate ancestor. As Craig Loewen, Windows Developer Platform Program Manager, wrote, "WSL 2 delivers full system call compatibility with a real Linux kernel and is 3-6x faster compared to earlier versions of WSL." I've seen that kind of speed from my Windows 10 box running WSL 2 in the Fast Ring.
On Windows 10, Linux files are kept on a 256GB virtual disk. This uses the Linux native ext4 file system. WSL 2 uses the 9p file system protocol for file Windows and Linux transactions.
With Windows 10 version 2004, it's easier than ever to install WSL on any version of Windows with the wsl.exe command even when the WSL optional component hasn't been installed. Later, wsl.exe will make it simple to install a specific Linux distribution and version, such as Ubuntu 20.04 or Arch Linux 2020.05.01.
WSL 2.0, in Windows 10 version 2004, already works well. With the forthcoming new additions, it will work better than ever.
2020, the year of the Linux desktop? Maybe not. 2020, the year of the Linux desktop on Windows? Yes.