Windows Subsystem for Linux began as something of a stopgap when it first premiered, giving users a way to interact with some Linux tools while avoiding the installation of a separate operating system. In the years since its debut, WSL has evolved into a lightweight virtual machine running a real Linux kernel atop Windows, giving Windows users fewer reasons to maintain a completely separate Linux environment.

WSL 1 was a neat proof of concept, but it wasn't really Linux and came with too many limitations. But ever since the release of WSL 2, I no longer have as much use for a dual-boot system or a Linux virtual machine running under an independent hypervisor. Restarting my system just to choose another OS feels like wasting time, and exposing files from my Windows system to a Linux VM can be cumbersome. WSL integrates seamlessly and remedies both problems, so I've finally replaced my native Linux partition.

I originally ran Linux natively

Now that feels like a pain

Running Linux natively made sense to me because it was the best way to access command-line tools and Bash scripts that I prefer to use. WSL 1 only emulated Linux commands, and using a dedicated Linux VM meant additional overhead and allotting my PC's hardware. Native Linux would run the way I expected it to, it would give me full access to my computer's resources, and I could still access files from my Windows NTFS partition very easily.

It was also worth booting into Linux just for Docker alone. Running containers is super convenient, and it's a common must-have feature among developers and power users. Docker implementation on Windows before the introduction of WSL 2 was pretty rough, to say the least. These days, Docker containers run just fine for me on Windows, thanks to WSL, and that gives me one less reason to boot into native Linux.

When WSL became a game changer

It's no longer the compromise it once was

Once WSL 2 landed on Windows 10, and users got a full Linux kernel at their fingertips, I saw my reasons for booting into native Linux start to diminish. WSL offers better CPU, RAM, and storage performance than a VM running on the likes of VirtualBox and VMware, and it's far more convenient than rebooting to access a different operating system. Since WSL 2 utilizes a virtual hard disk inside the Linux environment, even disk I/O performance closely matches that of a native installation.

While I was happy with the performance and convenience of WSL, it's the compatibility that really sold me on abandoning my native Linux install completely. WSL makes Linux feel like it's actually baked into Windows: I can run Linux commands on my Windows files, or I can type explorer.exe . to open a Linux directory in Windows Explorer. I also no longer need to partition a section of my disk for Linux only. Both operating systems can live on my C drive and take up whatever space they require.

👁 IMG_0119
4 reasons I run two different WSL distros side-by-side

The only thing better than one WSL instance is two WSL instances

WSL's support for GUI apps

The nail in the coffin for my dual-boot setup

When WSL introduced support for X11 and Wayland GUI applications, including sound support and graphics acceleration, I couldn't justify dual booting anymore. Linux applications can now run as normal windows, integrating seamlessly with the Windows taskbar and notification area. It's not uncommon for me to have several Linux and Windows apps running side by side, and they blend so well that I'll forget they belong to two different systems.

Admittedly, native Linux runs GUI applications better. WSL introduces some overhead, and the display can be finicky every once in a while. But for development of apps, which I imagine is why a lot of people are using WSL in the first place, this is pretty much a non-issue. My most graphically intensive programs still live on Windows, anyway. If you try to run Blender or video games through WSL, you'll notice some performance lag. But WSL and virtual machines in general aren't meant to solve that problem.

Rebooting just wasn't worth it anymore

WSL can't replace native Linux for everyone. It doesn't let you toy with bootloaders, run intensive GUI applications (not well, anyway), customize the kernel in meaningful ways, or get direct access to system hardware. These are just a few examples, but I imagine that the majority of users are only using WSL for providing a Linux development environment and to have access to Linux tools, which is what WSL is good at.

Rebooting to access Linux feels like such an obsolete solution now. I still love both operating systems, but I don't want to maintain two completely separate environments to get the best of both worlds. For me, the best solution is the one that wastes the least amount of time and still gives me everything I need, and that's WSL.