FAQ: Fragen rund um das Windows Subsystem für Linux beantwortet

In Windows 10 hat Microsoft Funktionen eingebaut, die Linux-Binärdateien direkt ausführen können. Anfangs runzelten Entwickler noch die Stirn darüber.

In Pocket speichern vorlesen Druckansicht 216 Kommentare lesen

(Bild: heise online)

Lesezeit: 11 Min.
Von
  • Peter Siering
Inhaltsverzeichnis

Das Windows-Subsystem für Linux (WSL) ist eine Schnittstelle zwischen Windows und einer Linux-Distribution. Die vor allem bei Entwicklern und Admins beliebte Anwendung ermöglicht es, Linux-Programme unter Windows auszuführen. An sich ist die Installation spielend leicht, aber es gibt ein paar Unklarheiten: Warum gibt es zwei Versionen? Und was unterscheidet das Subsystem von einer herkömmlichen Linux-VM? Diese und weitere Fragen beantworten wir in dieser FAQ.

Wie funktioniert das Subsystem?

Die Grundidee bestand darin, Windows gerade so viel Linux beizubringen, dass es Linux-Binärdateien ausführen kann. Binärdateien enthalten in der Regel nicht jede Funktion selbst, sondern greifen auf meist umfangreiche Bibliotheken zurück, etwa solche für Datenbank- und Netzwerkzugriffe. Diesen Satz an Extras erschließt sich Windows, indem es WSL um den Grundstock gängiger Linux-Distributionen ergänzt, etwa von Ubuntu – Microsoft nennt diesen Teil der Distributionen in der deutschen Dokumentation "Verteilung". In einer solchen Umgebung lässt sich dann mit den Mitteln der Distribution weitere Software einrichten. WSL erlaubt den parallelen Betrieb mehrerer verschiedener Distributionen.

WSL bringt grafische Linux-Anwendungen gleichberechtigt als Fenster auf den Windows-Desktop – allerdings nur unter Windows 11. Wer derlei unter Windows 10 bewerkstelligen will, muss noch tricksen.

Es gibt zwei Versionen, welche soll ich nehmen?

Im ersten Aufguss von WSL, der heute als Version 1 gehandelt wird, hatten die Entwickler Windows mit einer Abstraktionsschicht versehen: Sie bildet Linux- auf Windows-Systemaufrufe ab. WSL1 führt also Linux-Binärdateien aus, ohne dafür einen Linux-Kernel zu benötigen. Für WSL2 hingegen stellt Microsoft einen speziellen Linux-Kernel in einer minimal ausgestatteten virtuellen Maschine (VM) bereit. Zurzeit kann ein Windows-PC Linux-Umgebungen sowohl unter WSL1 als auch WSL2 gleichzeitig betreiben.

Wenn in WSL Dienste laufen, die nicht nur vom Host-PC aus, sondern auch aus dem lokalen Netz erreichbar sein sollen, dann eignet sich WSL1 besser – der Zugriff gelingt ohne weitere Verrenkungen. WSL1 bietet sich außerdem dann an, wenn die Linux-Umgebung häufig auf viele Dateien im Windows-Dateisystem zugreifen soll – dabei geht es deutlich schneller zu Werke, weil es direkt das Windows-Dateisystem verwendet. GUI-Anwendungen bringt nur WSL2 auf den Windows-Desktop und das momentan nur, wenn es unter Windows 11 läuft.


Kann ich voraussetzen, dass WSL in Windows 10 und 11 identisch ist?

Leider nein: Aktuelle Entwicklungen in WSL, etwa die Fähigkeit GUI-Anwendungen auszuführen, funktionieren bis Redaktionsschluss nur unter Windows 11. Microsoft rüstet sie bisher nicht in Windows 10 nach. Im Detail unterscheiden sich auch die Befehlszeilenprogramme: So liefert wsl.exe -v nur unter Windows 11 detaillierte Informationen über die Versionsstände einzelner WSL-Komponenten. Allen Windows-10-Versionen fehlt diese Option, selbst wenn sie auf aktuellem Update-Stand sind. Daher kann es auch sein, dass Installationstipps, die sich im Internet finden, unter Ihrer Windows-Variante nicht funktionieren wollen.

Lesen Sie auch

(Bild: Albert Hulm)

Unter Windows 11 kann das Windows Subsystem für Linux (WSL) sogar grafische Linux-Anwendungen auf dem Desktop darstellen. Ein gründlicher Blick auf die Funktionsweise zeigt nicht nur, was das zuständige Subsystem in den verschiedenen Windows-Versionen leistet, sondern auch einige spannende Mechanismen, die in allen modernen Windows-Versionen stecken.


Brauche ich spezielle Lizenzen für den Einsatz von Distributionen?

Nein, WSL funktioniert mit gängigen, kostenlos nutzbaren Distributionen. Diese müssen aber speziell aufbereitet sein, um innerhalb von WSL zu funktionieren. Im Wesentlichen besteht die Aufbereitung darin, eine Windows-App und ein tar.gz-Archiv mit den Dateien der Linux-Distribution zu einem Paket zu verschnüren. Die Quelltexte und Anleitungen dafür hat Microsoft auf GitHub veröffentlicht. Viele gebräuchliche Linux-Distributionen stellt Microsoft für den WSL-Einsatz bereit, im Store finden sich einige weitere.


Windows hat keinen guten Ruf, was die Datensparsamkeit angeht. Wie steht es um die darunter ausgeführten Linux-Anwendungen?

Präzise Informationen gibt es nicht. Microsoft macht aber keinen Hehl daraus, Telemetriedaten zu sammeln, um das Subsystem zu optimieren, also häufige Nutzungsszenarien gut abzudecken. Wenn Ihnen das nicht behagt, fahren Sie mit dem Betrieb einer reinen Linux-Distribution besser.


Kann ich Linux-Programme mit grafischer Bedienoberfläche in WSL ausführen?

Das ging schon von Anfang an, indem Sie auf Windows-Seite einen X-Server installierten und in WSL grafische Anwendungen als Clients dagegen arbeiten ließen – allerdings erforderte es einiges Gebastel und klappte nicht in jedem Fall perfekt. In WSL2, jedoch momentan nur unter Windows 11, ist Bastelei überflüssig: Es lassen sich Programme wie der Webbrowser Firefox starten und zeigen ihr Fenster einträglich neben anderen Windows-Fenstern. Die Programme nimmt Windows 11 sogar in sein Startmenü auf – was allerdings nach einiger Zeit immer mal wieder unterbleibt.


Warum sollte ich nicht gleich eine virtuelle Maschine (VM) nehmen und Linux darin ausführen?

Der Aufwand für den Betrieb und die Aktualisierung einer VM ist meist deutlich größer. Außerdem müssen Sie sich um die Netzwerkanbindung und den Datenaustausch selbst kümmern. Vieles nimmt Ihnen WSL ab. Und, an die Durchlässigkeit, die WSL zwischen Windows und Linux erreicht, kommt eine VM nicht heran: Mit WSL können PowerShell-Skripte Daten durch die Linux-Shell Bash weiterverarbeiten und umgekehrt. Die Windows-Version von Visual Studio lässt sich zudem aus einer Linux-Terminalsitzung aufrufen. Auch Docker Desktop greift auf WSL2 zurück.


Wie kann ich in WSL ausgeführte Dienste, etwa eine selbstgeschriebene Web-Anwendung, per Netzwerk erreichen?

Vom Windows-PC aus, auf dem WSL läuft, gelingt das ohne Verrenkungen meist ganz einfach im Browser. Welche Adresse Sie allerdings ansteuern müssen, variiert je nach Version: WSL1 macht Dienste wie Web-Anwendungen, die einen Port freigeben, unter der IP-Adresse des PCs erreichbar und öffnet die Firewall auf Nachfrage. Sie sind damit auch von anderen Systemen im gleichen Netz wie der Windows-PC erreichbar. WSL2 hingegen packt die Umgebungen in ein privates Netz, das man nur mit einigem Aufwand von außen zugänglich machen kann. Über die Eingabe von http://localhost:<Port> auf dem Browser des Windows-PCs mit passender Angabe des Ports sollten Dienste aber stets erreichbar sein (bei WSL1 und 2).


In welchen Windows-Varianten ist WSL enthalten?

WSL1 und 2 stecken in allen aktuellen Client-Editionen von Windows, also nicht nur in Pro, Enterprise & Co., sondern auch in Home. Jüngst hat Microsoft auch WSL2 für den Windows Server 2022 verfügbar gemacht und dokumentiert auch eine manuelle Installation auf Server 2019.


Kann ich Windows mit WSL auch in einer virtuellen Maschine benutzen?

Da WSL2 eine Teilmenge der in Windows integrierten Funktionen zur Virtualisierung verwendet, gelingt das nur unter bestimmten Umständen: Der PC, auf dem Sie das tun wollen, muss verschachtelte (nested) Virtualisierung beherrschen. Das heißt, dass der Prozessor passende Funktionen haben muss und die zur Virtualisierung verwendete Software ebenfalls; oftmals ist es mühsam, die dafür nötigen Funktionen zu aktivieren.


Läuft WSL auch auf Windows-Systemen mit ARM-CPU?

Grundsätzlich stellt auch die ARM-Version von Windows 11 das Subsystem für Linux bereit. Unserem Eindruck nach verhält es sich dort subtil anders, so griffen die Mechanismen zur Installation per Befehl auf der Kommandozeile nicht so weit wie auf x86-Hardware; wir mussten die Features "WSL" und "VM-Plattform" von Hand aktivieren. Dann gelang auch die Installation von Distributions-Umgebungen. Auf ARM stehen weniger davon zur Auswahl, weder Kali noch Suse tauchen auf – unter x86 sind die zu haben.


Ich habe in Erinnerung, dass sich WSL nicht mit Eurer Backup-Lösung c’t-WIMage verträgt, ist das noch immer so?

Ja, es gibt immer noch die Einschränkung, dass c’t-WIMage nur dann erfolgreich Backups erstellen kann, wenn lediglich WSL2-Umgebungen aktiv sind. Sobald eine WSL1-Linux-Umgebung aktiv ist, bricht das Skript den Backup-Vorgang sicherheitshalber ab.


Jüngst hat Microsoft die Version 1.0 des Windows Subsystem für Linux veröffentlicht. Was bringt die?

Führte zwischenzeitlich die Kommandozeile mit dem wsl-Befehl am schnellsten zu einer aktuellen WSL-Installation, ist es nun wieder der Store – Anmelden ist nicht nötig.

Der Sprung auf Version 1 brachte keine bahnbrechenden Neuerungen, sondern wie viele Versionen zuvor einige Detailreparaturen. Allerdings hat sich damit mal wieder gedreht, was man zur Installation der neuesten Version empfehlen muss: Galt bisher die Kommandozeile, speziell wsl --install oder wsl --update als schnellster Weg, zur aktuellen Version zu kommen, ist es nun wieder der Microsoft Store.

Nur durch einen Besuch im Store und suchen nach "Windows Subsystem for Linux" erhielten unsere Testsysteme unter Windows 11 die aktuelle Fassung. Das deckt sich auch mit der Ankündigung Microsofts zu Version 1. Was sich bis Redaktionsschluss noch nicht materialisiert hatte, war ein erneuertes WSL für Windows 10, das auch grafische Anwendungen ausführt – angekündigt hat Microsoft es.


Meine WSL-Umgebung funktioniert nicht mehr. Wie kann ich sie reparieren?

Tendenziell scheinen diese Umgebungen zu "verschleißen". Da meist nicht allzu viel Hege und Pflege darin steckt, bietet sich ein Neuanfang statt einer Reparatur an. Werfen Sie die Umgebung weg und richten Sie diese neu ein. Sollte viel Arbeit darin stecken, können Sie vorher die Inhalte mit wsl --export ubuntu ./ubuntu.tar in ein tar-Archiv sichern, um gegebenenfalls später hineinschauen oder darauf zurückgreifen zu können.

Wenn ein Neuanfang nicht infrage kommt und ein Backup fehlt, könnten Sie Hilfen in den Tickets zu WSL auf GitHub finden. Rund 1500 Tickets waren bei Redaktionsschluss offen, 6500 bereits geschlossen. Die Nutzer schildern dort oft nicht nur die Probleme, sondern zeigen auch Workarounds – etwa bei der Auflösung von Namen, die manchmal erst dann zuverlässig arbeiten, wenn man in die Konfigurationsdatei /etc/resolv.conf externe DNS-Server wie die von Google oder Cloud Nine einträgt oder die Windows-Firewall bearbeitet.


WSL wäre dann doch auch perfekt, um Docker zu installieren?

Ja, aber nicht direkt. Installieren Sie lieber Docker Desktop unter Windows. Es verwendet automatisch die in WSL2 bereitgestellten Möglichkeiten und verzichtet von sich aus auf den Betrieb einer separaten VM.


Ich habe gelesen, dass WSL jetzt auch systemd unterstützt. Kann ich damit automatisiert Linux-Server-Dienste unter Windows betreiben?

Nein, dafür ist WSL nach wie vor nicht gedacht. Microsoft hat systemd implementiert, um die Kompatibilität der Linux-Umgebungen zu verbessern. Dadurch funktioniert jetzt auch Snap in der Ubuntu-Umgebung und das Einrichten von Kubernetes wird möglich. Die WSL-Linux-Umgebungen bleiben eine eher interaktiv nutzbare Einrichtung, die mit einer interaktiven Benutzersitzung verknüpft sind.


Ausgeführte Linux-Programme bleiben stumm. Sollte WSL nicht auch die Tonausgabe hinkriegen?

Theoretisch sollte das klappen, praktisch gelingt es wohl nur wenigen Nutzern bisher. Es gibt zahlreiche Bug-Reports zu dem Thema. Ein Lösungsansatz soll sein, sowohl in der WSL-Umgebung als auch in Windows PulseAudio einzurichten und Soundausgaben dann über eine Netzwerkverbindung zu schieben. Wir haben das bisher aber nicht ausprobiert.

c’t – Europas größtes IT- und Tech-Magazin

Alle 14 Tage präsentiert Ihnen Deutschlands größte IT-Redaktion aktuelle Tipps, kritische Berichte, aufwendige Tests und tiefgehende Reportagen zu IT-Sicherheit & Datenschutz, Hardware, Software- und App-Entwicklungen, Smart Home und vielem mehr. Unabhängiger Journalismus ist bei c't das A und O.

(ps)