Introdução
WSL (Windows Subsystem for Linux) é uma compatibilidade nativa entre o kernel do Windows e o ecossistema Linux. Ele permite que você rode distribuições GNU/Linux diretamente dentro do Windows, com suporte a chamadas reais de sistema, rede, bash, e até mesmo daemons de sistema.
O WSL não é um emulador. E, desde o WSL 2, também não é mais só uma camada de tradução. É um kernel Linux real rodando em uma VM leve, integrada ao Windows.
Quando Usar WSL (e Quando Evitar)
Use WSL quando:
- Precisa de um ambiente Linux dentro do Windows, com performance aceitável.
- Deseja desenvolver scripts, projetos ou ferramentas de linha de comando.
- Está criando software que roda em Linux, mas sua máquina principal ainda é Windows.
- Precisa usar ferramentas como
ssh
,git
,curl
,make
,python
,gcc
, etc., de forma nativa.
Evite WSL quando:
- Precisa de alto desempenho em operações de disco (I/O intenso entre /mnt/c…).
- Vai trabalhar com banco de dados em produção.
- Precisa de suporte total a systemd (WSL agora suporta parcialmente).
- Está usando ferramentas que acessam o hardware diretamente (drivers, dispositivos USB, etc.).
WSL 1 vs WSL 2
Característica | WSL 1 | WSL 2 |
---|---|---|
Arquitetura | Camada de tradução | Kernel Linux real em VM leve |
Velocidade em arquivos Win | Rápido | Lento (acesso via /mnt/c etc.) |
Suporte ao Docker nativo | Limitado | Completo (com Docker Desktop) |
Uso de systemd | Não | Suportado (parcialmente) |
Consumo de RAM | Muito baixo | Médio, depende da carga da VM |
Compatibilidade de sistema | Limitada (syscalls faltando) | Completa (roda tudo de um Linux) |
Como Instalar o WSL (Método Oficial e Correto)
Pré-requisitos:
- Windows 10 2004+ ou Windows 11
- Terminal do Windows
- Acesso à internet
wsl --install
Esse comando instala o WSL 2, configura o kernel, e baixa uma distribuição padrão (Ubuntu). Caso queira especificar:
wsl --install -d Debian
Verificar versão ativa:
wsl --list --verbose
Alterar versão de uma distro:
wsl --set-version Debian 2
Como o WSL Funciona por Trás dos Panos
- WSL 1: traduz chamadas de sistema Linux para NT Kernel.
- WSL 2: inicia uma VM leve com kernel Linux otimizado pela Microsoft, usando
ext4.vhdx
como disco virtual. - Integração com Windows: acesso transparente entre arquivos, porta TCP (localhost compartilhado), e comandos nativos do Windows podem ser chamados no bash (
notepad.exe
, por exemplo).
Sistema de Arquivos no WSL 2
- Linux real → usa ext4 dentro da VHD
- Acesso a arquivos do Windows via
/mnt/c/
,/mnt/d/
etc. - Acesso aos arquivos Linux pelo Windows via:
\\wsl$\Ubuntu\
⚠️ Atenção: copiar arquivos grandes de/para /mnt/c/
causa gargalo de desempenho. Prefira mover para o sistema de arquivos nativo do WSL.
Trabalhando com Docker no WSL 2
A melhor forma é com Docker Desktop, que integra nativamente com WSL 2:
- O engine Docker roda dentro do WSL.
- Pode ser acessado tanto do Windows quanto do Linux.
Verificar se está funcionando:
docker version
Evite usar Docker fora do Desktop oficial se não tiver domínio sobre networking em Hyper-V e gerenciamento de socket docker.sock
.
Usando systemd no WSL
Por padrão, o systemd era desativado. Hoje pode ser ativado via:
# /etc/wsl.conf
[boot]
systemd=true
Depois, reinicie o WSL:
wsl --shutdown
Isso permite iniciar serviços como mysql
, cron
, ssh
, nginx
etc., de forma mais próxima de uma distro tradicional.
VS Code + WSL
O VS Code se integra automaticamente com o WSL. Ao abrir a pasta remota da distro, você trabalha como se estivesse em um Linux real, com IntelliSense e debugger.
code .
Se estiver com a extensão “Remote – WSL” instalada, o VS Code abre o ambiente isolado e trata como um workspace Linux.
Comandos Essenciais no WSL
wsl --list --verbose # Ver distribuições instaladas
wsl --set-version Ubuntu 2 # Mudar para WSL 2
wsl --set-default-version 2 # Definir padrão para novas distros
wsl --export Ubuntu backup.tar # Exportar distro para tar
wsl --import UbuntuNova ./UbuntuNova ./backup.tar --version 2
wsl --terminate Ubuntu # Parar distro
wsl --shutdown # Parar todas as distros
Backups e Migração
Exportar a distro:
wsl --export Ubuntu ubuntu-backup.tar
Reimportar em outro lugar:
wsl --import Ubuntu2 D:\WSL\Ubuntu2 ubuntu-backup.tar --version 2
É possível mover sua distro para outro disco sem reinstalar tudo.
Dicas de Performance
- Evite manipular muitos arquivos em
/mnt/c/
- Mantenha projetos em
~/
dentro do WSL - Desative antivírus para pastas WSL (se confiar no código)
- Evite extensões inúteis no VS Code ao trabalhar com WSL
- Use SSD para diretório de disco da VM (VHDX)
Conclusão
WSL transformou o ecossistema de desenvolvimento no Windows. O WSL 2, especialmente, oferece uma experiência quase indistinguível de uma distro nativa. Para devs, sysadmins e hackers que vivem entre dois mundos, é um divisor de águas. Mas não substitui um Linux real em servidores de produção.