Build 2019: Windows erhält einen echten Linux-Kernel
Die zweite Version des Windows Subsystem for Linux wird einen echten Linux-Kernel auf Basis einer "leichtgewichtigen" VM enthalten.
- Dr. Holger Schwichtenberg
Anstelle einer API-Übersetzung wird Microsoft in der zweiten Version seines Windows Subsystem for Linux (WSL 2) einen echten Linux-Kernel auf Basis einer "leichtgewichtigen" VM integrieren, was die Nutzung von Linux-Treibern und den direkten Betrieb von Linux-Docker-Containern in Windows ermöglicht.
Das Windows Subsystem for Linux (WSL) gibt es in Windows 10 seit Anniversary Update (Build1607) und im Windows Server seit Version 1709. Der bisherige Ansatz, die Linux-Systemaufrufe in die Windows API in einen "Translation Layer" zu übersetzen, sorgte aber für Einschränkungen im Bereich der Kompatibilität und eine schlechte Verarbeitungsgeschwindigkeit bei Dateisystemoperationen. Da die Translation Layer von Microsoft geschrieben wurde, hinkten sie der Entwicklung des Linux-Kernels hinterher.
In WSL 2 wird Microsoft nun einen echten Linux-Kernel ausliefern. Derzeit verwendet Microsoft dabei den Linux-Kernel 4.19 mit Long-Term Support (LTS). Die Kernel-Version wird Microsoft zukünftig zusammen mit den Windows-Updates aktualisieren.
Leichtgewichtige VM für WSL 2
Der Linux-Kernel in WSL 2 läuft auf einer speziellen virtuellen Maschine (VM), die Windows automatisch verwendet..
Craig Loewen (Program Manager für WSL) und Ben Hillis (WSL-Entwickler) gingen in ihrem Build-Vortrag nicht ins Detail, wie diese VM implementiert ist, sondern benannten nur die Eigenschaften der "Lightweight utility VM".
Trotz VM soll die Leistung von WSL 2 schneller als bei dem bisherigen Ansatz ohne VM sein. Microsoft hat dazu den Linux-Kernel angepasst. Diesen modifizierten Kernel will der Softwarekonzern als Open Source mit GPL bereitstellen.
Linux-Distributionen aus dem Microsoft Store
Auf Basis des Kernels können Windows-Benutzer dann aus dem Windows Store Linux-Distributionen installieren. Loewen und Hillis zeigten auf einer Präsentationsfolie die Logos der bisher im Windows Store verfügbaren Distributionen Ubuntu, openSUSE, Debian und Kali sowie zusätzlich Alpine. In einer Demonstration listeten sie mit dem Kommandozeilenbefehl wsl -l auch noch Fedora und Pengwin auf:
Weitere Distributionen können Entwickler mit dem WSL-Distro Launcher in den Microsoft Store bringen.
Loewen und Hillis demonstrierten, dass Windows zukünftig sowohl für WSL 1 auf der alten Architektur als auch für die WSL-2-Architektur erstellte Distributionen ausführen kann. Ein Nutzer kann eine Distribution auf einfache Weise mit dem Befehl wsl --set-version alpine 2 nameDerDistribution konvertieren.
Docker-Container ohne virtuelle Maschine
Der Vorteil der WSL-2-Architektur gegenüber dem bisherigen WSL ist, dass nun volle Linux-Systemaufrufkompatibilität inklusive der Unterstützung für cgroups existiert. Linux-basierte Docker-Container können direkt in WSL 2 zur Ausführung kommen. Für bisher in Windows ausgeführte Linux-Container muss im Hintergrund eine virtuelle Maschine laufen.
Die beiden Microsoft-Angestellten bewarben in ihrem Vortrag eine deutlich bessere Performance von Dateisystemoperationen. So soll ein git clone 2,5-mal, ein cmake 3,1-mal und ein npm install 4,7-mal schneller sein. Die Sprecher belegten das an einem direkten Vergleich von WSL 1 und WSL 2 in zwei nebeneinanderliegenden Windows-Fenstern:
Bereits in Windows 10, Version 1903, können Benutzer Dateien von Linux-WSL-Installationen auch von Windows-Programmen aus lesen und bearbeiten. Diese Funktion basiert in WSL 1 auf dem Protokoll 9P, das auch in WSL 2 zum Einsatz kommt
WSL 2 soll auch alle übrigen Integrationsfunktionen von WSL 1 (z. B. Umgebungsvariablen mit $WSLENV, Hintergrundprozesse) anbieten. "Alles, was Sie mit WSL 1 tun konnten, werden Sie auch mit WSL 2 tun können", sagte Hills.
WSL 2 soll ab Mitte Juni 2019 in einer Vorschauversion im Windows-Insider-Programm im FastRing verfügbar werden. (ane)