O que esperar do Windows Subsystem for Linux (WSL) 2 \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 10 Horas 

 14 Min 

 56 Seg 

   Tempo restante da oferta: 10 14 56 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) O que esperar do Windows Subsystem for Linux (WSL) 2  [ Desenvolvimento ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento) 

# O que esperar do Windows Subsystem for Linux (WSL) 2

 O Windows Subsystem for Linux (WSL) 2 permite você executar qualquer binário compilado para Linux diretamente no Windows. Eles traz melhorias significativas se comparado ao WSL como uma melhor performance de leitura e escrita em disco e acompanha até um kernel Linux! Vamos conhecer o WSL 2, como ele funciona e o que podemos esperar dele.

 [ Gabriel Machado ](https://www.treinaweb.com.br/blog/autor/gabriel-machado) 7 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/11/04160146/WSL-2.png)  

O Windows Subsystem Linux (WSL) é uma alternativa para desenvolvedores que procuram utilizar ferramentas de linha de comando compatíveis somente com Linux no Windows. Disponível para Windows 10, com ele é possível executar nativamente binários Linux na sua máquina Windows, escolhendo sua distribuição Linux preferida, como Debian, Ubuntu, Suse, até mesmo Kali Linux. Entretanto, tudo na vida pode ser aprimorado.

Vamos conhecer nesse artigo quais são as limitações do WSL e como será a evolução para o WSL 2.

[  ![Windows - Fundamentos para desenvolvedores](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/windows-server.svg)   Curso Windows - Fundamentos para desenvolvedores Conhecer o curso ](https://www.treinaweb.com.br/curso/windows-fundamentos-para-desenvolvedores)

## Limitações do WSL

O WSL permite você executar qualquer binário compilado para Linux diretamente no Windows, através de um subsistema que é responsável pro traduzir as [chamadas de sistema](https://pt.wikipedia.org/wiki/Chamada_de_sistema) (do inglês system calls) do Linux para uma chamada equivalente para o Windows. Você pode ver com mais detalhes como o WSL funciona e como instalá-lo na sua máquina [nesse artigo](https://www.treinaweb.com.br/blog/o-que-e-windows-subsystem-for-linux-wsl/).

Duas grandes limitações do WSL são a sua performance envolvendo operações de disco e a sua compatibilidade com algumas system calls específicas.

Sobre a performance em disco, atividades que envolvem operações intensivas com o disco, com comandos como git clone, npm install, apt upgrade, entre outros acabam demorando mais do que deveriam. Isso acontece pois esses dados são salvos diretamente no disco do seu sistema, e toda a operação que precisa interagir com esses arquivos precisa de alguns passos extras para a tradução dos comandos enviados pela system call do Linux até a persistência do dado em si.

Outra limitação é a compatibilidade com system calls. Embora grande parte das system calls funcione graças a implementação e melhorias adicionadas pela equipe do WSL, elas não correspondem 100% de todas as system calls disponíveis para o Linux, fazendo que aplicações específicas que façam uso de chamadas mais avançadas do Linux não seja compatíveis com o WSL. Um exemplo desse tipo de aplicação é o Docker, ferramenta presente no dia a dia de muitos desenvolvedores atualmente.

Tendo em vista esses problemas, o time responsável pelo desenvolvimento [anunciou o WLS 2](https://devblogs.microsoft.com/commandline/announcing-wsl-2/), com o foco em melhorar a performance em disco e fornecer total compatibilidade com system calls em Linux, não mais traduzindo essas chamadas, mas fornecendo um kernel Linux dentro do Windows!

## Como funciona o WSL 2

O WSL 2 utiliza uma arquitetura completamente diferente do WSL 1. Ao invés de traduzir as system calls, ele utiliza diretamente um kernel do Linux atualizado através de uma máquina virtual. Mas não estamos tratando de uma máquina virtual qualquer!

O WSL 2 utiliza as mais recentes tecnologias de virtualização fornecidas pelo Hyper-V para fornecer uma máquina virtual leve, rápida e altamente integrada com o Windows. Com isso é possível utilizar de todas as vantagens que o WSL 1 trouxe, mas agora com total compatibilidade do sistema, até para rodar Docker.

Graças ao uso dessa máquina virtual, a performance com operações em disco aumentaram drasticamente. Antes, seus arquivos eram armazenados diretamente no disco do sistema, agora todos os arquivos utilizados pelo WSL 2 estão dentro de uma disco virtual do formato VHD, conseguindo entregar uma performance até 5 vezes mais em operações como npm install nessa nova arquitetura.

É possível notar essa diferença a partir do vídeo abaixo encontrado no anuncio do WSL 2. Ele mostra o tempo necessário para iniciar o WSL e executar um container Docker. Tudo isso leva menos que 30 segundos!

![Performace do WSL 2](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01001453/runwsl.gif)

Uma desvantagem dessa abordagem é que não temos acesso direto aos arquivos armazenados dentro do WSL 2, mas temos outras formas de acessar esses arquivos, através da rede ou com extensões especialidades nas nossas IDE, como a extensão Remote WSL do Visual Studio Code. Assim podemos utilizar da melhoria de performance em disco trazido pelo WSL 2.

## Instalação

O processo de instalação do WSL 2 é muito próximo WSL 1. No momento ele está disponível na versão Insider do Windows 10. Sua previsão de lançamento está para o release 2003 do Windows 10 que deve ser lançado por volta de Abril de 2020.

Para use o WSL 2, precisamos habilitar a feature do Windows Subsystem for Linux e também o Virtual Machine Platform. Isso pode ser feito executando os comandos abaixo a partir de uma janela do PowerShell com permissão de Administrador:

```
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

```

Feito isso, caso você já tenha uma distribuição Linux instalada a partir do Microsoft Store, você pode migrar essa distribuição para executar dentro do WSL 2 e poder assim utilizar de todas as suas melhorias. Por exemplo, se você tem o Ubuntu 18.04 instalado, execute o comando abaixo:

```
wsl --set-version Ubuntu-18.04 2

```

Altere o nome de acordo com a distribuição que você utiliza. Para descobrir quais distribuições estão instaladas, execute o comando:

```
wsl --list --verbose

```

![Lista com distribuições WSL](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01001449/lista-distro.png)

Isso vai te mostrar quais distribuições estão instaladas, juntamente com a versão do WSL em uso.

Caso esteja utilizando uma instalação limpa do Windows, você pode definir a versão padrão do WSL para sua segunda versão:

```
wsl --set-default-version 2

```

O restante do processo é semelhante com o WSL 1. Você vai até a Microsoft Store e escolhe a distribuição desejada. Você pode acompanhar com mais detalhes no [artigo sobre WSL](https://www.treinaweb.com.br/blog/o-que-e-windows-subsystem-for-linux-wsl/) como é feito esse processo.

## O que esperar do WSL 2

Pelo motivo do WSL 2 ainda estar em desenvolvimento, podemos esperar que muitas melhorias sejam implementadas até seu lançamento final. Com a melhoria de performance e compatibilidade total com Linux, temos um ambiente de desenvolvimento com performance comparável o Linux instalado de forma nativa, o que é uma grande conquista.

Muitas pessoas se sentem mais confortáveis utilizando Windows, ou precisam desenvolver aplicações legadas que só funcionam no Windows, mas ao mesmo tempo trabalham com projetos que são hospedados em servidores Linux, requerendo que você tenha um ambiente mais próximo de produção. Para esses casos o WSL 2 é uma ótima solução.

Combinado com ferramentas como o Visual Studio Code com Remote extension podemos trabalhar com o WSL 2 como se estivéssemos trabalhando no sistema local, sem perceber que estamos utilizando uma máquina virtual por baixo.

Até mesmo o Docker para Windows irá se aproveitar do WSL 2, estando disponível na versão Edge do mesmo integração com o WSL 2, aproveitando também dos ganhos de performance com disco, um dos problemas que temos atualmente com o Docker ao usá-lo no Windows com aplicações que precisam de um grande volume de leitura e escrita em disco.

[  ![IA Para Devs - Primeiros Passos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/ia-para-devs.svg)   Curso IA Para Devs - Primeiros Passos Conhecer o curso ](https://www.treinaweb.com.br/curso/ia-para-devs-primeiros-passos)

- [ #Docker ](https://www.treinaweb.com.br/blog/tag/docker)
- [ #windows ](https://www.treinaweb.com.br/blog/tag/windows)
- [ #WSL ](https://www.treinaweb.com.br/blog/tag/wsl)
- [ #linux ](https://www.treinaweb.com.br/blog/tag/linux)

Autor

 ![Gabriel Machado](//secure.gravatar.com/avatar/411cd028754ca7f6e6dd7a06d87b883c?d=mm)

## Gabriel Machado

 Autor dos cursos de cloud computing da TreinaWeb. Graduado em Gestão de TI pela FATEC e quase bacharel em Sistemas de Informação pela UFSCar. Tem experiência em desenvolvimento backend com PHP, mas se encontrou trabalhando com DevOps. [Microsoft Certified: DevOps Engineer Expert](https://www.youracclaim.com/badges/8e06b17f-b5bb-42f5-9bda-e9b542050f1a/public_url), [Azure Solutions Architect Expert](https://www.youracclaim.com/badges/18364536-29fe-49ad-9afd-f4b5193b2e5b/public_url) e [Azure Data Engineer Associate](https://www.youracclaim.com/badges/c3e135d4-5f2f-4360-8739-c3002e713e77/public_url), [AWS Certified Solutions Architect - Associate](https://www.youracclaim.com/badges/5f9675e2-6662-4ce6-824b-5694955d3f5d/public_url), e [Zend Certified Engineer (ZCE)](https://www.zend.com/en/yellow-pages/ZEND026022). [@gmsantos](https://about.me/gmsantos) 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/gabriel-machado)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/11/02163749/WSL-DOCKER-1-400x280.png)  [ DevOps ](https://www.treinaweb.com.br/blog/categoria/devops) 

     7 anos atrás

    ##  [ Docker Desktop no Windows rodando com WSL 2 ](https://www.treinaweb.com.br/blog/docker-desktop-no-windows-rodando-com-wsl-2) 

     Com o lançamento do WSL 2, agora é possível executar o Docker sem precisar de uma máquina virtual tradicional. Com isso foi lançado em preview um novo backend para o Docker Desktop integrado com o WSL 2, que promete um grande salto em performance. Será que esse salto de performance é realmente significativo? Vamos descobrir nesse artigo.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/03/29143505/TW-ENTREVISTAS-JOAO-BATISTA-400x280.png)  [ Entrevistas ](https://www.treinaweb.com.br/blog/categoria/entrevistas) 

     9 anos atrás

    ##  [ TW Entrevista 03: João Batista Neto ](https://www.treinaweb.com.br/blog/tw-entrevista-03-joao-batista-neto) 

     Fizemos uma série de entrevistas com desenvolvedores chamada "TW Entrevista". O entrevistado de hoje é o João Batista Neto, engenheiro de aplicações e administrador do fórum iMasters e iMasters Code.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/01/lendo-dados-do-excel-via-dde-no-java-400x280.png)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     6 anos atrás

    ##  [ Lendo dados do Excel via DDE no Java ](https://www.treinaweb.com.br/blog/lendo-dados-do-excel-via-dde-no-java) 

     Aprenda como ler dados do Excel via DDE no Java, utilizando a biblioteca JDDE da Pretty Tools.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/05/04133905/softwares-gratis-vs-softwares-pagos-400x280.png)  [ Ferramentas ](https://www.treinaweb.com.br/blog/categoria/ferramentas) 

     7 anos atrás

    ##  [ Softwares Pagos: Por que grandes empresas costumam utilizá-los? ](https://www.treinaweb.com.br/blog/softwares-pagos-por-que-grandes-empresas-costumam-utiliza-los) 

     Entenda os motivos de grandes empresas normalmente utilizarem softwares pagos ao invés de soluções gratuitas existentes no mercado.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/hacker-400x280.png)  [ C ](https://www.treinaweb.com.br/blog/categoria/c) 

     10 anos atrás

    ##  [ Criação de um Keylogger em C ](https://www.treinaweb.com.br/blog/criacao-de-um-keylogger-em-c) 

     Veja nesse artigo o que é e como se dá o desenvolvimento de um simples Keylogger em C.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/google-400x280.jpg)  [ Bancos de Dados ](https://www.treinaweb.com.br/blog/categoria/bancos-de-dados) 

     10 anos atrás

    ##  [ Google na .NET Foundation? SQL Server para Linux? Visual Studio para MacOS? Saiba como foi o Connect() ](https://www.treinaweb.com.br/blog/google-na-net-foundation-sql-server-para-linux-visual-studio-para-macos-saiba-como-foi-o-connect) 

     Não conseguiu acompanhar a Connect() 2016 da Microsoft? Não tem problema, aqui no TreinaWeb te trazemos todas as incríveis novidade que foram apresentadas!

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/01/criando-uma-api-com-spring-data-jpa-e-spring-web-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     5 anos atrás

    ##  [ Criando uma API com Spring Data JPA e Spring Web ](https://www.treinaweb.com.br/blog/criando-uma-api-com-spring-data-jpa-e-spring-web) 

     Neste artigo vamos aprender como criar uma API com persistência de dados utilizando o Spring Web MVC e o Spring Data JPA.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/10/25180534/capa-rotina-estudos1-400x280.png)  [ Estudos ](https://www.treinaweb.com.br/blog/categoria/estudos) 

     8 anos atrás

    ##  [ Como manter uma rotina nos meus estudos? ](https://www.treinaweb.com.br/blog/como-manter-uma-rotina-nos-meus-estudos) 

     Falta de tempo? Perda de interesse? Veja como ter uma rotina de estudos e conseguir mantê-la.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2017/09/conheca-as-novidades-que-estao-por-vir-no-android-studio-3-400x280.jpg)  [ Android ](https://www.treinaweb.com.br/blog/categoria/android) 

     9 anos atrás

    ##  [ Conheça as novidades que estão por vir no Android Studio 3.0 ](https://www.treinaweb.com.br/blog/conheca-as-novidades-que-estao-por-vir-no-android-studio-3) 

     Veja as principais novidades e atualizações que a equipe de desenvolvedores do Android Studio preparou para a versão 3.0.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2024/04/sistemas-mensageria-min-400x280.png)  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

     3 anos atrás

    ##  [ O que é e quais as diferenças entre Kafka, RabbitMQ e AWSSQS ](https://www.treinaweb.com.br/blog/o-que-e-e-quais-as-diferencas-entre-kafka-rabbitmq-e-awssqs) 

     Confira nesse artigo o que são sistemas de mensageria, o que são e quais as diferenças entre Kafka, RabbitMQ e AWSSQS.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/01/TWELVE-FACTOR-APP-400x280.png)  [ Engenharia de Software ](https://www.treinaweb.com.br/blog/categoria/engenharia-de-software) 

     6 anos atrás

    ##  [ O que são os 12 Factor App? - Parte 1 ](https://www.treinaweb.com.br/blog/o-que-sao-os-12-factor-app-parte-1) 

     Se você trabalha desenvolvendo aplicativos que funcionam como um serviço, conheça os 12 (Twelve) Factor App, uma metodologia que te ajudará a criar aplicações melhores.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/02/18162506/XP-400x280.png)  [ Engenharia de Software ](https://www.treinaweb.com.br/blog/categoria/engenharia-de-software) 

     7 anos atrás

    ##  [ O que é XP - Extreme Programming? ](https://www.treinaweb.com.br/blog/o-que-e-xp-extreme-programming) 

     Seguimos nossa série de artigos de metodologias, abordando hoje mais uma metodologia ágil: XP (Extreme Programming).

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **10h 14min 56s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
