WSL on Windows on Arm: What Works and the x86-Linux Catch
Updated Jun 6, 2026
WSL2 works well on Windows on Arm — wsl --install works out of the box on a Snapdragon X laptop, and for native Linux development it feels no different from an Intel or AMD machine. But there’s one architectural catch that bites developers, and it’s worth understanding before you commit a workflow to an Arm laptop.
The architecture: WSL2 gives you Arm64 Linux
WSL2 is a real Linux kernel running in a lightweight (Hyper-V-based) VM. Virtualization is same-architecture only, so on Windows on Arm you get an Arm64 (aarch64) Linux kernel and Arm64 distributions — wsl --install automatically pulls Arm64 Ubuntu. This is the same same-architecture rule that governs Hyper-V and Mac VMs.
Use WSL2, not WSL1 on Arm — WSL1’s syscall-translation layer is legacy; WSL2 gives you the real kernel and containers.
The catch: x86/x64 Linux binaries don’t run
This is the limitation that surprises people, and the key difference from a regular x86 PC:
An Arm64 WSL distro runs Arm64 Linux binaries only. It does not transparently run x86/x64 Linux binaries — there’s no built-in cross-architecture emulator. An x86_64 Linux ELF binary fails with cannot execute binary file: Exec format error. The usual escape hatches (qemu-user-static, box64) are reported broken or unreliable inside Arm WSL today, so treat “run an x86 Linux binary on Arm WSL” as not reliably supported.
Don’t confuse this with Prism. Prism emulates x86 Windows apps and always works on Arm. WSL is the Linux side — and there, you’re on native Arm64 with no x86 fallback. A reader who knows “Windows apps run emulated” will wrongly assume Linux binaries do too. They don’t.
What runs great (natively)
For Arm64-native Linux development, WSL on Arm is excellent. Verified working: Node.js, Python, .NET 8, PHP, MySQL/Postgres in containers, VS Code (with the WSL extension), Ollama. Distributions with solid Arm64 images: Ubuntu, Debian, Fedora, Kali, openSUSE, AlmaLinux.
One caveat: a few Microsoft Store distro entries lack a real Arm64 image, so it can take trial-and-error to find ones that work on Arm.
Docker and multi-arch builds
Docker Desktop has full Arm64 support, with some reported rough edges on Snapdragon. The pain point is the same x86 catch in container form: pulling and running linux/amd64 images requires QEMU emulation, which is slow. If your team’s CI or images assume amd64, expect friction — build multi-arch images and prefer arm64 base images. This connects directly to CI/CD on Arm.
GUI apps (WSLg)
WSLg (Linux GUI apps on Windows) works on Arm, but without GPU hardware acceleration — it’s software-rendered, and the app itself needs an Arm64 build. Fine for tools; not for GPU-heavy Linux apps.
The bottom line
For native Arm64 Linux work — most modern web/backend/devops development — WSL on a Snapdragon laptop is a first-class experience. The one thing to verify before you switch: do any of your tools ship only x86/x64 Linux binaries with no arm64 build? If so, those won’t run, the same way you’d audit a Windows app’s dependencies before porting. For everything with an arm64 build, you’re good.