O WSL2 executa o Linux em uma máquina virtual ou ao lado do kernel do Windows?

16

Eu sempre quis um terminal Linux no Windows e fui atendido pela WSL 1. Mas era dolorosamente lento como era (eu acho) uma máquina virtual gerenciada pelo Hyper-V. Com o WSL 2, é relativamente mais rápido, mas não consigo entender como a Microsoft fez isso.

Eles melhoraram o Hyper-V ou pararam de usar uma máquina virtual e criaram alguma mágica para executar o kernel do Linux em paralelo?

Sachin.Verma
fonte
3
Ainda é virtual, mas o WSL2 usa um kernel linux (4.9) em vez de alterar as chamadas para APIs do Windows e manipulá-lo dessa maneira.
guiverc
9
@Sachin WSL 1 corre binários ELF no Windows, traduzindo as chamadas do sistema Linux para chamadas de sistema do Windows, o que torna exatamente o que seu nome descreve, "Windows Subsistema para Linux"
wjandrea
6
WSL 1 não foi @guiverc virtual
Adrian
3
@ Sachin.Verma: O que você quer dizer com "fraude"? O WSL 1 foi uma implementação da API e ABI do kernel Linux, assim como o kernel Linux é uma implementação da API e ABI do kernel Linux. De fato, é assim que a maioria das camadas de compatibilidade do Linux funciona, por exemplo, as do FreeBSD, HP-UX, AIX, Solaris, etc. Também funciona ao contrário: todas as camadas de compatibilidade para os Unices comerciais no Linux foram reimplementações independentes de suas APIs e ABIs.
Jörg W Mittag
4
O WinE também funciona da mesma maneira. Ele implementa a API do Windows e a ABI, em vez de portar o Windows para rodar no Linux (o que não seria legalmente possível).
Jörg W Mittag

Respostas:

17

No artigo Sobre o WSL 2 do Microsoft Docs:

Breve visão geral da arquitetura WSL 2

O WSL 2 usa a mais recente e melhor em tecnologia de virtualização para executar seu kernel Linux dentro de uma VM (Virtual Utility Machine) leve. No entanto, o WSL 2 NÃO será uma experiência tradicional da VM. Uma experiência tradicional de VM pode ser lenta para inicializar, é isolada, consome muitos recursos e requer tempo para gerenciá-la. O WSL 2 não possui esses atributos. Ainda oferecerá os benefícios notáveis ​​do WSL 1: altos níveis de integração entre Windows e Linux, tempos de inicialização extremamente rápidos, presença de poucos recursos e, o melhor de tudo, não requer configuração ou gerenciamento de VM. Embora o WSL 2 use uma VM, ela será gerenciada e executada nos bastidores, deixando você com a mesma experiência do usuário que o WSL 1.

Como podemos ver nos seguintes artigos (e discussões abaixo deles), o WLS 2 usa o recurso Hyper-V:

pa4080
fonte
Pelo que li até agora: será isolado, consumirá recursos adicionais, terá um disco virtual dedicado.
LatinSuD 30/12/19