Windows 10 is Getting Support for GUI Linux Apps

Do you dream of being able to run your favourite Linux apps on the Windows 10 desktop? Me neither, but Microsoft is going ahead and doing it anyway.

The company has announced that it is bolstering the Windows Subsystem for Linux (WSL) in a number of ways. This includes making it possible to run GUI Linux apps on Windows 10, complete with hardware acceleration where possible, without any major fuss.

“Soon you’ll be able to use your favorite Linux IDE or other GUI application alongside your other Windows applications on your Windows desktop,” Microsoft say.

The development, announced at the Build 2020 conference, signals the single biggest enhancement to WSL since WSL 2 was announced this time last year. While there’s no firm date for when users can expect to run GUI Linux apps on Windows 10 Microsoft say new capabilities will arrive via Windows 10 updates later this year, once WSL 2 is more widely available.

But why is Microsoft doing this?

Well, bizarre though the development may sound, it makes sense: WSL 2 uses a proper Linux kernel now, and the underlying WSL file system is accessible through the File Explorer. Adding support for launching and using full-fledged GUI apps like IDEs and text editors is the logical next step.

GUI Linux app on Windows 10
Nautilus running on Windows 10 (image: Microsoft)

The company has also undertaken a major engineering effort to improve GPU support for apps from in a WSL environment.

Support for GPU accelerated applications and development tools will be available later this year. Microsoft has developed a Direct X driver for the Linux kernel that it says allows “…applications running inside of the Linux environment [to] have the same access to the GPU as native applications on Windows.”

Naturally this work is geared more towards running computer-intensive workloads (think Machine Learning, NVIDIA CUDA, etc) than it is browsing your holiday photos in Shotwell. But, regardless, the work will enable hardware accelerated OpenGL and OpenCL on WSL through the Mesa library.

“You’ll be able to use your favorite Linux […] GUI application alongside your other Windows applications,” say Microsoft

There are no plans to prioritise giving native Windows apps preferential access to GPU resources compared to Linux ones. Both will get the exact same access to the GPU and a share of its resources depending specifically on workload.

Or to put it another way, graphically intensive Linux apps (CLI or otherwise) will be treated as first-class citizens on Windows 10.

Microsoft’s new “Direct X” driver for Linux is open source and Microsoft says it plans to upstream relevant parts where applicable. Until then, the source code is available to download from Microsoft’s official Linux kernel branch for WSL 2 on GitHub.

It is already possible to GUI Linux apps on WSL using a third-party X server, but the endeavour requires far effort to set up and is fairly crash prone.

With this announcement those headaches will become a thing the past. GUI apps in the new era connect to a Wayland instance running inside of WSL. This is ‘communicated’ to an invisible RDP client on the Windows host for “seamless” usage of Linux and Windows apps side-by-side.

Was Microsoft inspired by Google’s “crostini” effort (which lets folk install and run desktop Linux apps on Chromebooks)? Perhaps, but I imagine it’s more to do with wanting to build on its reputation with developers, many of whom favour, use or rely on open source tools — and not just CLI ones, either.

More details on how the integration and implementation of GUI apps with the rest of the Windows desktop are, Microsoft say, forthcoming. But a variety of different toolkits to work with, it’ll be interesting to see how things end up looking (as Linux apps on Chrome OS look rather alien still).

But I can’t lie: I’m kinda excited!

GPU leveraging for WSL software isn’t the only Linux-themed change announced at Build 2020. The company is launching a native Windows package manager inspired by apt and dnf, and announced the first stable release of its open source Terminal app.

Will being able to run Linux apps on Windows 10 tempt you to switch to it?