Se você precisa trabalhar com programas do Linux mas o sistema operacional que você mais usa é o Windows, já vimos aqui que uma das formas de fazer isso é por meio do VirtualBox. Mas dependendo do seu objetivo, se é, por exemplo, usar ferramentas de desenvolvimento ou trabalhar com o Docker, uma máquina virtual do VirtualBox pode consumir muita memória do seu computador e torná-lo lento. Hoje falaremos sobre uma alternativa mais rápida, que consome menos recursos e permite uma melhor integração entre Windows e Linux, que é o WSL.
O Subsistema do Windows para Linux (do inglês Windows Subsystem for Linux, comumente abreviado WSL) é um recurso do Windows que permite rodar um ambiente Linux dentro do próprio Windows, sem a necessidade de uma máquina virtual ou reiniciar o computador para mudar de sistema em uma configuração de inicialização dupla (dual boot). Com o WSL, você pode executar distribuições Linux como Ubuntu, Debian, Fedora e openSUSE diretamente no Windows, o que te permite rodar comandos, scripts e ferramentas nativas do Linux no Windows.
O WSL permite a usuários do Windows:
- Desenvolver para a web de forma ótima, uma vez que muitos servidores, frameworks e ferramentas são otimizados para Linux;
- Executar scripts escritos em Bash, Ruby, Python, Node.js e outras linguagens de programação que são mais comuns no Linux;
- Usar ferramentas de linha de comando próprias do Linux, como grep, sed, awk, curl, git e outras;
- Gerenciar servidores remotos que rodam Linux via SSH;
- Usar containers do Docker e orquestrá-los com Kubernetes;
- Dentre outros usos.
Em resumo, o WSL permite que você tenha o melhor dos dois mundos Windows e Linux sem a complexidade de máquinas virtuais ou dual boot.
Vale observar que até o momento tivemos duas versões do WSL. O WSL 2, anunciado em maio de 2019, e presente em qualquer edição do Windows 11 (Home ou Professional), usa um kernel Linux completo em uma máquina virtual que roda nos bastidores é é gerenciada pelo Hyper-V. O WSL 1 era uma camada de compatibilidade entre o kernel do Linux e o kernel do Windows, de modo que muitos programas do Linux não funcionavam de forma apropriada no Windows.
Nesse tutorial, você verá como ativar o WSL no Windows, instalar uma distribuição Linux nele e começar a usá-lo. Como referência, usarei o WSL 2 no Windows 11 e o openSUSE Leap 15.6 como distribuição Linux, mas, como veremos, você pode facilmente instalar outras distribuições Linux, se preferir.
Pré-requisitos
Para ativar e usar o WSL 2, seu sistema precisa atender aos seguintes requisitos:
- Processador: arquitetura x64 ou ARM64;
- Memória RAM: pelo menos 4 GB de RAM são recomendados, mas quanto mais, melhor o desempenho;
- Sistema operacional: Windows 11 (todas as versões), Windows 10 (versão 1903 ou superior, compilação 18362.1049 ou superior) ou Windows Server 2022; e
- Armazenamento: é necessário espaço no disco para instalar o WSL, a distribuição Linux e os programas que serão utilizados.
Você pode verificar se seu sistema atende a esses requisitos indo no menu Iniciar > Configurações > Sistema > Sobre:
Também é importante que todas as atualizações para o Windows estejam instaladas. Verifique o Windows Update:
Ativando a virtualização e o WSL
Antes de ativar o WSL, você precisa ativar a virtualização no Windows. Felizmente, as duas ativações podem ser feitas no mesmo lugar.
Abra o menu Iniciar, comece a digitar ativar
e clique em Ativar ou desativar recursos do Windows:
Ative a opção Virtual Machine Platform, se não estiver já ativada:
Ative também a opção Subsistema do Windows para Linux:
Clique em OK e reinicie o computador.
Atualizando o WSL
Antes de começarmos a usar o WSL, precisamos nos certificar de que temos sua versão mais recente.
Para isso, vamos rodar um comando no Terminal do Windows. Esse é o aplicativo padrão de terminal no Windows 11, mas também pode ser instalado no Windows 10. Curiosamente, é código aberto. Caso ele não esteja instalado no seu sistema, recomendo a instalação por meio da Microsoft Store.
Também recomendo que você instale a versão mais recente do PowerShell, o que também pode ser feito por meio da Microsoft Store (esse aplicativo também é código aberto, como a Microsoft está mudada!) Configure o Terminal do Windows de modo que sua sessão padrão seja o PowerShell.
Feito isso, inicie o Terminal como administrador:
E, na sequência, execute o comando:
1
wsl --update
O comando deve informar que a versão mais recente do WSL está instalada.
Instalando e usando a distribuição Linux
No ponto em que chegamos, podemos instalar a distribuição Linux que desejarmos no WSL e começar a usá-lo.
Abra a Microsoft Store, pesquise pela distribuição Linux que deseja e a instale, da mesma forma como instalaria qualquer outro aplicativo:
Se você pesquisar por wsl
, verá diversas opções de distribuições Linux que podem ser instaladas:
Quando a instalação terminar, abra o menu Iniciar, pesquise pela distribuição Linux e a inicie, da mesma forma como iniciaria qualquer outro aplicativo:
No primeiro uso, pode ser que a inicialização demore um pouco, porque alguns arquivos da distribuição ainda são instalados.
Por fim, aparece uma janela do Terminal do Windows com a interface de linha de comando da distribuição Linux:
No caso do openSUSE Leap, no primeiro uso aparece o YaST Firstboot, que é um utilitário de configuração. Você pode usar a tecla Tab para mudar de um controle da tela para o outro e a tecla Enter para confirmar.
Nessa primeira tela, selecione Next e confirme.
Na segunda tela, que mostra a licença de uso, também avance para a próxima:
Na terceira tela, você será solicitado a criar um nome de usuário (Username) e senha (Password) para o openSUSE Leap:
Lembre-se que, internamente, essa instalação do Linux roda em uma máquina virtual do Hyper-V. Portanto, esse usuário e senha não são os mesmos do Windows, assim como cada distribuição Linux que você instala para usar com o WSL tem seus próprios usuários e senhas. Você até pode usar os mesmos usuários e senhas, para uma conveniência sua, mas lembre-se disso. Para mais informações, consulte:
Quando terminar, avance para a próxima tela, e aguarde a atualização dos repositórios, que pode demorar um pouco.
Na última tela, vá em Finish para concluir a configuração inicial:
Pronto! Agora você já pode executar comandos e usar a distribuição:
Como exemplo, usei o comando uname para obter informações sobre o sistema.
Atualizando o openSUSE Leap
Ao usar uma distribuição Linux com o WSL, as atualizações para o Linux não são obtidas pelo Windows Update, devem ser obtidas usando o gerenciador de pacotes da própria distribuição.
Execute agora, e lembre-se de repetir de tempos em tempos:
1
2
# zypper ref
# zypper up
Se você usa o openSUSE Leap, provavelmente já conhece esses comandos. Senão, se precisar de mais informações, consulte:
Desligando ou reiniciando o Linux no WSL
Lembremos mais uma vez que, internamente, as distribuições Linux do WSL rodam em máquinas virtuais do Hyper-V. Se você quiser desligá-las todas de uma vez, pode abrir o PowerShell e executar:
1
wsl --shutdown
Se quiser desligar apenas alguma distribuição específica, você pode listar as distribuições instaladas com:
1
wsl -l -v
Esse comando é a versão curta deste outro, equivalente:
1
wsl --list --verbose
E deve produzir uma saída como:
1
2
NAME STATE VERSION
* openSUSE-Leap-15.6 Running 2
Para desligar apenas uma distribuição (por exemplo, openSUSE-Leap-15.6
), use um dos comandos a seguir, equivalentes:
1
2
wsl -t openSUSE-Leap-15.6
wsl --terminate openSUSE-Leap-15.6
Para iniciar uma distribuição, você pode usar o menu Iniciar, como já vimos, ou um dos comandos a seguir, equivalentes:
1
2
wsl -d openSUSE-Leap-15.6
wsl --distribution openSUSE-Leap-15.6
Para reiniciar uma distribuição, desligue-a e depois ligue-a novamente.
Instalando o systemd
O systemd é um gerenciador de sistema e serviços usado por muitas distribuições Linux, incluindo o openSUSE Leap. Ele controla a inicialização do sistema, gerencia processos e serviços, lida com logs e fornece diversas funcionalidades para administrar o sistema. O systemd substitui sistemas de inicialização mais antigos, como o SysVinit. O principal comando usado para gerenciar e interagir com o systemd é o systemctl, que provavelmente você já deve ter usado.
O systemd não vem habilitado por padrão nas distribuições Linux para WSL porque nem sempre o WSL suportou systemd, esse suporte se deu a partir de certo momento, e também porque para simplesmente rodar aplicativos Linux o systemd não é necessário. Mas você precisa do systemd se pretende usar serviços no Linux, a exemplo do Kubernetes. Instalar o systemd na sua distribuição Linux do WSL a tornará ainda mais próxima de uma distribuição Linux normal.
Para instalar o systemd no openSUSE Leap, execute:
1
# zypper in -t pattern wsl_systemd
E reinicie o WSL.
Para verificar que o systemd está rodando, use:
1
$ systemctl status
Compartilhando arquivos entre Windows e Linux no WSL
Quando você usa uma distribuição Linux com o WSL, o Windows e o Linux não compartilham, a princípio, os mesmos arquivos (o C:
do Windows não vira o /
do Linux, por exemplo). Mas é possível acessar arquivos do Windows no Linux e vice-versa.
No Linux, as unidades do Windows são montadas em /mnt
. Portanto, C:
pode ser acessado em /mnt/c
. O caminho C:/Users/SeuNomeDeUsuario/Documents/
vira /mnt/c/Users/SeuNomeDeUsuario/Documents/
.
No Windows, para acessar os arquivos do Linux, abra o Explorador de Arquivos e clique em Linux, na árvore à esquerda:
Você também pode inserir \\wsl$
ou \\wsl.localhost
na barra de endereços.
Para melhor desempenho, armazene seus arquivos no mesmo sistema operacional que as ferramentas que os abrirão. Por exemplo, se você vai usar um programa do Linux para abrir um arquivo, é melhor que ele esteja no seu /home
do que em /mnt/c
. Considere copiar esse arquivo do Windows para o Linux, mesmo que depois de trabalhar nele no Linux você tenha que copiá-lo de volta para o Windows. Ou, dependendo do caso, considere mantê-lo apenas no Linux.
Usando aplicações gráficas do Linux no WSL
Desde o WSL 2, você não precisa se limitar à interface de linha de comando do Linux, sendo possível rodar aplicativos com interface gráfica (GUI) por meio do WSLg, que é uma extensão do WSL. Vejamos, por exemplo, como rodar o Gedit, o editor de texto padrão do GNOME, no WSL.
Instale o WSLg no openSUSE Leap executando:
1
# zypper in -t pattern wsl_gui
Em seguida, você pode instalar aplicativos gráficos, por exemplo:
1
# zypper in gedit
Você pode iniciar o aplicativo gráfico invocando-o a partir da linha de comando, ou a partir do menu Iniciar, da mesma forma como iniciaria aplicativos para Windows:
Eis o Gedit rodando no Windows 11 via WSL:
Conclusão
O Subsistema do Windows para Linux foi feito pensando principalmente em desenvolvedores, mas pode ser aproveitado por qualquer pessoa que precise usar programas do Linux no Windows. Se você precisa desses programas ocasionalmente, o WSL provavelmente já te atende muito bem. Mas se você usa esses programas com frequência, considere a possibilidade de instalar o Linux no seu computador e usá-lo diretamente. Você pode instalar o Linux em dual boot com o Windows, de modo que não precisa se desfazer do Windows e pode usar um ou outro sistema, conforme sua necessidade no momento.
Se você seguiu esse tutorial pensando em montar um ambiente de desenvolvimento no Windows, talvez queira continuar sua leitura pelas referências a seguir, em especial as da Microsoft e da Full Cycle.
Referências
Para escrever esse tutorial, os textos a seguir foram usados como referências. Você pode consultá-los se quiser obter mais informações.