Alterações de experiência do usuário entre WSL 1 e WSL 2User Experience Changes Between WSL 1 and WSL 2

Esta página passa pelas diferenças de experiência do usuário entre o WSL 1 e a versão prévia do WSL 2.This page goes over the user experience differences between WSL 1 and the WSL 2 preview. As principais alterações a serem observadas são:The key changes to be aware of are:

  • Coloque os arquivos que seus aplicativos Linux acessarão no sistema de arquivos raiz do Linux para uma velocidade de desempenho de arquivo mais rápidaPlace files that your Linux apps will access in your Linux root file system for faster file performance speed
  • Em compilações iniciais da visualização do WSL 2, você precisará acessar aplicativos de rede usando um endereço IP e não usando localhostIn initial builds of the WSL 2 preview you will need to access network applications using an IP address and not using localhost

E abaixo está a lista completa de outras alterações que você pode observar:And below is the full list of other changes that you may notice:

  • O WSL 2 usa um disco de hardware virtual (VHD) para armazenar seus arquivos e, se você atingir seu tamanho máximo, talvez seja necessário expandi-loWSL 2 uses a Virtual Hardware Disk (VHD) to store your files and if you reach its max size you may need to expand it
  • Ao iniciar, o WSL 2 agora usará uma pequena proporção de memóriaWhen starting, WSL 2 will now use a small proportion of memory
  • A velocidade de acesso ao arquivo do sistema operacional será mais lenta em compilações iniciais de visualizaçãoCross OS file access speed will be slower in initial preview builds

Coloque os arquivos do Linux no sistema de arquivos raiz do LinuxPlace your Linux files in your Linux root file system

Certifique-se de colocar os arquivos que serão acessados com frequência com aplicativos Linux dentro do seu sistema de arquivos raiz Linux para aproveitar os benefícios de desempenho do arquivo.Make sure to put the files that you will be accessing frequently with Linux applications inside of your Linux root file system to enjoy the file performance benefits. Esses arquivos precisam estar dentro do sistema de arquivos raiz do Linux para ter acesso mais rápido ao sistema de arquivos.These files have to be inside of the Linux root file system to have faster file system access. Também tornamos possível que os aplicativos do Windows acessem o sistema de arquivos raiz do Linux (como o explorador de arquivos!We have also made it possible for Windows apps to access the Linux root file system (like File Explorer! Tente executar: explorer.exe . no diretório base do seu distribuição do Linux e veja o que acontece), o que tornará essa transição significativamente mais fácil.Try running: explorer.exe . in the home directory of your Linux distro and see what happens) which will make this transition significantly easier.

Acessando aplicativos de redeAccessing network applications

Nas compilações iniciais da versão prévia do WSL 2, você precisará acessar qualquer Windows Server do Linux usando o endereço IP do seu computador host.In the initial builds of the WSL 2 preview, you will need to access any Windows server from Linux using the IP address of your host machine.

Acessando aplicativos do Windows no LinuxAccessing Windows applications from Linux

Para acessar um aplicativo de rede do Windows, você precisará usar o endereço IP do seu computador host.To access a Windows network application you'll need to use the IP address of your host machine. Você pode fazer isso com estas etapas:You can do so with these steps:

  • Obtenha o endereço IP do seu computador host executando o comando cat /etc/resolv.conf e copiando o endereço IP após o termo. nameserverObtain the IP address of your host machine by running the command cat /etc/resolv.conf and copying the IP address following the term nameserver.
  • Conecte-se a qualquer servidor Windows usando o endereço IP copiado.Connect to any Windows server using the copied IP address.

A figura abaixo mostra um exemplo disso conectando-se a um servidor node. js em execução no Windows via ondulação.The picture below shows an example of this by connecting to a Node.js server running in Windows via curl.

Acessando aplicativos de rede Linux do Windows

Acessando aplicativos Linux do Windows (somente em compilações inferiores a 18945)Accessing Linux applications from Windows (only in builds lower than 18945)

Se você tiver um servidor em um WSL distribuição, precisará encontrar o endereço IP da máquina virtual que está ligando seu distribuição e conectar-se a ele com esse endereço IP.If you have a server in a WSL distro, you'll need to find the IP address of the virtual machine powering your distro and connect to it with that IP address. Você pode fazer isso seguindo estas etapas:You can do that by following these steps:

  • Obtenha o endereço IP do seu distribuição executando o comando ip addr dentro de seu WSL distribuição e encontrando-o sob o inet valor da eth0 interface.Obtain the IP address of your distro by running the command ip addr inside of your WSL distro and finding it under the inet value of the eth0 interface.
    • Você pode encontrar isso mais facilmente filtrando a saída do comando usando grep da seguinte forma: ip addr | grep eth0.You can find this more easily by filtering the output of the command using grep like so: ip addr | grep eth0.
  • Conecte-se ao seu servidor Linux usando o IP encontrado acima.Connect to your Linux server using the IP you found above.

A figura abaixo mostra um exemplo disso conectando-se a um servidor node. js usando o navegador Edge.The picture below shows an example of this by connecting to a Node.js server using the Edge browser.

Acessando aplicativos de rede Linux do Windows

Se sua compilação for 18945 ou superior, você poderá usar localhost da mesma forma que o normal.If your build is 18945 or higher, you can use localhost just like normal.

Outras considerações de redeOther networking considerations

Ao usar endereços IP remotos para se conectar aos seus aplicativos, eles serão tratados como conexões da LAN (rede local).When using remote IP addresses to connect to your applications, they will be treated as connections from the Local Area Network (LAN). Isso significa que você precisará certificar-se de que seu aplicativo pode aceitar conexões de LAN, ou seja: Talvez seja necessário associar seu aplicativo ao em 0.0.0.0 vez de 127.0.0.1ao.This means that you will need to make sure your application can accept LAN connections, i.e: You might need to bind your application to 0.0.0.0 instead of 127.0.0.1. Por exemplo, no Python usando Flask, isso pode ser feito com o app.run(host='0.0.0.0')comando:.For example in python using flask this can be done with the command: app.run(host='0.0.0.0'). Tenha em mente a segurança ao fazer essas alterações, pois isso permitirá conexões de sua LAN.Please keep security in mind when making these changes, as this will allow connections from your LAN.

Entender o WSL 2 usa um VHD e o que fazer se você atingir seu tamanho máximoUnderstanding WSL 2 uses a VHD, and what to do if you reach its max size

O WSL 2 armazena todos os arquivos do Linux dentro de um VHD que usa o sistema de arquivos EXT4.WSL 2 stores all your Linux files inside of a VHD that uses the ext4 file system. Esse VHD é redimensionado automaticamente para atender às suas necessidades de armazenamento.This VHD automatically resizes to meet your storage needs. Esse VHD também tem um tamanho máximo inicial de 256 GB.This VHD also has an initial max size of 256GB. Se seu distribuição aumentar de tamanho para ser maior que 256 GB, você verá erros informando que você ficou sem espaço em disco.If your distro grows in size to be greater than 256GB you will see errors stating that you've run out of disk space. Você pode corrigi-los expandindo o tamanho do VHD.You can fix these by expanding the VHD size. As instruções sobre como fazer isso estão abaixo:Instructions on how to do so are below:

  1. Encerrar todas as instâncias de WSL wsl --shutdown usando o comandoTerminate all WSL instances using the wsl --shutdown command
  2. Localize o nome do pacote de instalação do distribuição ' PackageFamilyName 'Find your distro installation package name 'PackageFamilyName'
    • Em um prompt do PowerShell (em que ' distribuição ' é o seu nome de distribuição), digite:In a powershell prompt (where 'distro' is your distribution name) type:
      • Get-AppxPackage -Name "*<distro>*" | Select PackageFamilyName
  3. Localize o arquivo VHD FullPath usado pela sua instalação do WSL 2, que será o seu ' pathToVHD ':Locate the VHD file fullpath used by your WSL 2 installation, this will be your 'pathToVHD':
    • %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx
  4. Redimensione o VHD do WSL 2 concluindo os seguintes comandosResize your WSL 2 VHD by completing the following commands
    • Abra uma janela de prompt de comando com privilégios de administrador e execute os seguintes comandos:Open a command prompt Window with admin privileges and run the following commands:
      • diskpart
      • Select vdisk file="<pathToVHD>"
      • expand vdisk maximum="<sizeInMegaBytes>"
  5. Inicie o WSL distribuiçãoLaunch your WSL distro
  6. Faça com que o WSL saiba que ele pode expandir o tamanho do seu sistema de arquivosMake WSL aware that it can expand its file system's size
    • Execute estes comandos em seu WSL distribuição:Run these commands in your WSL distro:
      • sudo mount -t devtmpfs none /dev
      • mount | grep ext4
        • Copie o nome dessa entrada, que terá a seguinte aparência:/dev/sdXX (com o X representando qualquer outro caractere)Copy the name of this entry, which will look like: /dev/sdXX (with the X representing any other character)
      • sudo resize2fs /dev/sdXX
        • Certifique-se de usar o valor copiado anteriormente e talvez seja necessário usar: apt install resize2fs.Make sure to use the value you copied earlier, and you may need to use: apt install resize2fs.

Observação: Em geral, não modifique, mova ou acesse os arquivos relacionados ao WSL localizados dentro da sua pasta AppData usando as ferramentas ou os editores do Windows.Please note: In general do not modify, move, or access the WSL related files located inside of your AppData folder using Windows tools or editors. Isso pode fazer com que o distribuição do Linux fique corrompido.Doing so could cause your Linux distro to become corrupted.

WSL 2 usará alguma memória na inicializaçãoWSL 2 will use some memory on startup

O WSL 2 usa uma VM de utilitário leve em um kernel Linux real para fornecer excelente desempenho do sistema de arquivos e compatibilidade completa de chamada do sistema, enquanto ainda está sendo tão leve, rápido, integrado e responsivo como WSL 1.WSL 2 uses a lightweight utility VM on a real Linux kernel to provide great file system performance and full system call compatibility while still being just as light, fast, integrated and responsive as WSL 1. Essa VM do utilitário tem uma pequena superfície de memória e alocará memória com suporte de endereço virtual na inicialização.This utility VM has a small memory footprint and will allocate Virtual Address backed memory on startup. Ele é configurado para começar com uma pequena proporção da memória total.It is configured to start with a small proportion of your total memory.

A velocidade do arquivo entre OS sistemas operacionais será mais lenta nas compilações iniciais de visualizaçãoCross OS file speed will be slower in initial preview builds

Você perceberá velocidades de arquivo mais lentas em comparação com WSL 1 ao acessar arquivos do Windows de um aplicativo Linux ou acessar arquivos do Linux de um aplicativo do Windows.You will notice slower file speeds compared to WSL 1 when accessing Windows files from a Linux application, or accessing Linux files from a Windows application. Isso é resultado das alterações de arquitetura no WSL 2 e é algo que a equipe de WSL está investigando ativamente sobre como podemos melhorar essa experiência.This is a result of the architectural changes in WSL 2, and is something that the WSL team is actively investigating on how we can improve this experience.