Czy WSL2 działa pod Linuksem na maszynie wirtualnej czy obok jądra systemu Windows?

16

Zawsze chciałem mieć terminal Linuksa w systemie Windows i spełniało mnie WSL 1. Ale było to boleśnie powolne, ponieważ (jak sądzę) była to maszyna wirtualna zarządzana przez Hyper-V. W przypadku WSL 2 jest on stosunkowo szybszy, ale nie rozumiem, jak to zrobił Microsoft.

Czy ulepszyli Hyper-V, czy przestali używać maszyny wirtualnej i stworzyli magię do równoległego uruchamiania jądra Linux?

Sachin.Verma
źródło
3
Nadal jest wirtualny, ale WSL2 używa jądra Linux (4.9) zamiast zmieniać wywołania interfejsów API systemu Windows i obsługiwać je w ten sposób.
guiverc
9
@Sachin WSL 1 uruchamia pliki binarne ELF w systemie Windows, tłumacząc wywołania systemowe Linux na wywołania systemowe Windows, co sprawia, że ​​jest to dokładnie to, co opisuje jego nazwa, „Podsystem Windows dla systemu Linux”
wjandrea
6
WSL 1 nie był wirtualny @ guiverc
Adrian
3
@ Sachin.Verma: Co rozumiesz przez „mistyfikacja”? WSL 1 był implementacją API jądra Linux i ABI, podobnie jak jądro Linux jest implementacją API jądra Linux i ABI. W rzeczywistości tak działa większość warstw kompatybilności z Linuksem, np. W FreeBSD, HP-UX, AIX, Solaris itp., Są to w większości niezależne re-implementacje ABI i API jądra Linux zamiast portów jądra Linux. Działa to również na odwrót: wszystkie warstwy zgodności dla komercyjnych uniksów w systemie Linux były niezależnymi re-implementacjami ich interfejsów API i ABI.
Jörg W Mittag
4
WinE działa również w ten sam sposób. Implementuje interfejs API systemu Windows i ABI, zamiast przenosić system Windows do działania w systemie Linux (co nie byłoby prawnie możliwe).
Jörg W Mittag

Odpowiedzi:

17

Z artykułu About WSL 2 of Microsoft Docs:

Krótki przegląd architektury WSL 2

WSL 2 wykorzystuje najnowszą i najlepszą technologię wirtualizacji do uruchamiania jądra Linux w lekkiej maszynie wirtualnej (VM). Jednak WSL 2 NIE będzie tradycyjnym doświadczeniem VM. Uruchamianie tradycyjnej maszyny wirtualnej może przebiegać wolno, jest izolowane, zużywa wiele zasobów i wymaga czasu. WSL 2 nie ma tych atrybutów. Nadal zapewni niezwykłe korzyści z WSL 1: Wysoki poziom integracji między systemem Windows i Linux, wyjątkowo szybki czas rozruchu, niewielkie zużycie zasobów, a co najważniejsze, nie będzie wymagał konfiguracji ani zarządzania maszynami wirtualnymi. Podczas gdy WSL 2 korzysta z maszyny wirtualnej, będzie ona zarządzana i uruchamiana za kulisami, pozostawiając ci takie same wrażenia dla użytkownika jak WSL 1.

Jak możemy zobaczyć w następujących artykułach (i dyskusjach poniżej) WLS 2 wykorzystuje funkcję Hyper-V:

pa4080
źródło
Z tego, co przeczytałem do tej pory: będzie izolowany, zużyje dodatkowe zasoby, będzie miał dedykowany dysk wirtualny.
LatinSuD,