Skip to content
OnARM.Net

WSL no Windows no Arm: O que funciona e a pegadinha do Linux x86

Atualizado em 6 de jun. de 2026

O WSL2 funciona bem no Windows no Arm — wsl --install funciona imediatamente em um laptop Snapdragon X, e para desenvolvimento Linux nativo parece igual a uma máquina Intel ou AMD. Mas há uma pegadinha arquitetural que pega os desenvolvedores, e vale a pena entender antes de comprometer um fluxo de trabalho com um laptop Arm.

A arquitetura: WSL2 fornece Linux Arm64

O WSL2 é um kernel Linux real executando em uma VM leve (baseada em Hyper-V). A virtualização é apenas na mesma arquitetura, então no Windows no Arm você obtém um kernel Linux Arm64 (aarch64) e distribuições Arm64wsl --install baixa automaticamente o Ubuntu Arm64. Esta é a mesma regra de mesma arquitetura que rege VMs Hyper-V e Mac.

Use WSL2, não WSL1 no Arm — a camada de tradução de syscall do WSL1 é legada; o WSL2 fornece o kernel real e contêineres.

A pegadinha: binários Linux x86/x64 não rodam

Esta é a limitação que surpreende as pessoas, e a principal diferença de um PC x86 comum:

Uma distribuição Arm64 do WSL executa apenas binários Linux Arm64. Ela não executa transparentemente binários Linux x86/x64 — não há emulador de arquitetura cruzada embutido. Um binário ELF Linux x86_64 falha com cannot execute binary file: Exec format error. As saídas de emergência usuais (qemu-user-static, box64) são relatadas como quebradas ou não confiáveis dentro do WSL Arm atualmente, então considere “executar um binário Linux x86 no WSL Arm” como não suportado de forma confiável.

Não confunda isso com o Prism. O Prism emula aplicativos Windows x86 e sempre funciona no Arm. O WSL é o lado Linux — e lá, você está no Arm64 nativo sem fallback x86. Um leitor que sabe que “aplicativos Windows rodam emulados” vai erroneamente assumir que binários Linux também rodam. Eles não rodam.

O que funciona muito bem (nativamente)

Para desenvolvimento Linux nativo em Arm64, o WSL no Arm é excelente. Verificado funcionando: Node.js, Python, .NET 8, PHP, MySQL/Postgres em contêineres, VS Code (com a extensão WSL), Ollama. Distribuições com imagens Arm64 sólidas: Ubuntu, Debian, Fedora, Kali, openSUSE, AlmaLinux.

Uma ressalva: algumas entradas de distribuição da Microsoft Store não possuem uma imagem Arm64 real, então pode ser necessário tentativa e erro para encontrar as que funcionam no Arm.

Docker e builds multi-arquitetura

O Docker Desktop tem suporte total a Arm64, com algumas arestas relatadas no Snapdragon. O ponto doloroso é a mesma pegadinha x86 na forma de contêiner: puxar e executar imagens linux/amd64 requer emulação QEMU, que é lenta. Se o CI ou as imagens da sua equipe assumem amd64, espere atrito — construa imagens multi-arquitetura e prefira imagens base arm64. Isso se conecta diretamente a CI/CD no Arm.

Aplicativos GUI (WSLg)

O WSLg (aplicativos GUI Linux no Windows) funciona no Arm, mas sem aceleração gráfica por hardware — é renderizado por software, e o próprio aplicativo precisa ser uma compilação Arm64. Bom para ferramentas; não para aplicativos Linux com uso intensivo de GPU.

Conclusão

Para trabalho Linux nativo Arm64 — a maioria do desenvolvimento web/backend/devops moderno — o WSL em um laptop Snapdragon é uma experiência de primeira classe. A única coisa a verificar antes de mudar: alguma de suas ferramentas é fornecida apenas como binários Linux x86/x64 sem uma compilação arm64? Se sim, essas não rodarão, da mesma forma que você auditaria as dependências de um aplicativo Windows antes de portar. Para tudo com uma compilação arm64, está tudo bem.

← Todos os guias