Windows Subsystem for Linux (WSL 2) e VS Code

Windows Subsystem for Linux (WSL 2) e VS Code

Programar no Linux estando no Windows

Estou utilizando o Windows Subsystem for Linux (WSL) da Microsoft. Pra quem ainda não o conhece, WSL é uma tecnologia da Microsoft que permite utilizar Linux nativamente no Windows 10 sem virtualização (sem? talvez não :)). Ficou curioso?

Instalação

1. Instalação do WSL

Abra o PowerShell do Windows como administrador e execute este comando:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Reinicie o computador.

2. Update para WSL 2

No momento da escrita deste post, o WSL é instalado por padrão na versão 1. A Microsoft já lançou o WSL 2 e portanto segue instruções de atualização:

Algumas das vantagens do WSL 2:

  • Kernel compledo do Linux;

  • Melhor desempenho;

  • Suporte ao Docker, Kubernetes e ao padrão de containers;

Pre-requisitos:

  • Sua versão do Windows 10 Home ou Pro precisa ser superior a 1903 Build 18362. Para saber a versão do Windows, tecle Windows + R e digite o comando winver;

  • O recurso de virtualização de sua placa mãe precisa tá habilitado. Você pode verificar isso no Gerenciador de Tarafas Windows. Tecle Windows + R e digite o comando taskmgr. Vá em Mais detalhes / Desempenho / CPU. Procure por Virtualização;

  • 4GB RAM (mínimo).

Estando com os pré-requisitos atendidos, habilite o componente VirtualMachinePlatform do Windows. Abra o PowerShell como administrador e execute este comando:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Reinicie o computador

3. Atualize o Kernel do Linux

Link aqui (como administrador)

4. Defina o WSL 2 como versão padrão

Abra o PowerShell como administrador e execute este comando:

wsl --set-default-version 2

5. Instale uma distro do Linux de sua preferência:

Link aqui

Limite a quantidade de recursos consumidos pelo WSL (Recomendação)

No diretório *%UserProfile%* do Windows, crie o arquivo **.wslconfig com o seguinte conteúdo de exemplo.

[wsl2]
memory=3GB  # limite de memoria RAM
swap=0  # 0 para não usar swap

No exemplo acima, definimos um limite de 3GB de memória RAM e a não utilização de Swap. Veja outros parâmetros que pode ser definidos (fonte):

kernel=    # An absolute Windows path to a custom Linux kernel.
memory=    # How much memory to assign to the WSL2 VM.
processors=    # How many processors to assign to the WSL2 VM.
swap=    # How much swap space to add to the WSL2 VM. 0 for no swap file.
swapFile=    # An absolute Windows path to the swap vhd.
localhostForwarding=   # Boolean specifying if ports bound to wildcard or localhost in the WSL2 VM should be connectable from the host via localhost:port (default true).
#  entries must be absolute Windows paths with escaped backslashes, for example C:\\Users\\Ben\\kernel
#  entries must be size followed by unit, for example 8GB or 512MB

Experimente o Windows Terminal

A Microsoft nunca teve um terminal a altura dos terminais Linux mas te convido a dar uma chance ao Windows Terminal. Você vai se surpreender.

Abra o Windows Terminal e com o simples clique no menu ao lado do botão de nova guia, você encontrar suas distros linux.

WSL 2 e VSCode

Em seu VSCode, instale a extensão ms-vscode-remote.remote-wsl. No Linux, você pode abrir o VSCode apenas digitando:

code .

Pronto. Seu VSCode estará executando como se estivesse dentro do Linux. Inclusive o terminal do VSCode estará linkado com o terminal do Linux.

Gostou? Experimenta digitar no Linux o comando

explorer.exe .

Acesse o WSL pelo Windows Explorer

Pre-requisito: O WSL precisa está rondando. Você pode verificar isso abrindo PowerShell e executando o comando wsl -l -v.

Na barra de endereços do Windows Explorer, digite \\wsl$