Enterprising geeks have already found a way to launch Ubuntu’s Unity desktop environment on Windows 10, thanks to the recent addition of the Linux-based Bash shell. But don’t expect Unity and many other Linux applications to actually work properly in Microsoft’s OS. While the hack demonstrates how powerful Windows 10’s Bash shell is, it also shows its considerable limitations.
X server not included
Microsoft says it “does not aim to support GUI desktops or applications,” but it is possible to run graphical Linux applications on Windows 10. When I first tried this feature, it was extremely unstable—but graphical applications are running a bit more reliably now, in my experience. This is thanks to Microsoft improving the underlying Windows Subsystem for Linux (WSL).
The missing piece is still the “X server.” There are free and open-source X servers that can be installed on Windows 10, but these all depend on “indirect rendering,” which is fundamentally a slower technique than modern “direct rendering.” In other words, graphical applications will always be slowed down and have inferior performance.
Not all Linux system calls are supported
As Microsoft’s official Windows Subsystem for Linux FAQ points out, “WSL is a tool aimed at enabling users who need them to run Bash and core Linux command-line tools on Windows.” It does not aim to support all Linux software.
For example, before the Unity desktop environment will launch on Windows 10, you’ll need to apply this tweak to dbus. The dbus service normally tries to use Unix sockets for communication, but those aren’t supported by Windows 10 yet. The tweak makes it use TCP sockets, which are.
This demonstrates a larger issue with the Bash shell. The underlying WSL translates Linux system calls into Windows system calls, allowing Linux software to run normally on Windows 10. However, only some system calls are implemented. Microsoft is focused on getting popular command-line developer tools running—system calls that are necessary for other things aren’t a priority and may never be implemented.
There’s a good chance this is why more complex graphical applications crash or may not work under the Bash shell. They’re trying to do something that Windows 10 doesn’t support.
Server software isn’t supported, either
Microsoft’s FAQ also indicates that, while server software may run, it isn’t officially supported. Microsoft is so serious about WSL not being a server technology that it won’t even be available for installation on the Windows Server operating system. That’s a feature developers might actually want, but Microsoft would rather have them spin up an Ubuntu server in Azure or install Ubuntu in a Hyper-V virtual machine.
While it’s definitely impressive to see Ubuntu’s Unity desktop shoehorned into Windows 10 by means of the new Bash shell environment, it’s a little misleading. The underlying Windows Subsystem for Linux will never be ideal for anything but basic command-line tools for developers unless Microsoft changes its approach.