{"id":10055,"date":"2023-02-22T17:38:24","date_gmt":"2023-02-22T15:38:24","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=10055"},"modified":"2023-02-22T17:38:47","modified_gmt":"2023-02-22T15:38:47","slug":"einstieg-in-das-wsl-version-1-und-2-auf-windows-10-und-11-das-solltest-du-zum-windows-subsystem-fuer-linux-wissen","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/einstieg-in-das-wsl-version-1-und-2-auf-windows-10-und-11-das-solltest-du-zum-windows-subsystem-fuer-linux-wissen\/","title":{"rendered":"Einstieg in das  (WSL): Version 1 und 2 auf Windows 10 und 11: Das solltest du zum Windows Subsystem f\u00fcr Linux wissen"},"content":{"rendered":"<p>Das Windows Subsystem f\u00fcr Linux ist Microsofts Antwort auf die hohe Nachfrage nach GNU\/Linux. W\u00e4hrend diese auf dem Desktop vor allem unter Privatnutzern noch nicht angekommen ist, sieht das bei Entwicklern ganz anders aus: Die Stackoverflow-Umfrage wird j\u00e4hrlich unter zehntausenden IT-Affinen Personen durchgef\u00fchrt. <a href=\"https:\/\/survey.stackoverflow.co\/2022\/#developer-roles-dev-type\" data-type=\"URL\" data-id=\"https:\/\/survey.stackoverflow.co\/2022\/#developer-roles-dev-type\" target=\"_blank\" rel=\"nofollow\">Mehrheitlich handelt es sich dabei um Softwareentwickler<\/a>, doch es sind auch andere Berufsgruppen wie Administratoren oder Studenten dabei. <a href=\"https:\/\/survey.stackoverflow.co\/2022\/#section-most-popular-technologies-operating-system\" data-type=\"URL\" data-id=\"https:\/\/survey.stackoverflow.co\/2022\/#section-most-popular-technologies-operating-system\" target=\"_blank\" rel=\"nofollow\">Und die nutzen weit weniger Windows als der Durchschnitt<\/a>: Professionell sind es mit 48,8 % fast nur die H\u00e4lfte. Auf Linux basierte Betriebssysteme kommen dagegen auf stolze 39,9 %. Apples MacOS landet lediglich auf Platz 3.<\/p>\n<h2 class=\"wp-block-heading\">Warum Linux?<\/h2>\n<p>Die Gr\u00fcnde daf\u00fcr sind vielseitig. Ein wichtiger, der zur steigenden Verbreitung beitr\u00e4gt, ist die seit Jahren zunehmende Verbreitung von Containertechnologie. Docker und Kubernetes sind dabei f\u00fchrend: Beides ist Linux-Technologie, die erst Jahre sp\u00e4ter und teilweise bis heute nicht gleichwertig auf Windows portiert wurde. Au\u00dferdem sind m\u00e4chtige Werkzeuge wie <strong>grep<\/strong>, <strong>awk<\/strong> oder <strong>sed<\/strong> dort seit Jahrzehnten Standard. Windows kann deren Funktionsumfang nur zu Teilen mit der PowerShell bieten, oft mit l\u00e4ngeren, komplexeren Befehlen. Microsoft sah die Dominanz von Windows wieder einmal bedroht. <a href=\"https:\/\/u-labs.de\/portal\/browserkrieg-1-so-kaempfte-microsofts-internet-explorer-gegen-netscape-um-das-web-zu-erobern-und-anschliessend-tief-zu-fallen\/\" data-type=\"post\" data-id=\"9472\">Statt mit schmutzigen Tricks wie zu Gates Zeiten im ersten <em>Browserkrieg<\/em><\/a> entschloss man sich jedoch diesmal f\u00fcr eine sauberere Methode.<\/p>\n<p>Dar\u00fcber hinaus respektieren GNU\/Linux Distributionen in der Regel den Datenschutz und sammeln h\u00f6chstens sehr wenige Daten, die Meisten telefonieren \u00fcberhaupt nicht nach hause. Da es sich um freie Software handelt, kann der Nutzer das System zudem nach belieben ver\u00e4ndern. Upgrade- oder Kontozwang wie bei Windows wird man in der Linux-Welt mit der Lupe suchen m\u00fcssen. Auch entf\u00e4llt die Lizenzierung, welche bei propriet\u00e4rer Software nicht nur finanziell beachtliche Ausma\u00dfe annehmen kann. Sie ist gerade bei Windows sehr kompliziert, sodass man trotz hoher Zahlungen m\u00f6glicherweise unwissend unterlizenziert ist.<\/p>\n<h2 class=\"wp-block-heading\">Das Windows Subsystem for Linux (WSL) erblickt die Welt<\/h2>\n<p>In der breiten Masse scheuen viele einen Wechsel aufgrund des Aufwandes. Gerade aufgrund der Dominanz von Windows ist eine komplette Migration auf dem Desktop ggf. gar nicht m\u00f6glich, da Teile der eingesetzten Software keine Unterst\u00fctzung f\u00fcr Linux bieten. In diesen Fall m\u00fcssen beide Systeme parallel eingesetzt werden. Microsoft hat daran nat\u00fcrlich kein Interesse und hat mit dem WSL versucht, Linux in die Windows-Welt zu bringen.<\/p>\n<p>Es existieren bis heute zwei Versionen des WSL: <a href=\"https:\/\/www.computerbase.de\/2016-03\/ubuntu-bash-shell-windows-10\/\" data-type=\"URL\" data-id=\"https:\/\/www.computerbase.de\/2016-03\/ubuntu-bash-shell-windows-10\/\" target=\"_blank\" rel=\"nofollow\">2016 sollte WSL Version 1<\/a> die Entwickler bei Windows halten. Im Rahmen einer Partnerschaft mit Canonical, dem Unternehmen hinter der bekannten GNU\/Linux-Distribution Ubuntu, konnte man Ubuntu in einem Konsolenfenster unter Windows ausf\u00fchren &#8211; ohne Virtuelle Maschine, wie es bisher f\u00fcr Windows-Nutzer \u00fcblich war. Hierzu entwickelte der Konzern eine Kompatibilit\u00e4tsschicht, quasi das Gegenst\u00fcck zu Wine &#8211; oder anders ausgedr\u00fcckt: Sie haben Teile des Linux-Kernels nativ unter Windows nachgebaut. Die Distributionen m\u00fcssen daf\u00fcr von Microsoft ver\u00e4ndert werden, deswegen l\u00e4uft nicht jede davon mit WSL, wie bei einer normalen (VM) Installation.<\/p>\n<p>So konnte man eine Bash-Shell mit grundlegenden Linux-Befehlen direkt unter Windows verwenden. Das war auch vergleichsweise Ressourcensparsam &#8211; aber man konnte damit mangels echtem Linux-Kernel bei weitem nicht alle Linux-Binaries ausf\u00fchren, z.B. keine Docker-Container oder gar grafischen Anwendungen. Kurzum: WSL in seiner ersten Version <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/faq\" target=\"_blank\" rel=\"nofollow\">brachte ein paar grundlegende Werkzeuge aus der GNU\/Linux Welt<\/a>, war aber ziemlich weit davon entfernt, es zu ersetzen. <\/p>\n<h3 class=\"wp-block-heading\">V2<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/commandline\/wsl-2-is-now-available-in-windows-insiders\/\" data-type=\"URL\" data-id=\"https:\/\/devblogs.microsoft.com\/commandline\/wsl-2-is-now-available-in-windows-insiders\/\" target=\"_blank\" rel=\"nofollow\">In der komplett \u00fcberarbeiteten Version 2<\/a> (ab Version 1903 von Windows 10 verf\u00fcgbar) gab Microsoft Mitte 2019 auf, Linux durch eine eigene Kompatibilit\u00e4tsschicht zu emulieren. Stattdessen wird nun der echte Linux-Kernel genutzt. Vereinfacht kann man es sich wie eine kleine Linux-VM vorstellen, die im Hintergrund l\u00e4uft. Dadurch laufen nahezu jegliche Linux-Anwendungen unter WSL V2. Die Performance ist f\u00fcr eine VM gut, doch damit kommen auch die \u00fcblichen Nachteile durch Virtualisierung: Die Prozessorfunktionen m\u00fcssen z.B. zun\u00e4chst im BIOS\/UEFI aktiviert werden.<\/p>\n<h3 class=\"wp-block-heading\">Welche Version sollte ich nutzen: WSL 1 oder 2?<\/h3>\n<p>Mittlerweile ist WSL 2 zum Standard geworden, da der echte Linux-Kernel weit mehr Vorteile bietet. Er wird \u00fcber Windows Updates aktuell gehalten. In den meisten F\u00e4llen d\u00fcrfte dies auch die bessere Wahl sein. <a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/compare-versions\" data-type=\"URL\" data-id=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/compare-versions\" target=\"_blank\" rel=\"nofollow\">Derzeit werden beide Versionen parallel angeboten, <\/a>da es ein paar Szenarien gibt, <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/compare-versions#additional-networking-considerations\" data-type=\"URL\" data-id=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/compare-versions#additional-networking-considerations\" target=\"_blank\" rel=\"nofollow\">in denen WSL 1 Vorteile bietet<\/a>:<\/p>\n<ul class=\"wp-block-list\">\n<li>Dateizugriffe \u00fcber die Betriebssysteme hinweg sind bei WSL 2 langsamer. Wenn man z.B. mit Linux auf Daten zugreifen m\u00f6chte, die unter Windows (meist NFS) gespeichert sind, ist WSL 1 performanter. Vor allem bei gr\u00f6\u00dferen Dateimengen macht sich dies bemerkbar.<\/li>\n<li>WSL 2 ben\u00f6tigt im Vergleich mehr Arbeitsspeicher. Dies kann Ressourcenprobleme verursachen, vor allem wenn komplexere Aufgaben in der VM laufen.<\/li>\n<li>Netzwerktechnisch nutzt WSL 1 eine Netzwerkbr\u00fccke. Bei WSL 2 kommt ein virtuelles Netzwerk mit NAT zum Einsatz: Die WSL 2 Instanz erh\u00e4lt also eine zus\u00e4tzliche IP-Adresse per DHCL, die nur vom Windows-Host aus erreichbar ist. Dies schafft Komplexit\u00e4t, je nach Anwendungsfall ist zus\u00e4tzliche Konfiguration notwendig.<\/li>\n<li>Da WSL 2 intern eine mit Hyper-V virtualisierte GNU\/Linux-VM erzeugt, sind die Latenzzeiten h\u00f6her. Au\u00dferdem kann es zu Problemen kommen, wenn parallel andere Virtualisierungsplattformen wie z.B. VirtualBox oder VMWare eingesetzt werden. In neueren Versionen gibt es teils L\u00f6sungen bzw. Workarounds, <a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/faq#will-i-be-able-to-run-wsl-2-and-other-3rd-party-virtualization-tools-such-as-vmware--or-virtualbox-\" data-type=\"URL\" data-id=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/faq#will-i-be-able-to-run-wsl-2-and-other-3rd-party-virtualization-tools-such-as-vmware--or-virtualbox-\" target=\"_blank\" rel=\"nofollow\">mit \u00e4lteren funktioniert der Parallelbetrieb eine Weile gar nicht<\/a>.<\/li>\n<li>Ist Windows selbst virtualisiert, funktioniert WSL 2 nur, wenn verschachtelte Virtualisierung auf dem Host aktiviert wurde. Dies ist generell nicht zur produktiven Nutzung empfehlenswert.<\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\">Version ist nicht gleich Version bei WSL<\/h3>\n<p>WSL 1 und 2 sind allerdings keine klassischen Hauptversionen im Stil von Ubuntu 21 und 22, wo ich entweder auf der einen oder der anderen bin. Sie sind mehr als Ausf\u00fchrungsformate zu verstehen, die von der Softwareversion unabh\u00e4ngig sind: Ein Office 2016 kann beispielsweise das alte .doc-Format sowie dessen Nachfolger .docx \u00f6ffnen. Bei WSL haben wir die <a href=\"https:\/\/github.com\/microsoft\/WSL\/releases\" data-type=\"URL\" data-id=\"https:\/\/github.com\/microsoft\/WSL\/releases\" target=\"_blank\" rel=\"nofollow\">WSL-Release-Version von der GitHub Seite<\/a> (etwa 1.1.2) als \u00fcbergeordnete Plattform. Ihre Version gibt Auskunft \u00fcber die generellen Funktionen der Plattform. Sie kann sowohl WSL 1 als auch 2 Instanzen starten. Eine Vermischung ist ebenfalls m\u00f6glich, sodass z.B. eine Ubuntu-Instanz unter V2 l\u00e4uft, Debian aber unter 1. <\/p>\n<p>Die gleiche Distributionsversion (z.B. Ubuntu 20.04) kann aber nicht zweimal gestartet werden. Dies ist nur mit einer anderen Hauptversion m\u00f6glich. Hier l\u00e4uft beispielsweise Ubuntu in der aktuellsten Standard-Version (derzeit 22) in WSL 2, w\u00e4hrend Ubuntu 20 als WSL 1 erzeugt wurde. Anhand der WSL-Release-Version h\u00e4ngen anscheinend auch die verf\u00fcgbaren Distributionen bzw. deren Versionen.<\/p>\n<h2 class=\"wp-block-heading\">Praxiseinstieg: WSL installieren und einrichten<\/h2>\n<h3 class=\"wp-block-heading\">Voraussetzungen<\/h3>\n<p>WSL 2 ben\u00f6tigt die gleichen Voraussetzungen wie jede andere Virtuelle Maschine: Der Prozessor muss die Virtualisierungsfunktionen der jeweiligen Architektur unterst\u00fctzen, was lediglich bei sehr alten CPUs nicht der Fall ist. Bei vielen Mainboards sind diese jedoch nicht ab Werk aktiv und m\u00fcssen zun\u00e4chst im BIOS\/UEFI aktiviert werden. Wie das funktioniert, variiert stark je nach Hersteller und Modell. Meist kommt man mit<strong> [ENTF], [F1], [F2], [F10]<\/strong> oder <strong>[ESC] <\/strong>w\u00e4hrend des Boot-Vorganges hinein oder es wird eine Taste genannt. Die Einstellung ist teils etwas versteckt. Oft unter den Erweiterten Funktionen, Systemeinstellungen oder auch Einstellungen zur \u00dcbertaktung. Auch die Bezeichnungen sind teils verschieden: Vor allem unter \u00e4lteren Boards wird sie z.B. <strong>Virtualization Technology<\/strong> genannt. Bei den neueren Meist entsprechend den Technologien der jeweiligen Hersteller: VTx und VTd bei Intel, AMD-V im Falle eines AMD-Prozessors. Im Zweifel kann man die folgende Installation auch einfach ausprobieren: Falls die Funktionen nicht aktiv sind, wird sie fehlschlagen.<\/p>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/hp-uefi-small.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1628\" height=\"494\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/hp-uefi-small.jpg\" alt=\"\" class=\"wp-image-10056\"\/><\/a><\/figure>\n<h3 class=\"wp-block-heading\">Was funktioniert wo?<\/h3>\n<p>Fangen wir mit den positiven Nachrichten an: Entgegen Microsofts Trend wird keine besondere Edition gefordert &#8211; man kann WSL also auch mit Home vollumf\u00e4nglich nutzen, obwohl hier fast alle weiteren Virtualisierungsfunktionen fehlen. Bei Version 2 k\u00f6nnte man erwarten, eine vollwertige GNU\/Linux-Distribution vor sich zu haben, die sich eben so verh\u00e4lt. Das dem im Detail nicht so ist, wird man relativ schnell bemerken: So funktioniert Systemd nicht, ein sehr verbreitetes Init-System. Bereits beispielsweise die Installation eines Webservers oder anderen Programmes, das im Hintergrund als Dienst l\u00e4uft, wird daher Fehlschlagen. <a href=\"https:\/\/u-labs.de\/portal\/systemd-in-wsl-nutzen-so-behebst-du-den-system-has-not-been-booted-with-systemd-as-init-system-pid-1-cant-operate-fehler-unter-windows-10-11\/\" data-type=\"post\" data-id=\"10067\">Hierf\u00fcr gibt es zwei Workarounds, welche ich in diesem vorherigen Beitrag gezeigt habe<\/a>.<\/p>\n<h3 class=\"wp-block-heading\">Installation und Erste Nutzung<\/h3>\n<p>Unter neueren Windows-Versionen (Windows 11 oder Windows 10 ab Version 2004 Build 19041) ist das Kommandozeilenwerkzeug von WSL ab Werk installiert, WSL selbst jedoch nicht eingerichtet. Da sich die Installation \u00fcber verschiedene Updates hinweg ver\u00e4ndert hat, solltet ihr zun\u00e4chst alle verf\u00fcgbaren Windows Updates einspielen. In diesem Falle kann man sich mit folgendem Befehl eine Liste aller GNU\/Linux-Distributionen auflisten lassen, die Microsoft zu Windows portiert hat. Denn auch wenn in WSL V2 ein vollwertiger Linux-Kernel l\u00e4uft, hat Microsoft einige Anpassungen vorgenommen. Daher m\u00fcssen die Distributionen ebenfalls eigens angepasst werden &#8211; es l\u00e4uft nicht jedes GNU\/Linux, wie in einer vollwertigen VM.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nPS C:\\Users\\U-Labs&gt; wsl --list --online\n  NAME               FRIENDLY NAME\n* Ubuntu             Ubuntu\n  Debian             Debian GNU\/Linux\n  kali-linux         Kali Linux Rolling\n  SLES-12            SUSE Linux Enterprise Server v12\n  SLES-15            SUSE Linux Enterprise Server v15\n  Ubuntu-18.04       Ubuntu 18.04 LTS\n  Ubuntu-20.04       Ubuntu 20.04 LTS\n  OracleLinux_8_5    Oracle Linux 8.5\n  OracleLinux_7_9    Oracle Linux 7.9\n<\/pre>\n<\/div>\n<p>Zur Installation f\u00fchren wir folgenden Befehl aus (getestet mit Windows 11 22H2, Windows 10 22H2 &amp; 21H2):<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nwsl --install -d &lt;Distributionsname&gt;\n# Oder um die Standard-Distribution zu installieren\nwsl --install\n<\/pre>\n<\/div>\n<p>Mit <strong>wsl &#8211;install -d Debian<\/strong> wird z.B. Debian installiert. Die Standard-Distribution ist derzeit Ubuntu (mit * markiert). Microsoft gibt hier keine explizite Version an, es scheint sich wohl immer um die aktuellste LTS zu handeln. Wer damit zufrieden ist, dem reicht auch <strong>wsl &#8211;install<\/strong> ohne den <strong>-d <\/strong>Parameter. Windows l\u00e4dt die angepasste Distribution nun herunter und es ist ein Neustart f\u00e4llig. Es empfiehlt sich, sp\u00e4testens jetzt <a href=\"https:\/\/u-labs.de\/portal\/ist-das-neue-windows-terminal-die-bessere-cmd-eingabeaufforderung-bzw-powershell-tabs-splitscreen-farben-mehr\/\" data-type=\"post\" data-id=\"8229\">das neue quelloffene Windows Terminal zu nutzen<\/a>: Hier integriert sich WSL n\u00e4mlich \u00fcber den kleinen Pfeil neben dem Plus-Knopf. Dort werden installierte GNU\/Linux Distributionen automatisch aufgelistet, hier im Beispiel Ubuntu. Beim ersten Start muss die VM noch komplett installiert werden, bis man zur Eingabe eines Benutzers mit Passwort aufgefordert wird. Anschlie\u00dfend kann man die WSL 2 Instanz nutzen:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/grafik-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"609\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/grafik-8-1024x609.png\" alt=\"\" class=\"wp-image-10057\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/grafik-8-1024x609.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/grafik-8-300x179.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/grafik-8-768x457.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/grafik-8.png 1052w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>Aus Nutzersicht hat man auf den ersten Blick eine fast vollwertige minimale Ubuntu-VM, die jederzeit mit dem Befehl <strong>wsl<\/strong> gestartet bzw. aufgerufen werden kann. Der beim ersten Start eingerichtete Nutzer hat &#8211; wie unter Ubuntu gewohnt &#8211; Rechte zur Nutzung von sudo erhalten, sodass ihr dar\u00fcber auch Befehle als <strong>root<\/strong> Ausf\u00fchren k\u00f6nnt. Beispielsweise einen Apache-Webserver installieren. Der ist dann allerdings nicht \u00fcber localhost\/127.0.0.1 eures Windows-Host-PCs erreichbar, sondern \u00fcber die NAT-IP der VM &#8211; die findet man z.B. mit <strong>ip a<\/strong> heraus.<\/p>\n<p>Zuk\u00fcnftig wird die VM mit dem WSL-Befehl erstmalig gestartet, dies dauert ungef\u00e4hr 10 Sekunden wie bei einer schnellen herk\u00f6mmlichen VM. Wer den Microsoft Store meiden oder die Installation automatisieren m\u00f6chte, kann sich die f\u00fcr Windows angepassten Pakete der GNU\/Linux-Distributionen alternativ <a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/install-manual#step-2---check-requirements-for-running-wsl-2\" data-type=\"URL\" data-id=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/install-manual#step-2---check-requirements-for-running-wsl-2\" target=\"_blank\" rel=\"nofollow\">auch h\u00e4ndisch im APPX-Format herunterladen<\/a>.<\/p>\n<h3 class=\"wp-block-heading\">Mehrere Umgebungen nutzen<\/h3>\n<p>\u00dcber den gleichen Befehl unterst\u00fctzt WSL die Installation mehrerer Umgebungen. Im Beispiel installieren wir zus\u00e4tzlich eine Debian-Instanz und schauen uns mit <strong>-l<\/strong> (<strong>list<\/strong>) und <strong>-v<\/strong> (<strong>verbose<\/strong>) f\u00fcr zus\u00e4tzliche Infos die vorhandenen Instanzen an:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nwsl --install -d Debian\nwsl -l -v\n  NAME      STATE           VERSION\n* Ubuntu    Running         2\n  Debian    Stopped         2\n<\/pre>\n<\/div>\n<p>Auch hier steht der Stern (*) f\u00fcr die Standard-Instanz: Wenn man nur <strong>wsl<\/strong> eingibt, wird Ubuntu gestartet. Mit <strong>wsl -d Debian<\/strong> k\u00f6nnte man stattdessen die zweite \u00f6ffnen. Bequemer ist jedoch die Verwendung des neuen Windows Terminal: Hier erscheinen neue Instanzen nach dem n\u00e4chsten Neustart der Anwendung in einer Liste, die per Klick auf den nach unten zeigenden Pfeil ge\u00f6ffnet werden kann:<\/p>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/MuwUuNBZGU.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/MuwUuNBZGU-1024x300.png\" alt=\"\" class=\"wp-image-10061\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/MuwUuNBZGU-1024x300.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/MuwUuNBZGU-300x88.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/MuwUuNBZGU-768x225.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/MuwUuNBZGU.png 1113w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<p>Wie in einer vollwertigen GNU\/Linux-Distribution ist es m\u00f6glich, mehrere Konsolenfenster zu starten. Einschr\u00e4nkungen gibt es nur im Parallelbetrieb: Eine spezifische Distribution wie z.B. Ubuntu 22 LTS kann nur einmal ausgef\u00fchrt werden. Wer zwei voneinander getrennte Instanzen ben\u00f6tigt, kann dies mit WSL 2 nur umsetzen, in dem man sich f\u00fcr verschiedene Versionen entscheidet: Etwa eine Instanz mit Ubuntu 22 LTS, die andere mit Ubuntu 20 LTS.<\/p>\n<h3 class=\"wp-block-heading\">Grafische Programme funktionieren mit leichten Detail-Schw\u00e4chen<\/h3>\n<p>Eine Neuerung von WSL 2 ist die Unterst\u00fctzung von grafischen Anwendungen. Das kann man in einem ersten Beispiel recht einfach testen, in dem z.B. unter Ubuntu der Standard-Texteditor <strong>gedit<\/strong> \u00fcber die Paketverwaltung nachinstalliert wird:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo apt update\nsudo apt install gedit\ngedit\n<\/pre>\n<\/div>\n<p>Gedit startet, sieht auf den ersten Blick recht original aus und l\u00e4sst sich auch weitgehend vern\u00fcnftig Bedienen. Bei einzelnen Funktionen klemmt es noch, so kann man den Text nicht gr\u00f6\u00dfer zoomen. Und der Mauszeiger sieht \u00fcber eine RDP-Sitzung mehr als schr\u00e4g aus: Drei Zeiger liegen nebeneinander mit schwer beschreibbaren Linien darunter und daneben. Dieser Fehler scheint jedoch nur in Kombination mit RDP aufzutreten, nativ sieht man einen einzelnen schwarzen Mauszeiger und auch Screenshot-Programme zeichnen diesen so auf.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msrdc_amUVn8GJzQ.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"413\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msrdc_amUVn8GJzQ-1024x413.png\" alt=\"\" class=\"wp-image-10073\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msrdc_amUVn8GJzQ-1024x413.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msrdc_amUVn8GJzQ-300x121.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msrdc_amUVn8GJzQ-768x310.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msrdc_amUVn8GJzQ-1536x619.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msrdc_amUVn8GJzQ.png 1587w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>Firefox l\u00e4sst sich per Snap installieren, sofern man die Systemd-Integration in WSL gefixt hat. Teilweise ist die Darstellung im Detail etwas unsch\u00f6n und es erscheinen Fehler auf der Konsole. Das Surfen funktionierte im ersten Test dagegen reibungslos und f\u00fchlte sich auch nicht langsamer an, als auf einem vollwertigen GNU\/Linux. Organisatorisch \u00f6ffnet Windows das per WSL gestartete grafische Fenster wie eine Windows-Anwendung in der Taskleiste.<\/p>\n<h3 class=\"wp-block-heading\">Der Lebenszyklus von WSL-Instanzen<\/h3>\n<p>WSL 1 startet Anwendungen \u00fcber die Emulationsschicht direkt aus Windows heraus. Bei WSL 2 wird die Virtuelle Maschine gestartet, sobald ihr <strong>wsl<\/strong> (bzw. eine spezifische Distribution mit <strong>-d<\/strong>) zum ersten Mal aufruft. Nach einem Neustart des PCs dauert der erste Aufruf von <strong>wsl<\/strong> daher deutlich l\u00e4nger, weil zuerst die VM gebootet wird &#8211; alle weiteren Aufrufe sind deutlich schneller, zumindest wenn sie zur gleichen Distribution geh\u00f6ren.<\/p>\n<p>Das verlassen mit <strong>exit<\/strong> oder dem schlie\u00dfen des Konsolenfensters beendet allerdings nicht zwingend sofort die dazugeh\u00f6rige VM! Stattdessen greift Windows ein und beendet die VM nach einigen Sekunden. Erst ab Windows 11 kann dies \u00fcber die Einstellung vmIdleTimeout (Standard: <code class=\"\" data-line=\"\">60000<\/code> ms = 60 s) angepasst werden. Dadurch laufen auch die dort gestarteten Hintergrunddienste nicht mehr, wie beispielsweise ein Webserver. Sie bleiben nur aktiv, so lange mindestens ein Konsolenfenster ge\u00f6ffnet ist. Dies ist ein Beispiel, an dem sich zeigt: WSL ist nicht daf\u00fcr gedacht, um (produktive) Serverdienste dauerhaft zu betreiben. Sondern eher f\u00fcr Test- und Entwicklungszwecke.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msedge_neAiSHlSRo.png\"><img loading=\"lazy\" decoding=\"async\" width=\"782\" height=\"388\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msedge_neAiSHlSRo.png\" alt=\"\" class=\"wp-image-10070\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msedge_neAiSHlSRo.png 782w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msedge_neAiSHlSRo-300x149.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/msedge_neAiSHlSRo-768x381.png 768w\" sizes=\"auto, (max-width: 782px) 100vw, 782px\" \/><\/a><figcaption class=\"wp-element-caption\">Kurz nachdem man die WSL-Konsole schlie\u00dft, ist ein darauf installierter Apache2 Webserver nicht mehr erreichbar<\/figcaption><\/figure>\n<\/div>\n<p>Ob die zu WSL geh\u00f6renden VMs laufen und welche Ressourcen sie belegen, ist im Task-Manager anhand des Prozesses <strong>WmmemWSL<\/strong> ersichtlich:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/Taskmgr_SKGFGsajIP.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"161\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/Taskmgr_SKGFGsajIP-1024x161.png\" alt=\"\" class=\"wp-image-10069\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/Taskmgr_SKGFGsajIP-1024x161.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/Taskmgr_SKGFGsajIP-300x47.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/Taskmgr_SKGFGsajIP-768x121.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/Taskmgr_SKGFGsajIP.png 1042w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>Den Timeout und einige andere erweiterte Einstellungen lassen sich <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/wsl-config\" data-type=\"URL\" data-id=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/wsl-config\" target=\"_blank\" rel=\"nofollow\">in zwei Konfigurationsdateien<\/a> (<strong>wsl.conf<\/strong> und <strong>.wslconfig<\/strong>) wahlweise systemweit oder pro Instanz (VM) anpassen.<\/p>\n<h3 class=\"wp-block-heading\">Manuelle Installation (f\u00fcr \u00e4ltere Windows-Versionen)<\/h3>\n<p>Mittlerweile hat Microsoft die Installation vereinfacht. Bei \u00e4lteren Versionen sollte an dieser Stelle aber vorerst die M\u00f6glichkeit eines Upgrades gepr\u00fcft werden: Windows 10 2004 ist immerhin <a href=\"https:\/\/learn.microsoft.com\/en-us\/lifecycle\/products\/windows-10-home-and-pro\" data-type=\"URL\" data-id=\"https:\/\/learn.microsoft.com\/en-us\/lifecycle\/products\/windows-10-home-and-pro\" target=\"_blank\" rel=\"nofollow\">bereits seit Ende 2021 aus dem Support<\/a>. Auf \u00e4lteren Versionen oder wenn die vorherigen Varianten Probleme bereiten, kann man die von Microsoft mittlerweile ein St\u00fcck weit automatisierte und damit vereinfachte Installation <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/install-manual\" target=\"_blank\" rel=\"nofollow\">auch h\u00e4ndisch durchf\u00fchren<\/a>. WSL ist eine Windows-Funktion und kann wahlweise \u00fcber die GUI oder den ersten Befehl (als Administrator). Der Zweite aktiviert die bereitgestellte Virtualisierungsfunktionalit\u00e4t, welche ausschlie\u00dflich f\u00fcr WSL 2 notwendig ist.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ndism.exe \/online \/enable-feature \/featurename:Microsoft-Windows-Subsystem-Linux \/all \/norestart\n# Nur fuer WSL V2\ndism.exe \/online \/enable-feature \/featurename:VirtualMachinePlatform \/all \/norestart\n<\/pre>\n<\/div>\n<p>Alternativ kann die PowerShell genutzt werden, wobei der DISM-Aufruf auch dort funktionieren sollte:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -All\nEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All\n<\/pre>\n<\/div>\n<h3 class=\"wp-block-heading\">Erste GNU\/Linux Distribution installieren<\/h3>\n<p>Man sollte sich zun\u00e4chst f\u00fcr eine der beiden Versionen entscheiden, f\u00fcr viele d\u00fcrfte WSL 2 mehr Sinn machen &#8211; sie ist mittlerweile auch Standard. Da dies je nach der Windows-Version variiert, macht es Sinn, diese explizit zu setzen.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nwsl --set-default-version 2\n<\/pre>\n<\/div>\n<p>W\u00e4hrend man in WSL V1 eher von einer Umgebung sprechen kann, die einer GNU\/Linux Distribution wie Ubuntu \u00e4hnelt, bekommt man in V2 zwar eine Echte. Doch durch die starken Anpassungen l\u00e4uft nicht jedes GNU\/Linux, wie man es von vollwertigen VMs her kennt: Microsoft muss auch die Distribution anpassen. <\/p>\n<p>Bei der obigen Einstellung geht es nur um den Standard. Eine M\u00f6glichkeit, die Version beim Erzeugen anzulegen, fehlt jedoch bislang. Die den Umst\u00e4nden entsprechend beste M\u00f6glichkeit f\u00fcr einen Versionswechsel ist daher, die neue Version als Standard zu setzen. Anschlie\u00dfend die Instanz zu erzeugen und dann den Standard wieder zur\u00fcck auf die vorherige. Bereits erstellte Instanzen lassen sich bei Bedarf zwischen V1 und V2 konvertieren:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/WindowsTerminal_GaL8jBrEIT.png\"><img loading=\"lazy\" decoding=\"async\" width=\"986\" height=\"432\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/WindowsTerminal_GaL8jBrEIT.png\" alt=\"\" class=\"wp-image-10094\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/WindowsTerminal_GaL8jBrEIT.png 986w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/WindowsTerminal_GaL8jBrEIT-300x131.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/01\/WindowsTerminal_GaL8jBrEIT-768x336.png 768w\" sizes=\"auto, (max-width: 986px) 100vw, 986px\" \/><\/a><\/figure>\n<\/div>\n<h3 class=\"wp-block-heading\">Weiterf\u00fchrende Infos<\/h3>\n<ul class=\"wp-block-list\">\n<li>WSL \u00c4nderungsprotokoll: https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/release-notes<\/li>\n<li>Erweiterte WSL-Konfiguration: https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/wsl-config<\/li>\n<li>Microsofts Ende des Lebenszyklus f\u00fcr Windows\r\nWindows 10: https:\/\/learn.microsoft.com\/en-us\/lifecycle\/products\/windows-10-home-and-pro\r\nWindows 11: https:\/\/learn.microsoft.com\/en-us\/lifecycle\/products\/windows-11-home-and-pro<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Das Windows Subsystem f\u00fcr Linux ist Microsofts Antwort auf die hohe Nachfrage nach GNU\/Linux. W\u00e4hrend diese auf dem Desktop vor allem unter Privatnutzern noch nicht angekommen ist, sieht das bei Entwicklern ganz anders aus: Die Stackoverflow-Umfrage wird j\u00e4hrlich unter zehntausenden IT-Affinen Personen durchgef\u00fchrt. Mehrheitlich handelt es sich dabei um Softwareentwickler, doch es sind auch andere &#8230;<\/p>\n","protected":false},"author":5,"featured_media":10213,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[91],"tags":[],"class_list":["post-10055","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-windows"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/10055","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=10055"}],"version-history":[{"count":30,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/10055\/revisions"}],"predecessor-version":[{"id":10214,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/10055\/revisions\/10214"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/10213"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=10055"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=10055"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=10055"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}