O atual Windows Subsystem para Linux usa um componente do kernel criado pela Microsoft que fornece a mesma API do kernel que o kernel do Linux, mas foi escrito do zero pela Microsoft.

Essencialmente, ele traduziu de APIs do Linux para APIs de kernel do Windows NT. Isso funcionou muito bem, mas o subsistema atual tinha algumas deficiências: não havia capacidade por exemplo de usar drivers Linux, em particular drivers de sistema de arquivos.

O desempenho do sistema de arquivos, em camadas sobre o próprio NTFS do Windows, costumava ser 20 vezes mais lento que um kernel Linux real.

Também era uma versão relativamente antiga do kernel; Ele ofereceu aproximadamente o conjunto de APIs que o Linux 4.4 fez e que foi lançado em 2016. Algumas APIs não são implementadas, e outras são implementadas apenas parcialmente para atender às necessidades de aplicativos específicos.

Nova Build trará Kernel Linux real para o Windows 10
Nova atualização trará Kernel Linux real para o Windows 

Nova atualização do Windows 10

Tudo está mudando com o Windows Subsystem para Linux 2. Em vez de emular as APIs do kernel do Linux no kernel NT, o WSL 2 executará um kernel Linux completo em uma máquina virtual leve.

Este kernel será reduzido e adaptado para este caso de uso específico, com suporte de hardware reduzido (já que será adiado para o sistema operacional Windows host para isso) e inicialização mais rápida.

O kernel do Linux é open source GPL; a licença GPL exige que quaisquer modificações feitas no código sejam publicadas e disponibilizadas sob a licença GPL.

A Microsoft irá cumprir com isso, publicando os patches e modificações que ele faz no kernel. A WSL 2 também usará uma divisão semelhante à que a WSL atual faz: o componente do kernel será fornecido com o Windows, enquanto às várias distribuições do Linux poderão ser instaladas na Microsoft Store.

Usando o próprio kernel do Linux, a Microsoft obtém todos os recursos do Linux gratuitamente.

É por isso que o WSL 2 suportará contêineres do Docker: toda a infraestrutura subjacente, como cgroups, já está no kernel do Linux, e a Microsoft não precisará implementar os recursos em si. O kernel incorporado será atendido e atualizado pelo Windows Update.

Teste de execução
Teste de execução

Veja na imagem acima uma demonstração rápida do WSL 2 em ação. Quando começamos nossos testes, temos acesso a um shell de trabalho em menos de dois segundos, e podemos executar serviços e aplicativos como o docker imediatamente. 

Isso também fornece um grande aumento no desempenho. Operações pesadas no sistema de arquivos, como a extração de um tarball, podem ser até 20 vezes mais rápidas; outras atividades (como a clonagem de repositórios de código fonte no Git) serão talvez cinco vezes mais rápidas.

A WSL já foi muito bem acolhida pelos desenvolvedores, pois oferece um ambiente de desenvolvimento sólido semelhante ao Linux. A WSL 2 levará isso para um novo nível e eliminará todos os problemas de compatibilidade que o WSL 1 possui.

A primeira prévia da WSL 2 deve ser lançada em junho.