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.

In Pocket speichern vorlesen Druckansicht 742 Kommentare lesen
Build 2019: Windows erhält einen echten Linux-Kernel
Lesezeit: 4 Min.
Von
  • Dr. Holger Schwichtenberg
Inhaltsverzeichnis

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.

Der Linux-Kernel in WSL 2 läuft auf einer speziellen virtuellen Maschine (VM), die Windows automatisch verwendet..

Architektur von WSL 2

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".

Eigenschaften der VM, die die Basis für WSL ist

Vergleich traditioneller VM mit der, die WSL verwendet

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.

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:

Liste der installierten Distributionen, zwei für WSL 2, die übrigen noch für WSL 1.

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.

Eine bisher nicht unter WSL 1 lauffähige Linux-Anwendung läuft unter Alpine, nachdem die Distribution in WSL 2 konvertiert wurde

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.

Start eines Docker-Containers in WSL 2

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:

WSL 2 bietet deutlich schnellere Dateisystemoperationen, hier am Beispiel npm install

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

Architektur für die Dateisystemoperationen in WSL 2

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)