Windows Subsystem for Linux - Many distros!

Updated: May 11, 2018

Being an industrious pioneer of technology that I am, already in 2016, I've written about the Windows Subsystem for Linux (WSL), and how you can use it to run BASH in Windows 10. Then, I've also shown you how you can actually run Linux graphical applications in Windows using an X11 server. Good stuff.

Essentially, the early escapades with WSL were mostly, understandably, focused on Ubuntu. However, recently, Microsoft has expanded the range of available distributions in the Windows Store, with Kali being the first edition. But since, several more systems have been added, and this calls for another review.

Teaser

Get the distros

Start the Store - you do not need to be signed in, actually. Use "linux" as your search query. You will get a relatively short list of entries, including Kali, Debian, SLES, a NAS tool, and finally openSUSE. Ubuntu remains under the generic BASH category. The inclusion of an enterprise flavor is meaningful and important, as it will have implications for those looking to developer cross-platform solutions. Microsoft is doing a lot to make this easier, and entice folks their way - perhaps a lesson from their failed experiments with the mobile world. Then, of course, you also have Powershell for Linux. All of this makes Windows more attractive to Linux developers, especially since it had absolutely zero appeal until about a year ago.

Linux options in the Store

I decided to test with openSUSE. Grab, install, start having fun. Like Ubuntu, there's an initial user setup. You can choose to make your user admin, and thereafter, you have a headless server - currently with limited networking capabilities - running a Microsoft-customized kernel 4.4, and henceforth, the standard set of administration commands and tricks applies. Zypper, Yast, you name it. If you've used SUSE before, you will know what to do. All in all, similar to the Ubuntu experience.

OpenSUSE downloading

OpenSUSE installed

User configuration

The one complaint is - Windows CLI is a bit cumbersome when it comes to marking, copying or pasting text from the command-line buffer. You need to right-click on the windows bar and whatnot. No middle-click stuff like you'd expect. At least not yet. The default interface text size is tiny, too. I had to increase it to make it similar to the Windows stuff.

Kernel version

Graphical applications - A whole Plasma!

Rather than just give you a bland rehash of the release notes, which is something I never do, I decided to update the system, install the full Plasma desktop plus associated KDE applications, fire up the X11 server, and then run the desktop, in parallel to some Ubuntu programs. Makes for a convincing use case, of course.

All in all, this worked fine - if a bit slow. If you kill the Plasma shell, you will need to terminate the SUSE window (well, a shell of its own), because there will be some orphaned lock files under /tmp, preventing you from starting a new session. You can cleanup manually, but that's boring. Of course, the GUI side of things still remains somewhat ugly and such, but that's because you run with no 3D acceleration.

Plasma desktop

This ain't no background - that's full Plasma right there.

Plasma on Windows, more

Plasma, Microsoft kernel

YaST

OpenSUSE & Ubuntu apps

Side by side, components from three operating systems.

Working ...

It was all right. Some errors here and there, of course. Dependency issues while installing Plasma, for starters. LOLZOR. I mean really? I did mention this in my openSUSE pimping guides and whatnot, and there you often get dependency conflicts when using community repos, but here? All I wanted was to install a fresh desktop in a fresh setup, with no third-party sources whatsoever, and already I'm getting weird dependency problems.

Problem: kio-extras5-17.04.2-2.1.x86_64 requires libsmbclient.so.0()(64bit), but this requirement cannot be provided
uninstallable providers: libsmbclient0-4.6.5+git.32.af7a173b7a1-1.1.x86_64[oss]
libsmbclient0-4.6.13+git.72.2a684235f41-12.1.x86_64[oss_update]
libsmbclient0-4.6.7+git.38.90b2cdb4f22-3.1.x86_64[oss_update]
libsmbclient0-4.6.7+git.51.327af8d0a11-6.1.x86_64[oss_update]
libsmbclient0-4.6.9+git.59.c2cff9cea4c-9.1.x86_64[oss_update]
Solution 1: deinstallation of krb5-mini-1.12.5-16.1.x86_64
Solution 2: do not install plasma5-desktop-5.8.7.1-3.1.x86_64
Solution 3: break kio-extras5-17.04.2-2.1.x86_64 by ignoring some of its dependencies

Some of the updates and package installations also threw an odd wrench:

Additional rpm output:
Updating /etc/sysconfig/security...
Warning: running kernel does not support fscaps

(96/96) Installing: wicked-service-0.6.40-9.1.x86_64 ......[done]

Additional rpm output:
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory


Output of coreutils-8.25-5.1.x86_64.rpm %posttrans script:
Please run mkinitrd as soon as your system is complete.

In the end, despite the various issues, we're all one happy family - the sameness of the kernel means easy, common(al) development. This makes a lot of sense, and so far, it's stable and robust enough to warrant serious focus and investment. New subsystems are being developed, so we'll soon be getting more than just a tech demo.

OpenSUSE & Ubuntu together

Custom distros

If you want to use something other than the listed set, you will need to sweat your intellectual glands and your fingertips. Microsoft has released a tool called WSL-DistroLauncher, which allows you to make your own custom build. This is complicated - think LFS. There's no easy way about it. However, it will appeal to distro owners and developers, for sure.

Conclusion

WSL is flourishing nicely. Slowly but steadily, it's gaining additional, meaningful functionality, it's gaining traction and recognition in the Linux community, and it's opening useful possibilities that will, in the end, benefit the end user. Just think about it. If a developer can comfortably produce - and test - solutions for multiple operating systems pretty much at all once, there's a higher chance we'll see more cross-platform compatibility. I would not rule out Microsoft Office running natively on Linux one day. Or the entire Android ecosystem running on Windows.

For those of you keen on ideology, this is, in a way, an admission from Microsoft that Linux is a real player that deserves respect, and even better, cooperation. A simple, pragmatic, non-emotional approach to the whole thing. Microsoft makes it easier to attract talent and develop solutions. Better products everywhere. The user wins big time. Still, these are the early days, but I believe we will see a nice blending of operating systems in the coming years, opening up a range of possibilities to the customer. For the time being, get WSL and start playing. 'Tis good and fun. To be continued.

Cheers.