Windows Subsystem for Linux (WSL) is continually improving with each new update. It's become better for an average user to run a Linux distro side by side on a Windows 11 machine without any problems. The setup is ridiculously simple, and you don't need to worry about resource allocation, GPU pass-through, or any other aspects. WSL 2 solved a lot of initial hurdles, and now it's possible to run Linux apps on a Windows machine and run Docker containers as you do on any other system.

As a result, I've stopped dual-booting in favor of WSL, as my Linux machine is accessible without compromising on the main OS. I can conveniently use both of them and continue building projects, and don't need to pick one OS for a session. Here's why you should give WSL a try if you currently dual-boot.

Dead simple setup

A Linux system at your disposal

Setting up a WSL machine needs only one command, and you have a fully functional CLI edition of Linux at your disposal. If you're starting out as a beginner, it's the perfect place to learn the ropes with Linux. You don’t need to tinker with a level-2 hypervisor like VirtualBox or VMWare and then configure the machine, allocate hardware, etc.

If you adopt a dual-boot approach, you have to either use another disk or figure out partitioning and then install a distro on it. Windows updates don’t love Linux and often break what they shouldn’t, rendering the Linux system unbootable. Add Secure Boot and BitLocker shenanigans on top of that, and you’ll have ample reasons to avoid dual-booting.

WSL2 eliminates all this hassle, and you don’t even need to power off your system to restart it. There’s less worry about Windows updates wrecking Linux systems’ boot behavior, or other security features obstructing your access. You don’t need to disable or reconfigure any BIOS settings during boot.

Access Linux apps and tools on one system

No more reboots

The best thing about WSL is running Linux apps in the current Windows session. It means you don’t need to shut down your Windows session and then boot to Linux for this minor task. So, you can use your favorite terminal utilities from Linux from a PowerShell window.

These improvements aren’t just limited to CLI tools, as WSLg can run GUI apps too. So, if you want to use something like Disks or any other app, it works with a simple wsl command. You don’t need to be in the Linux system directory to launch the app.

I’m in awe of this cross-platform app usage that was never available before. You either had to open a VM to use a Linux tool or app, and that was just confined to the virtual machine or an isolated Linux system. In a nutshell, you can use just one Terminal instance on Windows to spawn any Linux tool you need.

Similarly, I use Docker to run and test multiple self-hosted projects without worrying about something not working in the WSL environment. Containerization saves me the effort of figuring out specific installs and dependencies, and I can isolate each project from others.

Supports GPU passthrough

Best for LLM projects

I built a Paperless-ngx server a few months back and combined it with a local LLM to boost its search and analysis capabilities. WSL2 was very helpful in this project as it supports direct GPU passthrough, allowing me to use the system’s RTX GPU for powering the LLM.

If you go the dual-booting route, you lose control over one system compared to the rest. Figuring out GPU drivers is another headache while using a Linux distro in dual-boot or VM mode. WSL2 doesn’t even ask you for any such thing or throw an abrupt error when you try to access it.

Ollama worked flawlessly on the Ubuntu system, and my Paperless-ngx server had no problem utilizing it to automatically process files and make them searchable. I could query the file by name or use RAG chat, which searches all files on the server to fetch information.

WSLg is still not capable of the perfect GUI experience that you get with dual-booting and appropriate GPU drivers. So, using WSL for gaming or graphics-intensive apps would be a bad idea if you decide to ditch dual-booting for it. Rather, it's perfect for users like me who focus on AI-related stuff that requires communicating with CUDA cores. WSL doesn’t show any sluggishness in these scenarios.

Appreciable Linux performance

It’s not underwhelming anymore

The biggest gripe with using a Linux distro in a virtualized environment was a lot of performance overhead. You didn’t get the best I/O speeds, lacked dynamic resource allocation, making the overall experience painful. It was one of the biggest motivations to dual-boot Windows with Linux, as your system could directly access the hardware.

With WSL2, disk I/O and raw performance aren’t that bad. In my tests, the WSL system had nearly the same sequential read and write speeds while accessing files from the home directory. The mnt directory and cross-system file access are not as impressive as the home directory, but they still work.

Don’t dual-boot unless you need to

WSL put in a lot of effort, which convinced me to use it instead of a dual-boot approach. It’s no longer slow and can offer near-native performance in a Linux system, which was the whole point of dual-booting. GPU passthrough is enabled by default and is well-suited for AI tasks. Using a CLI-based distro without a desktop environment tones down the resource consumption.

However, you still need a competent PC to run WSL side-by-side despite the low resource consumption. If you have an average spec PC, dual-booting might still be a wise choice. I hope Microsoft doesn't run WSL into the ground as it did with Windows Subsystem for Android (WSA), which helped run Android apps on Windows.