WSL 2 in Windows 11: Von der Hassliebe zur fast perfekten Windows-Linux-Symbiose
Mit dem vor zwei Wochen erschienenen Windows 11 hat der Hersteller Microsoft ohne besonders große Ankündigung auch den GUI- und GPU-Support für das Windows Subsystem für Linux (WSL) erstmals in einer stabilen Windows-Version veröffentlicht. Bisher war dies nur über eine Insider-Preview möglich. Hinzu kommt außerdem die Möglichkeit, endlich auch bereits vorhandene Linux-Dateisysteme unter Windows schnell und einfach einzuhängen und zu verwenden.
Das WSL bietet damit alles, was wir uns von dem System wünschen und zumindest auf dem Papier einen ähnlichen Funktionsumfang wie die Linux-Umgebung in ChromeOS. Grund genug für den Linux-Redakteur, zwischenzeitlich auf Windows zu wechseln.
Schon seit unserem ersten Test des damals noch völlig anders aufgebauten WSL vor etwa fünfeinhalb Jahren hat uns das WSL in seiner Funktionalität immer wieder positiv überrascht und beeindruckt. Bisher war es aber eben allein auf die Kommandozeile beschränkt und damit trotz aller Windows-Integration selbst klassischen virtuellen Maschinen in bestimmten Aspekten unterlegen.
Installation mit kleinen Hindernissen
Die Installation des WSL unter Windows ist von Microsoft in den vergangenen Jahren mehrfach überarbeitet und dabei immer weiter vereinfacht worden. Inzwischen reicht der Befehl wsl --install in der Kommandozeile mit Admin-Rechten aus, um die Umgebung zu installieren. Weiterhin möglich ist auch das Aktivieren über die zusätzlichen Windows-Funktionen in den Systemeinstellungen.
Wir haben uns für unseren Test für die erst wenige Tage alte Vorschau des WSL entschieden, die nun im Microsoft-Store vertrieben wird , als Alternative zu der festen Integration als Systembestandteil von Windows wie bisher. Nach wenigen Klicks läuft das WSL so dann auch schnell auf unserem Rechner.
Doch schon hier stolpern wir in eine kleinere Falle und entdecken die für Windows typischen, kryptischen Fehlermeldungen mit ihren Hex-Werten. Auf der von uns genutzten Testmaschine war die zur Nutzung des WSL 2 notwendige Hardware-Virtualisierung zunächst schlicht nicht in der Firmware aktiviert. Bei der Installation selbst ist dies offenbar nicht geprüft worden, sondern erst beim ersten Ausführen.
Linux-GUIs unter Windows
Die Installation des von uns gewählten Ubuntu 20.04 in dem WSL 2 geht jedoch gewohnt zügig und nach nur wenigen Minuten finden wir uns auf der Kommandozeile des Linux-Systems unter Windows 11. Um den eingangs erwähnten GUI-Support zu testen, installieren wir uns hier als erstes den Firefox-Browser. Nach Eingabe des Befehls und einer zwar kurzen, aber spürbaren Pause, startet wie gewünscht der Browser und zeigt uns Ubuntu als ausführendes System. Der Firefox erscheint auch mit dem Pinguin Tux als Icon in der Taskleiste.
Bereits bei unserem ersten Test von Ubuntu unter Windows vor mehr als fünf Jahren haben wir über einen X-Server grafische Anwendungen nutzen können. Diesen fehlte aber nicht nur eine 3D-Grafikbeschleunigung, auch war der Einsatz einer GUI nicht offiziell unterstützt. Mit dem WSL 2 in Windows 11 ist das aber nun beides der Fall. Damit das überhaupt funktioniert, hat sich Microsoft einiges einfallen lassen und damit trotzdem noch nicht alle Probleme gelöst.
Anzeige
Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise productivity of your Windows 10 development machine with custom workflows and configurations
Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.
Neue Funktionen dank WSL 2 mit Linux-VM
Als Microsoft vor etwa fünf Jahren erstmals das Windows Subsystem für Linux vorstellte, haben wir die Idee, dafür auf eine Virtualisierung zu verzichten, als ebenso genial wie fast schon wahnsinnig bezeichnet. Dass dies tatsächlich nicht die beste Entscheidung war, hat auch der Hersteller bald erkannt und wechselte mit dem WSL 2 auf eine echte Virtualisierung mit einem von Microsoft selbst gepflegten Linux-Kernel , den sich die verschiedenen verfügbaren Distributionen des WSL teilen.
Das hat einerseits den klaren Vorteil, dass damit die Userspace-API des Linux-Kernel genutzt wird, was wiederum zu einem vollständigen Linux-App-Support führt. Andererseits kann Microsoft selbst so auf die bereits vorhandene Linux-Infrastruktur zurückgreifen, um einige wichtige Neuerungen umzusetzen, wie den GUI-Support.
WSL mit genialen Ideen und manchen Verrenkungen
Im konkreten Fall von WSLg(öffnet im neuen Fenster) , so der offizielle Name des Open-Source-Projekts zur GUI-Unterstützung, setzt Microsoft auf einen eigenen Container. In diesem läuft die hauseigene Linux-Distribution CBL-Mariner , die Microsoft für das WSLg um einige notwendige Software erweitert hat. Dieser sogenannte System-Container läuft damit unabhängig von der eigentlich ausgewählten WSL-Distribution und Microsoft ist in der Lage, die Software dafür selbst zu pflegen.
In dem System-Container laufen ein eigener kleiner Daemon, sowie ein Pulse-Audio-Server für die Audioübertragung und eine speziell angepasste Variante des Wayland-Compositors Weston. Für die Abwärtskompatibilität zu X11 sorgt wie üblich XWayland. Die Kommunikation zwischen der WSL-Distribution und dem System-Container läuft über übliche Unix-Sockets, die Übertragung von Grafik- und Audiodaten an Windows über RDP.
Für die Darstellung in Windows 11 sorgt letztlich ein RDP-Client mit speziellem Support für das WSL. Sowohl Grafik als auch Sound laufen bei uns flüssig, und selbst Youtube-Videos können wir so mit dem WSL ruckelfrei anschauen.
GPU-Beschleunigung mit Einschränkungen
In den meisten unserer Tests funktioniert der GUI-Support weitgehend reibungslos. Microsoft selbst bewirbt in Beispielvideos hier sogar die Nutzung von Visual Studio Code oder anderen ähnlich komplexen Anwendungen. Über eine weitere Eigenentwicklung ist darüber hinaus sogar eine Hardware-Beschleunigung im WSL nutzbar.
Notwendig ist dazu die Paravirtualisierung der GPU unter Hyper-V, was durch Grafikkarte und Treiber unterstützt werden muss. Mit einem eigens erstellten Linux-Kernel-Treiber reicht Microsoft so das DirectX-12-API von Windows einfach an Linux weiter. Noch ist der Treiber jedoch nicht im Hauptzweig des Linux-Kernel zu finden. Außerdem nutzt der Hersteller dann einen Mesa-Treiber, der OpenGL auf DirectX 12 umsetzt(öffnet im neuen Fenster) . Letzteren nutzt Microsoft auch produktiv in Windows, um OpenGL und OpenCL auf Systemen bereitzustellen, deren GPU-Treiber selbst nur DirectX 12 unterstützen.
Anzeige
Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise productivity of your Windows 10 development machine with custom workflows and configurations
Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.
Im Praxistest zeigt sich jedoch, dass die Hardware-Beschleunigung unter Umständen noch einige Fehler aufweist, was auch einfach am eingesetzten Grafiktreiber liegen kann. Mit einer von uns genutzten AMD Radeon RX 6800 zeigen uns etwa die Mesa-Werkzeuge oder auch der Firefox zwar die OpenGL-Unterstützung an. Bei fordernden Anwendungen wie etwa Blender bekommen wir aber nur einen Absturzbericht, der auf den AMD-Treiber verweist.
Zusätzlich zur klassischen 3D-Beschleunigung unterstützt Microsoft mit DirectML in WSL(öffnet im neuen Fenster) die Arbeiten für Machine Learning. Selbst Nvidias Cuda wird unterstützt(öffnet im neuen Fenster) . Aber auch hier können unter Umständen noch Probleme, wie eben Abstürze, auftreten.
Native Linux-Dateisysteme und wenig Einsichten unter Windows
Als weitere wichtige Neuerung des WSL kann nun auch endlich der Mount-Befehl in einer stabilen Windows-Version(öffnet im neuen Fenster) genutzt werden. Konkret bedeutet das, dass externe Datenträger mit Linux-Dateisystemen, etwa aus einem Dual-Boot mit Linux und Windows, nun auch in Windows leicht verwendet werden können.
Im Fall unseres Tests sorgt hier aber der Windows-Bootloader für Probleme. Dieser installiert sich auf unsere Linux-SSD, sodass der Hyper-V-Hypervisor diese zur weiteren Nutzung sperrt. Der Mount-Befehl schlägt fehl. Mit anderen Festplatten klappt das Einhängen in unserem Fall dann aber doch noch wie gewünscht.
In unserem Ubuntu selbst müssen wir die dort als Blockgerät verfügbare SSD aber ebenfalls noch einem Einhängepfad zuweisen. Dann können wir aber endlich mit Windows-Boardmitteln auf externe Linux-Laufwerke zugreifen und etwa schnell Dateien zwischen den System hin- und herkopieren.
Linux-Kernel modifizierbar
Unterstützt werden dafür aber nur jene Dateisysteme, die der von Microsoft gepflegte Linux-Kernel unterstützt. Die Nutzung etwa des in Ubuntu verfügbaren ZFS geht nicht ohne Weiteres. Es ist allerdings möglich, die Linux-Quellen aus dem Repository von Microsoft selbst zu bauen und ebenso den ZFS-Treiber, beispielsweise per DKMS. Dieser neu gebaute Kernel lässt sich dann auch in der .wslconfig-Datei(öffnet im neuen Fenster) als eigener Kernel hinterlegen und nutzen.
Dieser Schritt zeigt, dass das WSL-System auch den eigenen Bedürfnissen angepasst werden kann , falls der standardmäßig genutzte Linux-Kernel eventuell benötigte Schnittstellen oder eben Treiber nicht bietet. Über die .wslconfig-Datei hinaus lassen sich zudem einige weitere Eigenschaften der VM-Umgebung, wie die Anzahl der Prozessor-Kerne oder auch ein Portforwading, einrichten. Letzteres funktioniert bei uns problemlos und wir können standardmäßig Server-Anwendungen in Linux aus dem Windows heraus testen und nutzen.
Linux-Umgebung mit Einschränkungen
Der Linux-Kernel selbst sowie einige Eigenschaften und spezielle Komponenten oder Sonder-Dateisysteme lassen sich unter Umständen nur bedingt aus der WSL-Distribution heraus untersuchen. Der Grund dafür ist offensichtlich: Die Distribution selbst, in unserem Fall Ubuntu, wird als Container ausgeführt, was im Einzelfall für Probleme sorgen könnte.
Aus dem Einsatz der Container-Umgebung auf dem virtualisierten Linux-Kernel ergibt sich auch, dass einige in dem Ubuntu standardmäßig verwendeten Werkzeuge in WSL nicht genutzt werden. Allen voran gilt das für Systemd. Ebenso könnten einige weitere Linux-Anwendungen durch das Ausführen in dem Container an Grenzen stoßen; vermeiden lässt sich so etwas nur durch ein natives Linux-System oder eine klassische Vollvirtualisierung.
Anzeige
Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise productivity of your Windows 10 development machine with custom workflows and configurations
Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.
Windows-Unterbau schwer einsehbar
Wer die Container des WSL und den zugrundeliegenden Aufbau näher untersuchen möchte, kommt ebenfalls sehr schnell an Grenzen. In den üblichen Verwaltungswerkzeugen von Hyper-V, wie dem Hyper-V-Manager, taucht die WSL-Umgebung bei uns nicht auf. Diese wird lediglich per hcsdiag.exe angezeigt, was für die Container-Verwaltung gedacht ist.
Sonderlich relevant sind all diese Information aus reiner Nutzersicht zwar nicht, sie ermöglichen aber einen Vergleich zur Linux-Umgebung in ChromeOS . Hersteller Google nutzt eine ähnliche Umsetzung; so kommt dort ebenfalls ein Hypervisor zum Einsatz, der standardmäßig eine einzige VM hostet, die wiederum einen oder mehrere Container mit der eigentlichen Linux-Distribution wie Debian oder Ubuntu ausführt.
Verfügbarkeit und Fazit
Das WSL steht in der klassischen Variante als Emulations-Layer sowie WSL 2 in einer VM standardmäßig in Windows 11 bereit und lässt sich über die Windows-Funktionen aktivieren, sowie über die Kommandozeile oder als Vorschau auch direkt aus dem Microsoft-Store beziehen. Ob Microsoft die GUI- und GPU-Funktionen noch stabil für Windows 10 bereitstellt, ist derzeit nicht bekannt.
Fazit
Die Entwicklung und Nutzung moderner und weiter stark wachsender Technologien vor allem im Web und beim Cloud Computing findet zu sehr großen Teilen auf klassischen Linux-Systemen statt. Microsoft kann hier trotz großer Anstrengungen wie etwa dem neuen und freien .Net Core oder gar dem Port von Docker- und Container-Technologien kaum mithalten.
Das WSL ist zumindest der Versuch, die Zielgruppe dieser Technologie auf der eigenen Plattform zu halten und so vielleicht auch an eigene Dienste zu binden. Darüber hinaus ist das WSL ein wichtiger Schritt von Microsoft in Richtung seiner großen Enterprise-Kunden, die oft das ganze Unternehmen mit Windows-Rechnern ausstatten. Hier können nun auch die Linux- und Cloud-Entwickler bedient werden. Ebenso dürfte die schnelle Zusammenarbeit in gemischten Entwicklungsteams dank WSL deutlich leichter fallen. Und Microsoft macht diese Interoperabilität immer einfacher.
Zu bedenken ist hierbei, dass vor allem der GUI-Support nicht für klassische Linux-Apps gedacht ist, wie Gimp, das auch nativ unter Windows bereitsteht. Vielmehr soll dies schnelle Linux-Tests auch auf Windows-Maschinen ermöglichen – eben das, was bisher ein Dual-Boot-System oder eine VM übernommen haben. Außerdem bedient der GPU-Support des WSL 2 mit der Machine-Learning-Community eine Zielgruppe, die bisher nur wenig unter Windows vertreten ist.
Bei unserem ersten Test haben wir das damals emulierte WSL noch als Hassliebe bezeichnet. Mit dem inzwischen virtualisierten WSL 2 und vor allem der Grafik-Umsetzung bietet die Technologie das, was mit einer klassischen VM auch möglich wäre, allerdings mit deutlich mehr Komfort und einer weitgehenden Plattformintegration in Windows. Auch wenn immer noch Fehler und Abstürze den Gesamteindruck trüben.
Dank der Unterstützung des Mount-Befehls können wir endlich direkt Dateien von unseren Linux-Testsystemen mit Windows-Systemen teilen, ohne einen Umweg über externe Laufwerke wie langsame USB-Sticks oder über das Netzwerk gehen zu müssen.
Anzeige
Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise productivity of your Windows 10 development machine with custom workflows and configurations
Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.
Interessant finden wir insbesondere, dass Microsoft mit dem WSL 2 letztlich ein auch technisch ähnliches Konzept umsetzt wie Google mit der Linux-Umgebung Crostini auf ChromeOS. Dass dies auf einem Linux-Host wie ChromeOS funktioniert, ist eigentlich zu erwarten. Wie gut die Idee letztlich auf dem Windows-Host umgesetzt ist, überrascht uns weiter positiv und überzeugt – besonders der GUI-Support dank Wayland und RDP. Uns fällt damit kaum noch etwas ein, was dem WSL grundsätzlich an Funktionalität fehlt.
Es wird spannend sein zu beobachten, wie die Zukunft der WSL-Technik aussehen wird. Denn wir gehen davon aus, dass Microsoft diese Grundlage auch für den bereits angekündigten Support von Android-Apps auf Windows 11 nutzt. Immerhin handelt es sich dabei auch um ein Linux-System.
Google hat hier schon vorgelegt und gezeigt, dass Android-Apps nahtlos in einem Container laufen können. Jetzt muss Microsoft, wie beim WSL 2, wieder nachlegen.
- Anzeige Hier geht es zum Handbuch Windows Subsystem for Linux 2 (WSL 2) bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.