WSL2 no Windows: Linux para desenvolvedores Link para o cabeçalho
Hoje, quando falamos de computador de mesa ou notebook, o Windows ainda é o sistema operacional desktop mais usado no mundo. Isso importa para desenvolvedores: muita gente trabalha em Windows, entrega aplicações para Windows, testa integrações no ecossistema Windows e, ao mesmo tempo, precisa de ferramentas que nasceram primeiro no Linux.
É exatamente para esse meio do caminho que existe o WSL, o Windows Subsystem for Linux. Ele permite rodar um ambiente Linux dentro do Windows, com terminal, pacotes, comandos e sistema de arquivos Linux, sem exigir dual boot e sem obrigar você a administrar uma máquina virtual tradicional para cada tarefa.
Para quem cria automações, agentes, ferramentas de linha de comando, scripts de build ou aplicações que precisam conversar com o mundo Linux, o WSL2 resolve uma dor bem prática: continuar usando o Windows como estação principal, mas executar runtimes e ferramentas Linux quando isso faz mais sentido.
O que é WSL Link para o cabeçalho
WSL é um recurso do Windows para rodar distribuições Linux, como Ubuntu, Debian, Kali, openSUSE, Fedora, Arch e outras, diretamente na máquina Windows. Na prática, você abre o terminal da distribuição escolhida e usa comandos como bash, grep, sed, awk, git, node, python e várias ferramentas Linux comuns.
A vantagem não é “substituir” o Windows. A vantagem é somar os dois ambientes:
- Windows continua sendo o desktop, com seus editores, navegadores, ferramentas corporativas e integrações locais;
- Linux entra como ambiente técnico para terminal, pacotes, automação e runtimes que funcionam melhor no ecossistema Linux.
Esse modelo é muito confortável para desenvolvimento porque você pode editar no Windows e executar no Linux, ou trabalhar direto dentro do filesystem Linux quando desempenho e compatibilidade forem prioridade.
WSL1 e WSL2, sem drama Link para o cabeçalho
Existem duas arquiteturas: WSL1 e WSL2.
O WSL1 traduz chamadas Linux para chamadas do Windows. Já o WSL2 usa virtualização para rodar um kernel Linux real dentro de uma VM utilitária leve gerenciada pelo próprio Windows. Essa diferença é importante porque o WSL2 tem compatibilidade maior com chamadas de sistema Linux e costuma ser o caminho recomendado para ferramentas modernas.
Para a maioria dos fluxos atuais de desenvolvimento, especialmente quando você vai instalar agentes, runtimes, ferramentas de automação, Docker ou dependências mais próximas do Linux real, o WSL2 é a escolha natural.
Como o WSL2 funciona por baixo Link para o cabeçalho
No WSL2, o Windows inicia uma VM leve e gerenciada. Dentro dessa VM roda um kernel Linux real. As distribuições rodam como ambientes isolados dentro dessa VM.
Essa VM não é uma VM tradicional que você cria no Hyper-V Manager, escolhe ISO, configura disco e administra manualmente. Ela existe, mas é controlada pelo WSL. Para o usuário, a experiência continua sendo abrir uma distribuição Linux no terminal; para o sistema, há uma camada de virtualização cuidando do kernel Linux, memória, CPU, rede e isolamento.
Por baixo, o WSL2 usa a fundação de virtualização do Windows. A documentação da Microsoft descreve o Hyper-V como uma tecnologia de virtualização baseada em hypervisor tipo 1. Em termos simples, isso significa que o hypervisor roda próximo do hardware e coordena recursos como processador, memória e dispositivos virtualizados para ambientes isolados.
No caso do WSL2, pense no fluxo assim:
- você chama
wslou abre uma distribuição Linux; - o Windows seleciona a distribuição;
- o serviço do WSL inicia a VM leve, se ela ainda não estiver rodando;
- a distribuição Linux roda dentro da VM gerenciada;
- processos Linux fazem chamadas ao kernel Linux real;
- o hypervisor agenda CPU e memória sobre o hardware físico.
O resultado é uma experiência muito mais simples que uma VM manual, mas com compatibilidade Linux real por baixo.
Arquivos: /home e /mnt/c
Link para o cabeçalho
Um ponto que evita muita confusão: existem dois caminhos de arquivo convivendo.
Dentro da distribuição, o caminho Linux principal fica em /home/seu_usuario. Para projetos que vão rodar com ferramentas Linux, esse costuma ser o melhor lugar:
/home/seu_usuario/projetos/minha-api
O Windows também aparece dentro do WSL por caminhos montados, normalmente em /mnt/c. Por exemplo:
/mnt/c/Users/seu_usuario/Documentos
Use /mnt/c quando você precisar acessar arquivos do Windows. Mas, para projetos Linux com muitos arquivos pequenos, dependências, node_modules, ambiente virtual Python ou builds frequentes, prefira manter o projeto em /home. Isso reduz problemas de permissão e costuma melhorar o desempenho.
Rede e localhost
Link para o cabeçalho
O WSL2 também virtualiza a rede. Mesmo assim, a experiência do dia a dia costuma ser simples: se você sobe um serviço dentro da distribuição escutando em localhost, normalmente consegue acessar pelo navegador do Windows em http://127.0.0.1:porta.
Exemplo: se uma aplicação Linux subir em 127.0.0.1:3000 dentro da distribuição, tente abrir no navegador do Windows:
http://127.0.0.1:3000
Se não funcionar, aí vale investigar firewall, porta, bind do serviço e modo de rede do WSL. Mas, para uso local comum, essa ponte pelo localhost resolve a maioria dos testes.
Antes de começar: onde cada comando roda Link para o cabeçalho
Essa separação é o que mais evita erro bobo.
- PowerShell como Administrador: instalar WSL e habilitar recursos do Windows.
- PowerShell normal: listar distribuições, consultar status e reiniciar a VM do WSL.
- Distribuição Linux/WSL: validar o ambiente e rodar ferramentas de desenvolvimento.
Sempre confira em qual terminal você está antes de copiar comandos. wsl --install é comando de Windows. cat /etc/os-release é comando Linux dentro da distribuição.
Passo 1: instalar o WSL2 Link para o cabeçalho
Abra o PowerShell como Administrador e rode:
wsl --install
Esse comando habilita os recursos necessários e instala a distribuição Linux padrão, normalmente Ubuntu. Se o Windows pedir reinicialização, reinicie antes de continuar.
Depois do reboot, abra a distribuição pelo Menu Iniciar. Na primeira abertura, ela pode pedir para criar um usuário e senha Linux. Essa senha é do ambiente Linux; ela não precisa ser igual à senha do Windows.
Se você quiser ver quais distribuições estão disponíveis, rode no PowerShell normal:
wsl --list --online
As principais famílias que costumam aparecer nessa lista são:
- Ubuntu: geralmente a opção mais documentada para tutoriais de desenvolvimento;
- Debian:
Debian; - Kali:
kali-linux; - openSUSE: Leap ou Tumbleweed;
- SUSE Linux Enterprise: versões Enterprise publicadas para WSL;
- AlmaLinux: versões da família Enterprise Linux;
- Arch Linux:
archlinux; - Fedora: versões publicadas como
FedoraLinux-*; - Oracle Linux: versões publicadas como
OracleLinux_*; - eLxr:
eLxr.
Essa lista muda com o tempo e varia conforme o catálogo disponível no Windows. Por isso, trate o comando wsl --list --online como a fonte final na sua máquina, e não memorize nomes de versão.
Para instalar uma distribuição específica, use o nome que apareceu na coluna NAME:
wsl --install -d <NomeDaDistro>
Por exemplo:
wsl --install -d Debian
wsl --install -d kali-linux
Se a distro que você quer não aparecer nessa lista, há três caminhos:
- conferir na Microsoft Store, porque algumas distribuições podem ser instaladas por lá;
- baixar uma imagem/rootfs oficial da distribuição e importar manualmente com
wsl --import; - usar um projeto comunitário com cautela, validando procedência, atualização e segurança da imagem.
O caminho com wsl --import é mais avançado. Ele exige um arquivo .tar com o filesystem da distribuição:
wsl --import MinhaDistro C:\WSL\MinhaDistro C:\caminho\rootfs.tar --version 2
Para a maioria dos tutoriais de desenvolvimento, Ubuntu e Debian reduzem atrito com documentação, pacotes e exemplos. Mas o WSL não fica preso nelas.
Passo 2: confirmar que a distribuição está em WSL2 Link para o cabeçalho
No PowerShell normal, confira as distribuições instaladas:
wsl -l -v
A coluna VERSION deve mostrar 2 para a distribuição que você vai usar. Se aparecer 1, ajuste o padrão para novas distribuições:
wsl --set-default-version 2
E, se necessário, converta uma distribuição já instalada:
wsl --set-version <NomeDaDistro> 2
Também vale atualizar o WSL:
wsl --update
Se você mexeu em configuração global do WSL ou quer reiniciar o ambiente Linux por completo, use:
wsl --shutdown
Depois disso, abra a distribuição novamente.
Passo 3: abrir uma distribuição no Windows Link para o cabeçalho
Você pode abrir uma distribuição de três formas simples:
- pelo Menu Iniciar, pesquisando pelo nome da distribuição;
- pelo Windows Terminal, clicando na seta ao lado da aba atual e escolhendo o perfil da distribuição;
- pelo PowerShell normal, chamando diretamente a distribuição:
wsl -d <NomeDaDistro>
Exemplo:
wsl -d Debian
Quando estiver no lugar certo, o prompt deixa de parecer PowerShell e passa a parecer um terminal Linux, algo como:
usuario@maquina:~$
Se quiser confirmar, rode dentro da distribuição Linux/WSL:
pwd
Se a resposta começar com /home/..., você está dentro da distribuição Linux. Para sair e voltar ao PowerShell depois, use:
exit
Daqui em diante, quando um tutorial disser “rode no Linux”, normalmente você pode rodar dentro dessa distribuição no WSL2. A instalação de pacotes específicos, como curl, git, Node.js, Python ou ferramentas de automação, fica no tutorial da ferramenta que você vai instalar.
Passo 4: validar se a distribuição está OK Link para o cabeçalho
Depois de abrir a distribuição, valide o básico sem depender de um gerenciador de pacotes específico.
Dentro do Linux/WSL, veja qual distribuição está rodando:
cat /etc/os-release
Confira o kernel Linux:
uname -a
Confira o usuário atual:
whoami
Confira o diretório atual:
pwd
No PowerShell normal, veja se a distribuição está registrada e qual versão do WSL ela usa:
wsl -l -v
E veja quais distribuições estão rodando naquele momento:
wsl --list --running
Se esses comandos respondem sem erro, a distribuição está funcional. A partir daí, cada tutorial pode pedir pacotes de acordo com a família da distribuição: apt em Debian/Ubuntu, dnf em Fedora, zypper em openSUSE, pacman em Arch e assim por diante.
Passo 5: controlar se o WSL inicia com o Windows Link para o cabeçalho
Uma distribuição WSL não deve iniciar sozinha só porque o Windows ligou. Em geral, ela inicia quando algo chama wsl.exe: Windows Terminal, Docker Desktop, uma tarefa agendada, um serviço, um script no startup ou algum aplicativo de desenvolvimento.
Para ver o que está rodando agora, use:
wsl --list --running
Para parar uma distribuição específica:
wsl --terminate <NomeDaDistro>
Para parar toda a VM do WSL2 e todas as distribuições:
wsl --shutdown
Fazer uma distribuição iniciar com o Windows Link para o cabeçalho
Se você quer que uma distribuição ou um serviço dentro dela suba com o Windows, use uma tarefa agendada do Windows chamando wsl.exe.
Exemplo simples para iniciar a distribuição no logon:
schtasks /Create /TN "Iniciar WSL" /SC ONLOGON /TR "wsl.exe -d <NomeDaDistro>" /F
Para iniciar um comando específico dentro da distribuição:
schtasks /Create /TN "Iniciar servico WSL" /SC ONLOGON /TR "wsl.exe -d <NomeDaDistro> --exec bash -lc 'comando-aqui'" /F
Use esse caminho quando houver um motivo real: banco local, serviço de desenvolvimento, agente, automação ou daemon que precisa existir assim que você entra no Windows.
Impedir que uma distribuição inicie com o Windows Link para o cabeçalho
Se o WSL está iniciando junto com o Windows e você não quer isso, procure quem está chamando wsl.exe.
Veja tarefas agendadas relacionadas:
schtasks /Query /FO LIST | findstr /I "wsl"
Se você criou uma tarefa como a do exemplo anterior, remova:
schtasks /Delete /TN "Iniciar WSL" /F
Também confira aplicativos de inicialização do Windows, Docker Desktop, scripts em shell:startup e serviços que possam depender do WSL. Depois de remover o gatilho, encerre o WSL:
wsl --shutdown
Um detalhe importante: habilitar systemd dentro de uma distribuição faz serviços Linux iniciarem quando aquela distribuição inicia. Isso não significa, por si só, que a distribuição vai iniciar no boot do Windows.
Passo 6: limitar memória do WSL2 Link para o cabeçalho
Esse passo é opcional, mas útil em máquinas em que o WSL compete com navegador, editor, banco local e outras ferramentas pesadas.
No PowerShell normal, abra o arquivo .wslconfig no seu perfil do Windows:
notepad $env:USERPROFILE\.wslconfig
Se o arquivo não existir, o Notepad pode perguntar se você quer criar. Crie e coloque, por exemplo:
[wsl2]
memory=4GB
processors=4
Esse arquivo fica no Windows, fora das distribuições Linux. Ele configura a VM que alimenta as distribuições WSL2. O valor memory=4GB limita a memória máxima usada pela VM do WSL2. O valor processors=4 limita quantos processadores lógicos ela pode usar.
Depois de salvar, aplique a configuração encerrando o WSL:
wsl --shutdown
Abra a distribuição novamente. A configuração entra em vigor na próxima inicialização da VM do WSL2.
Passo 7: comandos úteis de manutenção Link para o cabeçalho
Ver status geral do WSL:
wsl --status
Ver versão do WSL e componentes:
wsl --version
Listar distribuições instaladas:
wsl -l -v
Encerrar todas as distribuições e a VM leve do WSL2:
wsl --shutdown
Listar somente distribuições em execução:
wsl --list --running
Encerrar só uma distribuição:
wsl --terminate <NomeDaDistro>
Definir uma distribuição como padrão:
wsl --set-default <NomeDaDistro>
Abrir a distribuição padrão:
wsl
Abrir uma distribuição específica:
wsl -d <NomeDaDistro>
Abrir a distribuição já no diretório home:
wsl ~ -d <NomeDaDistro>
Executar um comando sem entrar no shell interativo:
wsl -d <NomeDaDistro> --exec uname -a
Importar uma distribuição a partir de um rootfs:
wsl --import <NomeDaDistro> <DiretorioDeInstalacao> <ArquivoRootfsTar> --version 2
Remover uma distribuição registrada, apagando seu filesystem Linux:
wsl --unregister <NomeDaDistro>
Use wsl --unregister com muito cuidado. Ele remove a distribuição e seus dados Linux.
Checklist final Link para o cabeçalho
Antes de seguir para ferramentas mais específicas, confirme:
wsl -l -vmostra a distribuição escolhida emVERSION 2;- você consegue abrir a distribuição pelo Menu Iniciar ou Windows Terminal;
cat /etc/os-releaseidentifica a distribuição dentro do WSL;uname -amostra um kernel Linux;pwddentro da distribuição mostra um caminho Linux;wsl --list --runningmostra somente o que está ativo naquele momento;- se você criou
.wslconfig, rodouwsl --shutdowndepois; - seus projetos Linux principais ficam em
/home/..., não em/mnt/c/..., quando desempenho importa; - serviços locais da distribuição podem ser testados pelo navegador do Windows via
localhost; - se o WSL inicia com o Windows, você sabe qual aplicativo, tarefa agendada ou serviço está chamando
wsl.exe.
Com isso pronto, o Windows fica como sua estação de trabalho e o WSL2 vira o runtime Linux para instalar ferramentas modernas com menos atrito.
Próximo passo Link para o cabeçalho
Com uma distribuição funcionando no WSL2, você pode instalar ferramentas de desenvolvimento diretamente nela: Node.js, Python, Docker, bancos locais, CLIs, agentes e automações.
No caso do Hermes Agent, o caminho continua no próximo tutorial:
Instalando o Hermes Agent no Windows com WSL2 e Ubuntu
Referências Link para o cabeçalho
- Microsoft Learn - What is the Windows Subsystem for Linux?
- Microsoft Learn - How to install Linux on Windows with WSL
- Microsoft Learn - Basic commands for WSL
- Microsoft Learn - Comparing WSL versions
- Microsoft Learn - Advanced settings configuration in WSL
- Microsoft Learn - Hyper-V virtualization in Windows Server and Windows
- Microsoft Learn - Hyper-V architecture
- StatCounter Global Stats - Desktop Operating System Market Share Worldwide