CraftRigs
CraftRigs / Glossary / WSL1
Software & Tools

WSL1

The original Windows Subsystem for Linux that translates Linux syscalls to Windows kernel calls, running without a virtual machine layer.

WSL1 is the first-generation Windows Subsystem for Linux, a translation layer that converts Linux system calls into Windows NT kernel calls without running a real Linux kernel. For local AI builders, it matters because it bypasses the WDDM hardware reservation that taxes VRAM under WSL2.

How It Differs From WSL2

WSL2 runs a real Linux kernel inside a lightweight Hyper-V virtual machine, which is why it incurs the 8–15% VRAM hardware reservation and a default 50% host memory cap. WSL1, by contrast, has no VM and no virtualized GPU path — it talks to Windows directly. The tradeoff is that WSL1 lacks systemd, has no native Docker Desktop integration, and runs slower on filesystem-heavy Linux workloads.

GPU and Tooling Implications

On a 24 GB RTX 4090 under WSL2 you typically see ~20.4 GB usable VRAM after WDDM reservation; 16 GB cards drop below 13 GB effective. WSL1 sidesteps that loss entirely because the GPU is accessed through the host Windows driver path rather than a virtualized passthrough. The catch: most modern local AI tooling — CUDA toolkits, container-based inference servers, and recent Ollama builds — assume WSL2 conventions, so you trade compatibility for raw memory headroom.

Why It Matters for Local AI

If you are squeezing a 70B GGUF onto a single 24 GB card and the WSL2 VRAM tax pushes you out of memory, WSL1 can claw back that 8–15% margin and let the model fit. For most users the WSL2 fixes (.wslconfig with memory=0, gpuSupport=false, explicit CUDA_VISIBLE_DEVICES) are the better path. Switch to WSL1 only when maximum VRAM exposure on single-GPU inference outweighs the loss of systemd, Docker Desktop, and modern container workflows.