Multipass vs. Windows Subsystem for Linux (WSL)

Last week Microsoft released, to “Windows Insiders”, version 2 of the Windows Subsystem for Linux (WSL).

Unlike WSL 1, WSL 2 runs Ubuntu in a virtual machine, using Hyper-V — much more similar to Multipass — while using Microsoft’s own Linux kernel.

As a hint of how popular WSL is, right now WSL versions of Ubuntu are the 2nd and 5th most popular apps in Microsoft Store’s “Developer Tools” section.

So, I think it would be useful for the Multipass site (and probably ubuntu․com, too) to describe when Windows users could benefit from choosing Multipass rather than WSL.

One case for using Multipass is if you want more than one instance of the same Ubuntu version. What others are there?

1 Like

Another use case I’ve discovered is being able to use Snap. For example, I want to be able to spin up a Kubernetes cluster using the MicroK8s Snap. Currently thats not supported on WSL2 because systemd is not supported on wsl.

WSL

jason@DESKTOP-EFCEO8C:~$ snap install microk8es --classic --beta
 Interacting with snapd is not yet supported on Windows Subsystem for Linux.
This command has been left available for documentation purposes only.

vs

Multipass

multipass@primary:~$ sudo snap install microk8s --beta --classic
2019-07-02T20:23:09-06:00 INFO Waiting for restart... microk8s (beta) v1.15.0 from CanonicalΓ£ô installed  
multipass@primary:~$ microk8s.status
microk8s is running
addons:
knative: disabled
jaeger: disabled
fluentd: disabled
gpu: disabled
storage: disabled
registry: disabled
rbac: disabled
ingress: disabled
dns: disabled
metrics-server: disabled
linkerd: disabled
prometheus: disabled
istio: disabled
dashboard: disabled

AFAIK, with WSL2 systemd will be available, however it will take some time before WSL2 can be fully supported in snapd since I don’t think all the AppArmor patches are applied and there’s also a lack of squashfs support in the kernel meaning you need to use something like FUSE.

Note that WSL2 is significantly different from WSL1, and there is much less work to be done to enable WSL2 with snaps than WSL1 with snaps due to the full virtualized linux kernel.