The WSL 3 Linux subsystem is Microsoft’s boldest step yet toward making Windows a first-class platform for Linux developers. With a brand-new paravirtualization engine, near-native GPU and NPU passthrough, and a built-in container runtime, WSL 3 closes the gap between a dedicated Linux machine and a Windows workstation in ways that earlier versions simply could not. If you’ve been watching the Windows Subsystem for Linux evolve from a curiosity into a serious development tool, now is the time to pay close attention.
From WSL 1 to WSL 3: A Quick History

Understanding what WSL 3 achieves requires a brief look at where it started. WSL 1, released in 2016, translated Linux system calls into Windows NT equivalents in real time โ impressive, but inherently limited. WSL 2 (2019) swapped translation for a lightweight Hyper-V virtual machine running a genuine Linux kernel, delivering far better compatibility and filesystem performance for workloads kept inside the Linux filesystem.
WSL 3 does not simply iterate on WSL 2 โ it rearchitects the virtualisation layer entirely around a paravirtualised VM model, meaning the Linux guest kernel is aware it is running inside a hypervisor and cooperates with the host for memory, I/O, and device access instead of emulating bare metal. The result is a measurable performance leap and a much tighter integration with Windows hardware.
What Is Paravirtualization and Why Does It Matter for WSL Linux Development?
Paravirtualization means the Linux guest kernel communicates directly with the Windows hypervisor using optimised channels rather than pretending to own physical hardware. This eliminates a significant layer of translation overhead, leading to faster process scheduling, lower memory latency, and more responsive I/O โ gains that compound quickly on demanding WSL Linux development workloads like large build systems, database servers, and containerised microservices.
- Lower latency I/O: filesystem operations between Linux and Windows see reduced overhead compared to the virtual disk model in WSL 2.
- Better memory cooperation: the host and guest can negotiate memory pressure more intelligently, reducing the risk of WSL consuming memory that Windows applications need.
- Faster boot times: the paravirtualised kernel image starts in milliseconds rather than the multiple seconds some WSL 2 users experienced on cold starts.
- Improved scheduler coordination: CPU time-slicing between Windows and Linux processes is more responsive, helping interactive terminal work feel native.
GPU and NPU Passthrough: The Headline WSL 3 Feature

For AI, machine learning, and GPU-accelerated workloads, the WSL 3 Linux subsystem introduces direct GPU and NPU passthrough that brings PyTorch, CUDA, and JAX workloads inside Linux to within roughly 3โ5% of bare-metal Linux performance โ a figure that makes Windows a genuinely viable AI development platform. Previously, running GPU-accelerated Linux code on Windows meant either accepting double-virtualisation overhead or switching to a native Linux boot.
What this unlocks in practice:
- Run Ollama, llama.cpp, and other local LLM tools inside a Linux environment on your Windows machine without a performance tax.
- Use CUDA, ROCm, and DirectML GPU back-ends from inside WSL 3 distributions as if you were on native Linux.
- Leverage NPU acceleration (available on Copilot+ PCs with Qualcomm Snapdragon X, AMD Ryzen AI, or Intel Core Ultra chips) for inference workloads inside Linux containers.
- Avoid maintaining a separate Linux workstation purely for AI experimentation.
Built-In Container Runtime: WSL on Windows as a Docker Alternative
One of the most practical additions in WSL 3 is a first-party container CLI and API built directly into the subsystem. Developers who currently rely on Docker Desktop or alternative container runtimes now have a path to running Linux containers natively through WSL without a third-party daemon sitting in the background. This matters for WSL on Windows in enterprise environments where Docker Desktop licensing costs have been a friction point, and for developers on bandwidth-limited machines who want a leaner toolchain.
The container integration also means Kubernetes-based workflows, CI/CD pipeline testing, and containerised microservice development can happen entirely within the WSL 3 environment, with GPU and NPU access available to containers โ something that previously required complex Docker-NVIDIA runtime configuration.
WSL 3 vs WSL 2: Key Performance Differences
It is worth being specific about where the gains are real and where the two versions are comparable. WSL 2 was already strong for tasks kept entirely within the Linux filesystem; the main weaknesses were cross-filesystem I/O (accessing Windows NTFS files from Linux or vice versa), GPU availability, and container management complexity.
- Cross-filesystem I/O: WSL 3 paravirtualization reduces the performance gap when Linux tools need to read or write Windows-side files โ a common pain point for frontend developers whose projects live on the Windows drive.
- GPU workloads: WSL 2 supported CUDA via a complex driver stack; WSL 3 treats GPU and NPU as first-class paravirtualised devices, simplifying setup and narrowing the gap to native Linux.
- Pure Linux I/O (ext4 filesystem): both WSL 2 and WSL 3 perform strongly here; the delta is smaller but still measurable in compile-heavy workloads.
- Memory overhead: WSL 3’s cooperative memory model typically uses less RAM than a comparable WSL 2 instance at the same workload level.
Open Source WSL: What It Means for the Community

In May 2025, Microsoft made the Windows Subsystem for Linux open source, publishing the full codebase on GitHub. This is not a minor footnote โ it means the community can audit the code, submit fixes, and build on the platform without waiting for Microsoft release cycles. For the WSL Linux development community, open sourcing WSL signals a long-term commitment and removes the legitimate concern that the tool could be quietly deprecated or quietly degraded.
You can follow the official WSL repository and track WSL 3 progress directly on Microsoft’s Windows Developer Blog. Reporting bugs, tracking known issues, and even contributing patches is now an option for any developer who depends on the subsystem.
Which Windows 11 Edition Do You Need for WSL 3?
WSL 3 targets Windows 11 and benefits from the tighter Hyper-V integration that Windows 11 provides over Windows 10. While WSL 2 runs on Windows 10 version 2004 and later, the GPU/NPU passthrough and paravirtualised container features of WSL 3 are designed around Windows 11’s updated virtualisation stack and driver model.
For most developers, Windows 11 Pro is the recommended edition โ it includes Hyper-V, BitLocker, and Group Policy tools that matter in a professional development environment. Windows 11 Home works for personal projects, and Buy Now Key offers Windows 11 Home at very competitive prices if you want to get started without overspending on an OS licence.
If you want the best WSL 3 experience, here is a minimum recommended setup:
- Windows 11 (Pro recommended for Hyper-V control)
- A modern CPU with hardware virtualisation enabled in BIOS/UEFI
- 16 GB RAM or more for comfortable multitasking
- A dedicated GPU (NVIDIA, AMD, or Intel Arc) for AI/GPU workloads
- An NVMe SSD for filesystem-intensive builds
Enabling WSL 3: Getting Started
Installing the Windows Subsystem for Linux on Windows 11 is straightforward. Open PowerShell as Administrator and run:
wsl --install
This installs WSL with Ubuntu by default. To update to WSL 3 once it is available in the stable channel, run:
wsl --update
Then set the default version:
wsl --set-default-version 3
You can install additional distributions from the Microsoft Store or via the command line using wsl --install -d <DistroName>. Popular choices include Ubuntu, Debian, Fedora Remix, and Kali Linux โ all of which benefit from WSL 3’s improved kernel and GPU passthrough.
Real-World Use Cases Where WSL 3 Excels
The improvements in WSL 3 are not theoretical. Here are the workflows where the upgrade makes a tangible difference for WSL on Windows:
- AI and ML model training: Run PyTorch or TensorFlow with GPU acceleration inside Linux without dual-booting or a separate machine.
- Containerised backend development: Spin up databases, message queues, and API services in Linux containers using WSL 3’s native container runtime.
- Cross-platform CLI tooling: Use bash scripts, Make, grep, sed, and the full GNU toolchain natively alongside Windows tools like PowerShell and the Windows Terminal.
- Frontend web development: Run Node.js, npm, and webpack on the Linux side for speed, while editing files in VS Code on Windows via the Remote – WSL extension.
- Security research and penetration testing: Kali Linux or ParrotOS inside WSL 3 with GPU acceleration for password cracking and hash analysis.
- DevOps and infrastructure: Test Terraform, Ansible, and Helm charts in a local Linux environment that mirrors your CI/CD pipeline closely.
Should You Switch to WSL 3 Now?
If you are already using WSL 2 productively, the upgrade path is low-risk โ existing distributions can be converted to the new version without reinstallation. If you are a Windows user who has avoided WSL due to performance concerns or GPU limitations, WSL 3 is the version that warrants a genuine second look.
According to a detailed breakdown by ZDNet, WSL 3 makes Linux development on Windows compelling in a way previous versions never quite managed โ particularly for developers in mixed Windows/Linux shops who no longer want to maintain two separate machines. The combination of near-native GPU performance, a leaner container story, and an open-source codebase removes the three biggest objections that pushed developers toward native Linux.
FAQ
What is the difference between WSL 2 and WSL 3?
WSL 2 uses a full Hyper-V virtual machine with a real Linux kernel but treats hardware as emulated. WSL 3 replaces that with a paravirtualised VM model where the Linux guest cooperates directly with the Windows hypervisor for memory, I/O, and device access. The practical result is lower latency, better GPU and NPU passthrough, and a built-in container runtime that WSL 2 does not include natively.
Does WSL 3 require a specific version of Windows 11?
WSL 3’s full feature set โ particularly GPU and NPU passthrough โ targets Windows 11 and its updated virtualisation stack. While WSL 2 runs on Windows 10 (version 2004+), developers wanting the best WSL 3 experience should be on Windows 11. WSL updates are delivered through the Microsoft Store, so you do not need a major OS upgrade to get the latest WSL release once you are on a supported Windows 11 build.
Can I run AI frameworks like PyTorch inside WSL 3?
Yes. WSL 3’s direct GPU passthrough lets PyTorch, TensorFlow, JAX, and other GPU-accelerated frameworks run inside Linux with performance within roughly 3โ5% of bare-metal Linux. CUDA workloads are supported on NVIDIA GPUs, and the NPU passthrough available on Copilot+ PC hardware opens up local inference for large language models and other AI workloads inside the WSL Linux subsystem.
Is WSL 3 open source?
Yes. Microsoft open-sourced the Windows Subsystem for Linux in May 2025, publishing the full codebase on GitHub. This allows developers to audit the code, contribute fixes, and track the development of WSL 3 features in the open. It is a significant signal of Microsoft’s long-term commitment to the platform and gives the developer community a meaningful stake in its direction.
Do I need Windows 11 Pro or will Windows 11 Home work?
Windows 11 Home runs WSL 3 for standard development tasks. However, Windows 11 Pro is recommended for professional developers because it includes full Hyper-V management tools, BitLocker drive encryption, and Group Policy โ features that matter in team and enterprise environments. Both editions are available at Buy Now Key with lifetime activation licences.
How do I update my existing WSL installation to WSL 3?
Open PowerShell as Administrator and run wsl --update to pull the latest WSL release. Once WSL 3 is in the stable channel, run wsl --set-default-version 3 to make it the default for new distributions. Existing WSL 2 distributions can typically be converted without data loss using wsl --set-version <distro> 3. Always back up important data before any major subsystem upgrade.
