I have really been enjoying WSL lately, and felt it was worth writing a quick article about some of the opportunities it opens up.
Clearly, choice of operating system is very much a personal preference, and it will (should) also vary according to the use-case. And although I appreciate that many people will want to do things differently, there are probably also many others whose preferences are similar to mine.
I am most comfortable using Windows on my end-user PC. However, for many other tasks I find other platforms are either more suitable or even an explicit requirement – which could include various flavours of linux, OpenBSD, or proprietary networking platforms such as Cisco IOS-XE.
For production workloads, it clearly makes sense to run the most appropriate platform either natively or in a dedicated virtualization environment of some kind. But for development, testing, and quick proof-of-concepts, it can be handy to just run everything on your PC.
Not only is WSL a very convenient way to make use of a linux environment from within a Windows PC, but it can be combined with qemu-kvm and nested virtualization to run other platforms inside Windows too. Of course it has long been possible to use virtualization software such as VMware Workstation, Oracle Virtualbox, or Microsoft Hyper-V to achieve exactly that. However another personal preference of mine is that I would rather use qemu & libvirt, and that’s where WSL comes in – making it possible to use my choice of hypervisor. I now regularly spin up OpenBSD VMs or Cisco C8000v instances within Windows using qemu, and it works great (so long as you’re not too bothered about performance). Oh and not to mention the fact that it is not necessary to stick to the linux distros that provide official images for WSL – I use gentoo as my main WSL environment.
Am I crazy to be building PoC network designs using Cisco and OpenBSD appliances running under qemu-kvm inside gentoo linux via WSL on Windows? Maybe, but I’m really liking this new level of flexibility and choice!