Sie sind auf Seite 1von 4

Praxis  |  Windows Subsystem für Linux

Bild: Albert Hulm


Windux
fen tief in die Trickkiste der Betriebs­
systemtechnik.

Geschichte
Vorn angefangen: Für die erste reguläre
Entdeckungsreise durchs mit Windows 10 veröffentlichte Fassung

Windows Subsystem für Linux des WSL, die heute Version 1 heißt, hatten
die Entwickler versucht, die Linux-Sys-
temaufrufe auf Windows-Funktionen ab-
zubilden. Beim Ausführen von Linux-Pro-
grammen, sogenannten ELF-Binaries,
merkten die nicht, dass statt eines Linux-
Unter Windows 11 kann das Win-
dows Subsystem für Linux (WSL) W ährend der Weiterentwicklung von
Windows 10 schlug die Neuigkeit,
dass das Windows Subsystem für Linux
Kernels eine Software-Schicht auf dem
Windows-Kernel die Systemaufrufe aus-
führte. Die Entwickler hatten zwar nicht
sogar grafische Linux-Anwen-
(WSL) im Micro- 100 Prozent aller
dungen auf dem Desktop dar-
soft-Betriebssystem Aufrufe implemen-
stellen. Ein gründlicher Blick auf normale Linux-Pro- tiert, aber genug zum
die Funktionsweise zeigt nicht gramme ausführen Ausführen einer Li-
nur, was das zuständige Subsys- wird, hohe Wellen. nux-Umgebung, wie
tem in den verschiedenen Win- Hatten die Micro- sie zum Beispiel
dows-Versionen leistet, sondern soft-Granden vor Ubun­tu bereitstellt –
auch einige spannende Mecha- 20 Jahren noch gewettert, Linux sei ein Umgebung meinte zunächst eine textba-
Krebsgeschwür, bauten die Redmonder sierte Unix-Shell mit all ihren Begleitern
nismen, die in allen modernen
Entwickler es nun direkt ins Betriebssys- wie grep, awk und Kollegen.
Windows-Versionen stecken.
tem ein. Seit den ersten Gehversuchen in Mitte 2019 erschien dann Version 2
den Insider Builds von Windows 10 im Jahr von WSL, zunächst wieder im Rahmen der
Von Peter Siering 2016 bis hin zur aktuellen Fassung in Insider Previews. Anstatt Windows die
Windows 11 haben die Entwickler die Systemaufrufe nachbilden zu lassen,
Funktionsweise stark verändert und grei- spannten die Entwickler jetzt eine Mini-

© Copyright by Heise Medien.

164 c’t 2021, Heft 25


Persönliches PDF für Armando Urquiola Cabrera aus 10439 Berlin
Windows Subsystem für Linux  | Praxis

mal-VM ein, die einen Linux-Kernel aus- Damit letzteres automatisch geschieht,
führt. Für die kompakte VM braucht Mi- muss man in der Konfiguration für Win-
crosoft nicht die vollständige eigene Vir- dows-Update auch das Aktualisieren an-  kompakt
tualisierungskomponente Hyper-V, son- derer Microsoft-Software gestatten.
dern nur eine abgespeckte Form derselben. Was die WSL-App im Store im Unter- • WSL führt unter Windows Linux-­
Diesen „Host Compute Service“ (HCS) schied zu wsl --install derzeit nicht leis- Binärdateien direkt aus.
verwendet Windows auch an verschiede- tet: Sie richtet nicht das zusätzlich nötige • Seit Windows 11 stellt WSL die Fens-
nen anderen Stellen, um Sandboxen zu Windows-Feature, die „Virtual Machine ter grafischer Linux-Awendungen
realisieren. Platform“ ein. Das muss der Nutzer zuvor wie die von Windows Anwendungen
WSL1 und WSL2 schließen einander von Hand erledigen. Das geht per dism.exe auf dem Desktop dar.
nicht aus, sondern können nebeneinander /online /enable-feature /featurename:Vir
laufen. Der Anwender entscheidet, unter tualMachinePlatform /all aus einer Kom- • Als Komponente zeigt WSL auf,
welcher Variante er eine Linux-Umgebung mandozeile mit Admin-Rechten oder über ­ elche technischen Möglichkeiten
w
betreiben möchte. Eine Windows-Instal- die Windows-Feature-Liste, die man über heute in Windows stecken.
lation kann die Linux-Umgebungen per eine Suche im Startmenü nach „Feature“
App aus dem Microsoft-Store ziehen oder findet (oder auch über die betagte und in
das ganz ohne Geklicke auch auf der Kom- Windows 11 noch immer enthaltene Sys- dows-Programme benutzen. Windows
mandozeile erledigen. Letztere bietet sich temsteuerung). Wie gesagt: wsl --install stellt diese dann auf dem Desktop als
ohnehin an, denn Dreh- und Angelpunkt spart diese Handgriffe. Fenster neben den Windows-Anwendun-
für Aufruf und Konfiguration der WSL- gen dar. WSL reiht sogar solche grafischen
Umgebungen ist das Programm wsl auf der Erste Schritte Anwendungen automatisch ins Windows-
Kommandozeile, das zumeist Rechte Sobald WSL eingerichtet ist, der PC even- 11-Startmenü ein. Wenn Sie Firefox in der
eines Administrators erwartet. tuell neu gestartet und eine Linux-Umge- Ubuntu-Umgebung mit
bung hinzugefügt wurde, lässt sie sich
Installation durch Eingabe ihres Namens in die Start- sudo apt-get update
Während der Entwicklung variierten die menüsuche starten. Alternativ erledigt das sudo apt-get install firefox
Tipps, wie die Installation von WSL(2) zu auch der parameterlose Aufruf von wsl für
bewerkstelligen sei. Jetzt ist klar: Wenn Sie die als Standard gesetzte Linux-Umgebung. nachinstalliert haben, würde Windows den
eine aktuelle Windows-Version am Start Starten heißt, dass Windows eine Shell als „Firefox (Ubuntu)“ bei einer Startme-
haben, ist dafür die Kommandozeile am zeigt, also die Linux-Kommandozeile. Das nüsuche anbieten. Beim Aufruf der vorge-
bequemsten. Öffnen Sie als Admin eine dauert einige Sekunden, wenn zuvor keine nannten Befehle fragt die Ubuntu-Umge-
Eingabeaufforderung oder ein Windows- Linux-Umgebung lief. Je nachdem, wie Sie bung das Passwort ab, das Sie beim Ein-
Terminal und geben Sie dort ein: diese aufrufen, stellt Windows sie in einer richten von WSL einzugeben aufgefordert
Windows-Konsole oder im neuen Win- worden sind. Den Benutzernamen, den Sie
wsl --install --distribution ubuntu dows-Terminal dar (letzteres empfiehlt dabei festgelegt haben, verwendet WSL als
sich, weil es komfortabler ist). Ihre Linux-Identität. Die WSL-Linux-Um-
Der Befehl installiert nicht nur WSL, son- In der Shell können Sie beliebige Li- gebungen gehören immer dem angemel-
dern auch gleich eine Ubuntu-Umgebung. nux-Kommandos starten, etwa mit ls eine deten Windows-Nutzer. Das unter Linux
Windows 11 braucht die Option für die Liste der Dateien ausgeben lassen, die im angelegte Konto und Passwort sind nicht
Distribution nicht, es ergänzt von sich aus aktuellen Verzeichnis liegen. Wenn Ihr PC weiter mit dem Windows-Konto verknüpft.
gleich Ubuntu. Unter Windows 11 holt mit Windows 11 läuft und grafische Linux- In der Linux-Shell können Sie aber
der Befehl auch gleich die Komponenten, Programme in der Umgebung installiert nicht nur Linux-Programme starten, son-
die notwendig sind, um grafische Linux-­ sind, können Sie diese wie normale Win- dern auch Windows-Programme. Es ge-
Programme auszuführen, von Microsoft
WSLg getauft. Für Windows 10 wird Mi­
crosoft diese Funktion aller Voraussicht
nach nicht anbieten. Sie wurde zwar in den Windows 11
Insider Preview unter Windows 10 getes- findet in einer
tet, bleibt aber Windows 11 vorbehalten. WSL-Umgebung
Im Store bietet Microsoft WSL neuer- installierte grafi-
dings auch an, bei Redaktionsschluss in sche Linux-An-
Form einer Preview. Langfristig soll das wendungen und
der empfohlene Installationsweg werden, trägt sie ins
Startmenü ein.
steht in Microsofts Entwickler-Blog. Das
Für die Darstel-
Argument dafür: So wäre es leichter, WSL
lung von deren
außer der Reihe zu aktualisieren, ohne Fenstern ver-
dafür auf eine neue Windows-Version um- wendet Micro-
steigen zu müssen. Der auf der Komman- soft die Funktio-
dozeile dafür angebotene Befehl wsl nen des Remote
--update aktualisiert nur den Kernel. Desktop.

© Copyright by Heise Medien.

c’t 2021, Heft 25 165


Persönliches PDF für Armando Urquiola Cabrera aus 10439 Berlin
Praxis  |  Windows Subsystem für Linux

Wer hätte treibt WSL2 alle Linux-Umgebungen eines


gedacht, dass Nutzers. Es nutzt Namespaces, um die Dis-
im Explorer mal tributionen in der VM voneinander zu iso-
Pinguine her- lieren. Fürs Ausführen von grafischen Li-
umspringen: nux-Anwendungen (WSLg) stellt Micro-
Die Dateien der
soft in Windows 11 der vom Nutzer ein-
Linux-Umge-
gerichteten Linux- eine spezielle
bungen sind per
Klick erreichbar.
System-­Umgebung zur Seite, die deren
Bei WSL2 liegen Bildschirmausgaben so umlenkt, dass sich
sie in VHDX-­ deren Fenster per RDP auf dem Desktop
Dateien, also neben regulären Windows-Fenstern dar-
virtuellen stellen lassen.
­Platten, wie Das Gebilde kann man recht gut er-
sie Hyper-V forschen. Dass eine leichtgewichtige VM
verwendet. beteiligt ist, sieht man zwar nicht in den
Hyper-V-Verwaltungswerkzeugen, aber
sehr wohl auf der Kommandozeile mit
einem Aufruf von hcsdiag list (dafür sind
Admin-Rechte erforderlich); so lassen sich
nügt, den Namen der Programmdatei ein- Wie heute zumeist in Containern übrigens auch andere solcher Mini-VMs
zugeben, etwa notepad.exe oder powershell. führt die Umgebung typischerweise ein sichtbar machen, die schon Windows 10
exe. Microsoft selbst zeigt gern den Aufruf Programm aus. Sie kann aber durchaus zum Beispiel für Sicherheitsfunktionen
von Visual Studio Code, das unter Win- auch mehrere Programme starten. Da je- einbindet. Das Android Subsystem in Win-
dows installiert ist. Der gelingt dabei inte- doch die Infrastruktur zum automatischen dows nutzt diese ebenso (mehr darüber in
ressanterweise durch Eingabe von code – Starten von Diensten fehlt, sind das eher einer kommenden c’t und schon jetzt auf
damit das klappt, hinterlegt Microsoft bei Eintagsfliegen. Sobald sich der Nutzer ab- c’t 3003, siehe ct.de/y2ue). Auch für die
der Installation der Windows-App im meldet, die Umgebung oder Windows be- virtuellen Hyper-V-Switches liefert ein
Suchpfad ein Shellskript, das aus der WSL- endet, stoppen alle darin gestarteten Li- solches Kommando (hnsdiag) Informatio-
Shell das eigentliche Windows-Binary nux-Prozesse. Letztlich haben die Micro- nen.
code.exe aufruft. soft-Entwickler alles darauf abgestimmt, Unter Windows 11 lässt sich die For-
Weitere Distributionen lassen sich per dass Linux-Binärdateien interaktiv nutz- schungsarbeit noch weiter treiben: Dort
wsl --install --distribution mit hinten bar sind – den dauerhaften Betrieb von kann man mit wsl --system sogar eine Shell
angestelltem Distributionsnamen hinzu- Serverdiensten hatten sie nicht im Auge. innerhalb der von Microsoft für das Ab-
fügen. Welche Microsoft anbietet, verrät WSL1 hat Microsoft als Dienst in Win- fangen der grafischen Ausgaben konstru-
der Aufruf wsl --install --online. Aber dows verankert, um Linux-Binärdateien ierten System-Umgebung erlangen. In
nicht nur diese Umgebungen stehen zur auszuführen. Bei WSL2 führt eine leicht- dieser Umgebung steht mit yum sogar ein
Verfügung. Microsoft hat Anleitungen ver- gewichtige virtuelle Maschine (VM) einen Paketmanager bereit, um für die For-
öffentlicht, wie Linuxe zu paketieren sind, von Microsoft angepassten Linux-Kernel schung weitere Software zu installieren.
damit sie sich in WSL integrieren. Es läuft aus. Unter diesem Kernel in dieser VM be- Solche Änderungen sind allerdings nur
letztlich darauf hinaus, ein Tar-Archiv zu
bauen und eine EXE-Datei bereitzustel-
len, die diese auf Zuruf bearbeitet. Über
ct.de/y2ue finden Sie viele weitere solcher
Distributionen zum Download.
So viel Linux steckt in jedem Windows
Nicht nur mit dem Ausführen von Linux- Einen großen Gefallen haben die Ent-
Technik dahinter Anwendungen schickt Microsoft Win- wickler der IT-Welt getan, indem Sie Win-
Die in WSL „ausgeführten“ Linux-Umge- dows auf Tuchfühlung mit der Unix-Welt. dows auch einen OpenSSH-Client und
bungen entsprechen in einigen Punkten Schon zu frühen Zeiten von Windows 10 -Server spendiert haben. Der ist so nah
nicht einer regulären Distribution, wie sie begannen die Entwickler, typische Werk- am in der Open-Source-Welt verbreiteten
auf einem PC oder in einer virtuellen Ma- zeuge aus der Unix-Kommandozeile ein- Original, dass sich die für die Anmeldung
schine (VM) läuft. Es fehlen die typischen zubauen: So finden Windows-Nutzer dort nötigen Schlüssel problemlos austau-
Funktionen zum Starten von Diensten, zur das Programm Curl vor, mit dem sich schen lassen. Das war nicht immer so:
Anmeldung und die Software zum Bereit- automatisiert Dateien herunterladen, Das oft auch heute noch von vielen un-
stellen einer grafischen Bedienoberfläche aber auch komplexere Web-Zugriffe in nötigerweise empfohlene Putty generier-
mit Desktop und so weiter. Aber die Um- Skripten realisieren lassen. Außerdem te diese in einer speziellen Form, sodass
gebungen enthalten alle zur Distribution kann Windows schon länger die unter sie (Open-)SSH-Server erst nach Kon-
gehörenden Bibliotheken und Konfigura- Unix gebräuchlichen Tar-Archive lesen vertierung schlucken. Diese Pfriemelei
tionsdateien, sodass Programme keinen und schreiben – das allerdings „nur“ auf hat mit den in Windows eingebauten
Unterschied bemerken, solange sie nicht der Kommandozeile. SSH-Komponenten gottlob ein Ende.
auf weitere Dienste angewiesen sind.

© Copyright by Heise Medien.

166 c’t 2021, Heft 25


Persönliches PDF für Armando Urquiola Cabrera aus 10439 Berlin
Windows Subsystem für Linux  | Praxis

temporär und schlagen sich nicht in der Das Windows Ter­


beim Start bemühten VHDX-Datei der minal trägt viel zum
System-Umgebung nieder. Charme von WSL
bei. Die Linux-Um­
Dateiaustausch gebungen tauchen
nach dem Hinzu­
Ein wesentlicher Unterschied zwischen
fügen automatisch
WSL1 und 2, den Microsoft auch sehr deut-
dort auf.
lich dokumentiert hat, liegt in der Art und
Weise, wie „weltübergreifende“ Dateizu-
griffe realisiert sind. WSL2 legt alle Linux-
Dateien zusammen mit denen der Distri-
bution in einer VHDX-Datei im Benutzer- ist die in den Linux-Umgebungen ange- Testen nötige Labor mitzuschleppen.
profilverzeichnis ab (unter c:\Users\ zeigte Hardware-Ethernet-Adresse (MAC) Nach einer Zeit merkt man gar nicht mal
<Name>). Die Zugriffe auf diesen Daten- mit der in Windows identisch. Dadurch mehr, auf welchem Betriebssystem man
bestand aus WSL heraus erfolgen rasend sind innerhalb von WSL ausgeführte arbeitet.
schnell. Um die Windows-eigenen Lauf- Dienste erreichbar, beispielsweise ein Das unterscheidet den WSL-Ansatz
werke unter Linux zugänglich zu machen, Web-Server. Öffnet eine Linux-Anwen- von herkömmlicher Technik zu Virtuali-
bindet WSL2 sie in den Linux-Dateibaum dung einen Port, fragt Windows gleich sierung. Theoretisch lässt sich all das auch
unter „/mnt“ ein. nach, ob es einen Firewall-Port öffnen soll. mit virtuellen Maschinen realisieren, aber
Zum Einbinden nutzt es eine spezielle WSL2 verpasst ebenfalls allen laufen- der Aufwand ist deutlich größer. Man
Zugriffstechnik, um sicherzustellen, dass den Umgebungen eine identische IPv4- muss die VMs einrichten, sich Gedanken
konkurrierende Zugriffe von Windows und Adresse, leitet die aber nicht von der des über die zu verteilenden Ressourcen ma-
Linux nicht das Dateisystem beschädigen PCs ab. Stattdessen entnimmt es sie einem chen und selbst aufräumen. Mit Windows-
(ein gleichzeitiges Einbinden eines Gerätes Adresspool eines virtuellen Switches, der Bordmitteln gelingt das nur mit der Pro-
unter beiden Systemen würde das im Zwei- „WSL“ heißt und bei Nachinstallation der Version. WSL steht auch in Home zur Ver-
fel provozieren): das für das Experimen- Hyper-V-Verwaltungswerkzeuge und fügung und sogar in der ARM-Variante
tierbetriebssystem Plan 9 entworfene 9P. -Dienste auch sichtbar ist, wenn WSL2- (vorausgesetzt, die Hardware erlaubt
WSL2 selbst agiert dabei als Server, Win- Umgebungen laufen. Alle WSL2-Umge- Virtualisierung, was nicht für jedes ARM-
dows als Client. Benchmarks zeigen, dass bungen nutzen dann gemeinsam eine IP- Gerät gilt).
Dateizugriffe auf die so in Linux erreich- Adresse aus einem privaten IPv4-Netz. Unterm Strich ist mit WSL die Schwel-
baren Dateien eines NTFS-Dateisystems IPv6-Adressen erhalten sie nicht. Auf dem le, eine Linux-Umgebung zu installieren,
viel langsamer erfolgen. Je mehr kleine virtuellen Switch ist die Windows-Kom- wieder zu entsorgen (mit wsl --unregister,
Dateien dabei bearbeitet werden, desto ponente zum Teilen einer Internet-Ver- was alle Daten löscht) und neu einzurich-
stärker soll sich das auswirken. bindung (Internet Connection Sharing, ten, deutlich niedriger. Zum Charme trägt
Die Empfehlungen, die man daraus ICS) aktiv. das Windows-Terminal bei: Der Ersatz für
ableiten kann, sind sehr eindeutig: Wenn Netzwerkzugriffe von außen auf die stumpfen Konsolenfenster, in denen
gemeinsame Zugriffe von Windows und Dienste, die in einer WSL2-Umgebung Windows bisher Kommandozeilenwerk-
Linux auf einen großen Bestand kleiner laufen, sind dadurch schwieriger möglich. zeug bereitgestellt hat, glänzt mit skalier-
Dateien gefragt sind, dann empfiehlt sich Im Bug-Tracker zu WSL gibt es dazu lang barer, bunter und Tab-fähiger Oberfläche.
WSL1. Hauptsächlich unter Windows be- anhaltende Diskussionen, die allerhand Obendrein integriert es die verschiedenen
arbeitete Bestände sollten mit WSL2 auf Probleme aufzeigen (siehe ct.de/y2ue): Da Linux-Umgebungen schon bei der Instal-
einem NTFS-Datenträger liegen, im We- eine Umgebung mit jedem Windows- und lation, sodass PowerShell, klassische Ein-
sentlichen unter Linux bearbeitete Datei- WSL-Neustart eine andere IP-Adresse zu- gabeaufforderung und Bash immer nur
en idealerweise im Linux-Dateisystem geteilt bekommt, genügen statische Port- einen Klick entfernt sind.
(nicht unter /mnt), also in der VHDX-Da- weiterleitungen via netsh (mit netsh Im WSL-Kosmos ist das Frickelfieber
tei. Selbst wenn Windows diese Dateien interface portproxy add) und Ausnahmen ausgebrochen. Auf GitHub sprießen Pro-
nicht standardmäßig mountet, lässt sich in der Windows-Firewall nicht, um Diens- jekte aus dem Boden: grafische Programme
ein Zugriff realisieren. Auch hier kommt te in den Linux-Umgebungen dauerhaft zum Verwalten der Linux-Umgebungen,
9P zum Einsatz: Microsoft hat Visual Stu- zugänglich zu machen. Doch wie gesagt Netzwerkkonfigurationshilfen und Ergän-
dio Code um ein Modul ergänzt, das so war dies auch nicht Microsofts Ziel. zungen zum dauerhaften Betrieb von
Dateien im Linux-Dateisystem erreichen Diensten. Obendrein gibt es zur Orientie-
kann. Wem es nützt rung Sammlungen spannender WSL-The-
WSL spielt da seine Vorzüge aus, wo Win- men (einige Perlen haben wir unter ct.de/
Netzwerk dows-Nutzer viel mit Linux-Umgebungen y2ue zusammen getragen). Das alles rückt
Die Netzwerkanbindung der Linux-Umge- in Berührung kommen. Besonders gilt das sogar cronjobs in greifbare Nähe, die aus
bungen unterscheidet sich je nach WSL- für Entwickler, die Visual Studio Code be- der Linux-Umgebung heraus Windows-
Version. WSL1 klemmt diese Umgebungen nutzen, um zum Beispiel Docker-Contai- Dateien bearbeiten.   (ps@ct.de) 
hinter die Netzwerkkarte des PCs, das ner zu bauen. Sofern die nicht allzu um-
heißt, Linux und Windows teilen sich die fangreiche Abhängigkeiten enthalten, WSL-Zusätze, ausgewählte Bug-Reports,
IPv4- und IPv6-Adressen. Entsprechend genügt ein Laptop, um das Ganze zum Architekturinfos, c’t 3003: ct.de/y2ue

© Copyright by Heise Medien.

c’t 2021, Heft 25 167


Persönliches PDF für Armando Urquiola Cabrera aus 10439 Berlin

Das könnte Ihnen auch gefallen