Das Windows-Subsystem für Linux (WSL) ist Bestandteil von Windows 10 sowie Windows 11 und ermöglicht es, Linux-Befehle, Linux-Anwendungen sowie ganze Linux-Distributionen direkt unter Windows auszuführen, ohne sich mit Bootumgebungen oder virtuellen Maschinen herumschlagen zu müssen. Im folgenden Artikel stellen wir Ihnen das WSL unter Windows vor, beschreiben die Einrichtung und den praktischen Einsatz.
Das Windows Subsystem für Linux (WSL) ist eine Funktion von Windows ab Version 10, die es ermöglicht, Linux direkt unter Windows auszuführen. WSL steht in Windows auch in der Home Edition zur Verfügung.
WSL richtet sich nicht nur an Entwickler von Apps oder Webservices, sondern auch an Anwender, die Linux ergänzend einsetzen möchten, ohne sich mit den Problemen verschiedener Betriebssysteme, DualBoot, Datenspeicherung zwischen den Systemen auseinandersetzen zu müssen.
Im Vergleich zu einer virtuellen Maschine benötigt die WSL weniger Arbeitsspeicher und CPU-Leistung und ist zudem wesentlich einfacher einzurichten und zu verwalten.
Inhalt
1. Was ist das Windows-Subsystem für Linux?
Windows kennt verschiedene Subsysteme, beispielsweise das Win32-Subsystem, Win64-Subsystem, Kernel-Subsystem oder das Subsystem für die virtuelle DOS-Umgebung. Ein weiteres Subsystem, welches seit Windows 10 zur Verfügung steht und die Ausführung von Linux-Befehlen und -Programmen erlaubt, ist das Windows-Subsystem für Linux – kurz WSL.
Android unter Windows: Mit dem Windows Subsystem für Android (WSA) gibt es auch die Möglichkeit, Apps von Android als Anwendungen unter Windows auszuführen.
WSL fungiert als Schnittstelle zwischen Linux und Windows und ist in zwei verschiedenen Versionen verfügbar. Mit WSL können Sie verschiedene Linux-Distributionen aus dem Microsoft Store unter Windows ausführen (auch mehrere gleichzeitig), beliebte Kommandozeilen-Tools wie grep, sed, awk oder andere nutzen, Bash-Skripte direkt von Windows nach Linux übergeben, verschiedene Dienste wie MySQL, den Webserver Apache oder andere nutzen und sogar Linux-Programme nativ als Fenster auf dem Windows-Desktop ausführen.
1.1. WSL1 und WSL2 – Was sind die Unterschiede?
Die erste Version vom WSL nennt sich WSL1 und besitzt keinen eigenen Linux-Kernel. Vielmehr übersetzt das Subsystem die Linux-Kernelbefehle, ähnlich wie WINE Windows-Programme unter Linux emuliert, direkt in Windows-Systemaufrufe. Dies hat den Vorteil, dass solche Linux-Umgebungen weniger Arbeitsspeicher benötigen, lokale Ressourcen wie die Massenspeicher, Drucker oder USB-Geräte direkt ansprechen können.
WSL2 hingegen besitzt einen Kernel, den Windows im Hintergrund in einer virtuellen Maschine bereitstellt. Der Vorteil dieser Variante ist, dass Linux-Programme mit dieser Variante besser kompatibel sind.
Ein Nachteil von WSL2 gegenüber von WSL1 ist die Performance beim Zugriff auf das Windows-Dateisystem mit vielen Dateien. Außerdem ist der Zugriff auf Netzwerkanwendungen mit WSL zwischen den beiden Versionen nicht identisch. Während Netzwerkdienste unter WSL1 über die IP-Adresse des Windows-Host-Rechners und die Port-Nummer angesprochen werden können, verwendet WSL2 einen virtualisierten Ethernet-Adapter und erfordert zusätzliche Schritte, die Microsoft im Artikel Zugriff auf Netzwerkanwendungen mit WSL beispielhaft beschrieben hat.
Ein weiterer Nachteil von WSL2 ist der zeitliche Verzug. Im Hintergrund muss erst eine virtuelle Maschine gestartet werden, sodass Linux – je nach System – erst ca. 8 Sekunden später zur Verfügung steht.
Die folgende Tabelle gibt einen Vergleich der Features zwischen WSL1 und WSL2.
Funktion | WSL1 | WSL2 |
---|---|---|
Integration zwischen Windows und Linux |
✔
|
✔
|
Schnelle Startzeiten |
✔
|
✔
|
Geringer Ressourcenbedarf im Vergleich zu herkömmlichen virtuellen Computern |
✔
|
✔
|
Wird mit aktuellen Versionen von VMware und VirtualBox ausgeführt |
✔
|
✔
|
Verwaltete VM |
✘
|
✔
|
Vollständiger Linux-Kernel |
✘
|
✔
|
Vollständige Kompatibilität von Systemaufrufen |
✘
|
✔
|
Leistung über Betriebssystem-Dateisysteme hinweg |
✔
|
✘
|
WSL2 ist für Windows 10 (ab Version 1903) und Windows 11 verfügbar. Sie können jederzeit wählen, welche der beiden Versionen Sie jeweils nutzen. Standardmäßig verwendet Windows für Linux WSL2.
Microsoft rät WSL1 statt WSL2 zu verwenden, wenn:
- Projektdateien im Windows-Dateisystem gespeichert werden müssen, da WSL1 hier einen schnelleren Zugriff bietet.
- Projekte eine Kreuzkompilierung mithilfe von Windows- und Linux-Tools für dieselben Dateien erfordert.
- Projekte Zugriff auf den seriellen Anschluss oder USB-Geräte benötigen, auch wenn es mit dem USBIPD-WIN-Projekt eine Möglichkeit gibt, USB-Geräte auch unter WSL2 zu verwenden.
WSL und VirtualBox: Microsoft gibt den Hinweis, dass es zwischen WSL2 und VirtualBox zu Kompatibilitätsproblemen abhängig der Version von VirtualBox kommen kann.
1.2. Unterschiede zwischen WSL und Linux in einer virtuellen Maschine?
Viele Benutzer verwenden unter Windows Virtualisierer wie VirtualBox, VMWare oder Hyper-V, um Betriebssysteme in virtuellen Maschinen (VM) auszuführen. Die Vorteile der WSL gegenüber dieser Methode sind:
- Geringerer Ressourcenverbrauch
- Schnellere Startzeiten
- Keine VM-Konfiguration notwendig
- Weniger Zeit für die Verwaltung
- Nahtlose Integration zwischen Windows und Linux
Zwar verwendet WSL2 im Hintergrund eine virtuelle Maschine, es bedarf für den Anwender aber keiner Konfiguration oder keines gesonderten Starten eines Virtualisierers unter Windows. WSL2 unterscheidet sich damit vordergründig nicht von WSL1.
1.3. Virtuelle Maschine statt WSL für wenig versierte Anwender
Wenn Sie mit Linux-Befehlen nicht vertraut sind und gerne einen Linux-Desktop nutzen möchten, empfehlen wir statt WSL die Nutzung von Linux in einer virtuellen Maschine. Wie Sie Linux als Live-System in einer virtuellen Umgebung gefahrlos ausprobieren können, haben wir in dem Beitrag "Welches Linux? Eine Vorstellung der besten Linux-Distributionen für Heimanwender" beschrieben.
2. So installieren Sie das Windows-Subsystem für Linux
Der einfachste Weg zur Installation von WSL ist über die Kommandozeile. Tippen Sie den Befehl
wsl.xe --install
ein. Windows installiert dann selbstständig die VM-Plattform, das Windows-Subsystem für Linux und richtet auch eine Standard-Linux-Distribution ein.
Nach einem Neustart wird Ubuntu gestartet.
WSL lässt sich auch über die „Optionale Features“ -> Mehr Windows-Funktionen in Windows installieren. Dazu muss neben dem Windows-Subsystem für Linux und für WSL2 noch die VM-Plattform ausgewählt werden.
Danach müssen Sie aber noch von Hand eine Linux-Distribution einrichten, wie wir es unter Punkt 3.1 beschrieben haben.
Windows-Subsystem aus dem Microsoft Store
Seit Windows Version 19044 werden alle notwendigen Komponenten nur noch als WSL-Wartungsupdate im Microsoft Store gepflegt. Dies hatte Microsoft vor längerer Zeit schon in einem Blogbeitrag angekündigt. Der Befehl wsl --install lädt das Windows-Subsystem für Linux aus dem Microsoft Store selbstständig herunter.
Achtung: Wenn Sie nur das Paket installieren, fehlen auf dem Windows weitere Komponenten. Halten Sie sich daher an den von uns beschriebenen Weg.
3. Die Nutzung von WSL in der Praxis
3.1. Erste Befehle und Parameter über eine Shell
WSL lässt sich über die Kommandozeile (CMD oder PowerShell) aufrufen und besitzt eine Vielzahl von Parametern. Microsoft empfiehlt aber, für WSL Windows Terminal zu verwenden, welches bei Windows 11 Version 22H2 die standardmäßige Befehlszeile bereits ist. In Windows Terminal wird dann jede WSL-Instanz in einem eigenen, anpassbaren Tab ausgeführt.
Nach dem ersten Start müssen Sie bei einer Einrichtung ohne wsl.xe --install erst eine Linux-Distribution installieren, welche in der Kommandozeile ausgeführt wird.
Geben Sie dazu
Wsl.exe --list --online oder wsl -l –o
ein. Der Befehl listet alle Linux-Distributionen auf, welche online verfügbar sind.
Mit dem Befehl
wsl.exe --install <Distro>
können Sie die gewünschte Distribution installieren. Sie haben die Möglichkeit, auch mehrere Distributionen zu installieren.
wsl.exe --list
zeigt die installierten Linux-Distributionen an.
wsl.exe --set-default <Distribution Name>
legt die Standard-Distribution für Linux-Befehle in der Kommandozeile fest.
wsl.exe -d <Distribution Name>
startet die gewünschte Linux-Distribution.
wsl.exe --distribution <Distribution Name> --user <User Name>
Damit können Sie eine bestimmte Distribution mit einem bestimmten User, z.B. „root“ starten.
wsl.exe --shutdown
beendet die Ausführung von WSL.
WSL.exe --version
liefert Ihnen detaillierte Informationen zu der WSL-Komponente.
WSL.exe --status
zeigt Ihnen Infos zur WSL-Konfiguration, z. B. Standardverteilungstyp, Standardverteilung und Kernelversion an.
wsl.exe --set-default-version <Version>
Mit dem Befehl können sie festlegen, welche Version von WSL als Standard derzeit verwendet wird. Version wird hier mit 1 oder 2 ersetzt.
wsl.exe --help
zeigt eine Liste aller Optionen und Befehle an, welche mit WSL zur Verfügung stehen.
Für Bash, die standardmäßige Befehlszeilenschnittstelle (CLI) von Linux, gibt es eine Syntax, welche in vielen Bereichen mit dem von PowerShell identisch ist. Trotzdem gibt es Unterschiede, beispielsweise zum Anzeigen des Inhalts in einem Verzeichnis mit dir unter Windows und ls unter Linux. Mit WSL können Sie beide Befehle für den gleichen Zweck verwenden und somit noch leichter Skripte erstellen. Weitere Infos zur Nutzung von Bash mit Basis-Kommandos in finden Sie hier.
3.2. Installation von Linux-Distributionen
Gegenüber einer virtuellen Maschine können Sie aber nicht einfach ein ISO-Abbild einer der beliebten Linux-Distributionen in WSL als Installationsquelle einbinden. Der Grund liegt darin, dass die Distributionen für WSL speziell angepasst werden müssen. Microsoft hat hierfür eine WSL-Distrolauncher auf Github veröffentlicht und dokumentiert.
Sie können über den Microsoft Store dort vorhandene Distributionen wie beispielsweise Ubuntu, OpenSUSE oder Fedora herunterladen und automatisch installieren lassen. Für andere Distributionen benötigen Sie allerdings eine virtuelle Maschine unter Windows 10 oder Windows 11.
Nach der Installation steht die Linux-Distribution als Icon zur Verfügung und wird als Betriebssystem gestartet. Der Weg über den Befehl wsl.exe --install (siehe Punkt 3.1) geht natürlich auch.
Geben Sie dann
sudo apt update && sudo apt upgrade
ein, um alle Pakete zu aktualisieren.
Der Zugriff auf einen Linux-Desktop ist hier beispielhaft beschrieben und wird auch in dem folgenden Video erklärt:
3.3. Linux-Programme direkt auf dem Windows-Desktop ausführen
Mit WSL2 ist es möglich, Linux-Anwendungen wie jedes andere Windows-Programm direkt auf dem Windows-Desktop auszuführen und in das Windows-Startmenü aufzunehmen.
Um Linux-Anwendungen nativ unter Windows installieren zu können, müssen Sie zunächst die verfügbaren Linux-Pakete mit dem folgenden Paket aktualisieren:
sudo apt update
Mit dem Befehl
Sudo apt install paketname
wird das Programm „Paketname“ installiert.
Installierte Pakete sind dann im Startmenü und über die Befehlszeile mit „Paketname“ abrufbar und finden sich auch im Startmenü von Windows.
In dem folgenden Video finden Sie nochmals eine Einführung zur Einrichtung und Nutzung von WSL.
4. Problemlösungen und weitere Hilfen
Microsoft hat Lernprogramme zu den Themen
- Visual Studio Code mit Linux nutzen
- Erste Schritte mit Git
- Erste Schritte mit Datenbanken
- Erste Schritte mit Docker-Remotecontainern unter WSL 2
- Anleitung: Kompilieren und Debuggen von C++ mit WSL 2 in Visual Studio 2022
- Installieren von Node.js
- Erste Schritte mit Linux und Bash
- Datenträger einbinden
- USB-Geräte verbinden
- Arbeiten über Windows- und Linux-Dateisysteme hinweg
- Erweiterte Einstellungen in WSL anpassen
- Dateiberechtigungen vergeben
- Netzwerkbetrieb konfigurieren
und viele weitere Anwendungsgebiete sowie Fragestellungen ausführlich mit Beispielen in deutscher Sprache in der Dokumentation für das Windows-Subsystem für Linux zusammengefasst.
Darüber hinaus empfehlen wir dem interessierten Leser die Videoreihe WSL2 von David Bombal, welcher in 10 Videos die Einrichtung und praktische Nutzung von WSL beschreibt.
WSL ist nicht perfekt und verursacht in den verschiedensten Konstellationen und Anwendungen das eine oder andere Problem. Die Benutzer dokumentieren ihre Probleme auf Github, wo es über 7000 geschlossene und über 2000 offene Tickets gibt. Wenn Sie eine Lösung für ein Problem suchen, ist dies der richtige Ort.
Darüber hinaus hat Microsoft in einem deutschen Artikel häufige Fehler und Problembehandlungen des Windows-Subsystems für Linux in einem Artikel zusammengefasst.