Läuft WSL2 unter Linux in einer virtuellen Maschine oder neben dem Windows-Kernel?

16

Ich wollte schon immer ein Linux-Terminal in Windows und wurde von WSL 1 erfüllt. Aber es war schmerzhaft langsam, da es sich um eine von Hyper-V verwaltete virtuelle Maschine handelte. Mit WSL 2 ist es relativ viel schneller, aber ich kann nicht verstehen, wie Microsoft es so gemacht hat.

Haben sie Hyper-V verbessert oder haben sie aufgehört, eine virtuelle Maschine zu verwenden und etwas Magisches geschaffen, um den Linux-Kernel parallel auszuführen?

Sachin.Verma
quelle
3
Es ist immer noch virtuell, aber WSL2 verwendet einen Linux-Kernel (4.9), anstatt die Aufrufe der Windows-APIs zu ändern und auf diese Weise zu behandeln.
Guiverc
9
@Sachin WSL 1 führt ELF-Binärdateien unter Windows aus, indem es Linux-Systemaufrufe in Windows-Systemaufrufe
umsetzt. Damit entspricht
6
WSL 1 war nicht virtuell @guiverc
Adrian
3
@ Sachin.Verma: Was meinst du mit "Scherz"? WSL 1 war eine Implementierung der Linux-Kernel-API und von ABI, genau wie der Linux-Kernel eine Implementierung der Linux-Kernel-API und von ABI ist. In der Tat funktionieren die meisten Linux-Kompatibilitätsebenen, z. B. unter FreeBSD, HP-UX, AIX, Solaris usw., auch meistens eigenständige Neuimplementierungen von Linux-Kernel-ABI und -API anstelle von Ports des Linux-Kernels. Es funktioniert auch umgekehrt: Alle Kompatibilitätsebenen für kommerzielle Unices unter Linux waren unabhängige Neuimplementierungen ihrer APIs und ABIs.
Jörg W Mittag
4
Genauso funktioniert auch WinE. Es implementiert die Windows-API und ABI, anstatt Windows für die Ausführung unter Linux zu portieren (was rechtlich nicht möglich wäre).
Jörg W Mittag

Antworten:

17

Aus dem Artikel Über WSL 2 von Microsoft Docs:

Kurzer Überblick über die WSL 2-Architektur

WSL 2 verwendet die neueste und beste Virtualisierungstechnologie, um den Linux-Kernel in einer virtuellen Maschine (VM) mit geringem Funktionsumfang auszuführen. WSL 2 wird jedoch KEINE traditionelle VM-Erfahrung sein. Ein traditionelles VM-Erlebnis kann sich nur langsam starten lassen, ist isoliert, beansprucht viele Ressourcen und erfordert Zeit für die Verwaltung. WSL 2 verfügt nicht über diese Attribute. Es bietet weiterhin die bemerkenswerten Vorteile von WSL 1: Hohe Integrationsgrade zwischen Windows und Linux, extrem schnelle Startzeiten, geringer Ressourcenverbrauch und das Beste: Es ist keine VM-Konfiguration oder -Verwaltung erforderlich. Während WSL 2 eine VM verwendet, wird diese verwaltet und im Hintergrund ausgeführt, sodass Sie dieselbe Benutzererfahrung wie WSL 1 haben.

Wie wir in den folgenden Artikeln (und den Diskussionen darunter) sehen können, verwendet WLS 2 die Hyper-V-Funktion:

pa4080
quelle
Aus dem, was ich bisher gelesen habe: Es wird isoliert sein, es wird zusätzliche Ressourcen verbrauchen, es wird eine dedizierte virtuelle Festplatte haben.
LatinSuD