How I solved all my Linux woes - a love letter to WSL


From the time I was first introduced to Linux in high school, all throughout college, and into my working professional years, whether on work or hobby projects, I maintained dual-booted partitions for Linux and Mac or Windows on almost every computer I laid my hands on. But as the story goes, things are never as they seem. Even with the mostly widely used and supported distros like Ubuntu and Mint, or newer-kid-on-the-block distros like Manjaro and Pop!_OS, I suffered the same fate over and over and over again for 10+ years. Broken wifi drivers. Broken keyboard drivers. Broken graphics drivers. Weird audio glitches. Bluetooth isn’t supported. The newest versions of software are incompatible; install an older version. System update? Everything breaks all over again. Forgot a file on the other OS? Restart your whole computer, copy to a USB, restart again, and copy it over to the other OS. Install all my regular use apps on both OS’s and have to login twice everywhere. Carry a USB drive with a clean OS install image everywhere just in case. Clean install the OS at least twice a year. Once because everything is too broken again. Once as a preventative measure. Hopelessly believe that the new LTS version will fix all these issues. Be utterly disaapointed when it doesn’t happen. Internet drivers break. Have to use a 2nd computer to download drivers onto a USB drive and transfer them over. Oh, you don’t have make installed. Try again. Go back to 2nd computer and download the entire linux-support-essentials package. Get fed up and clean install again.

And on and on it went, for years upon years. Every time something was supposed to “just work”, it “just didn’t”. It was infuriating to say the least, but I really didn’t think there was a better way.

Until one fateful day, I was watching a YouTube tutorial and someone mentioned this new thing called Windows Subsystem for Linux (WSL). I was intrigued and started falling down the rabbit hole. I was confused at first - why would Microsoft promote using Linux? Aren’t they competitive operating systems? Who was using this? What was it good for? The more I read though, the better it seemed. In a nutshell, WSL allows you to run a full Linux distro headless inside of a Windows terminal without ever leaving Windows itself. No rebooting. No dual boot OS. Pure native Linux inside of Windows.

As a tech and computer nerd, there’s an ocean of cool tech out there that I could rave about, but there are few that spark as much joy and delight for me as WSL. It’s a niche little thing Microsoft has built over the years, but it has completely transformed my computer experience. It completely erased the need to dual boot into a Linux OS on my computer in order to do development work, and WSL has a native VS Code integration so that I can write code in Windows and run it in a Linux shell all at the same time. I can access my Linux directories right from File Explorer on Windows, and I can access my Windows directories from inside the Linux shell too. It’s so seamless and well supported across the development domain that I can even do things like run Docker containers inside of WSL but have Docker Desktop on Windows to manage and view containers. I can run jupyter notebooks in WSL and open them up in my regular browser on Windows. It feels so amazing to be able to use all the apps I’m already using in Windows and add a fully featured Linux backend to it when I want it and then be able to tuck it away when I don’t need it without ever having to reboot my computer.

My absolute favorite part is that I never have to think about or worry about broken Linux drivers working with my custom built PC hardware ever again. No broken wifi drivers. No broken audio drivers. Bluetooth. GPU. Mouse. Keyboard. Extended screens. Remote desktop. Package managers. All of these things I used to spend hours upon hours trying to fix and keep fixing after kernel updates or just looking at the screen funny, I never have to touch anymore. Everything works flawlessly in Windows as expected since WSL is CLI-based. There’s never any interruption to anything that already exists on the Windows side. 100% of my time in Linux is spent doing development work whereas when I was dual booting, 30-40% of the time was spent fighting infrastructure bugs and broken apps. I’m also super happy that WSL has a strong developer base so it feels like this is a feature that Microsoft is committed to supporting for the long haul, not just a gimmick that they could wipe out in a newer OS release. I often feel as though I’ve discovered a secret portal in the universe because of how easy and efficient life is now that my only regret is not having discovered it sooner in life. WSL, you’re truly a thing of beauty that I get to appreciate and fall in love with over and over again.