{"id":2011,"date":"2022-12-01T20:00:49","date_gmt":"2022-12-01T19:00:49","guid":{"rendered":"https:\/\/informatik.htwk-leipzig.de\/seminar\/?p=2011"},"modified":"2023-01-01T14:30:50","modified_gmt":"2023-01-01T13:30:50","slug":"windows-subsystem-fuer-linux","status":"publish","type":"post","link":"https:\/\/informatik.htwk-leipzig.de\/seminar\/lehrveranstaltungen\/betriebliche-informationssysteme\/2022\/windows-subsystem-fuer-linux\/","title":{"rendered":"Windows-Subsystem f\u00fcr Linux"},"content":{"rendered":"<h1>Bedeutung des Windows-Subsystem f\u00fcr Linux<\/h1>\n<h2>1. Einleitung<\/h2>\n<p>Das Windows Live Subsystem for Linux (WSL) ist eine Erweiterung von Microsoft, die das Ausf\u00fchren von Linux-Scripten und Anwendungen in Windows erm\u00f6glicht. Dadurch kann w\u00e4hrend der Arbeit an einem Projekt zwischen den Tools und M\u00f6glichkeiten von Linux und Windows gewechselt werden. Damit wird erm\u00f6glicht Windows f\u00fcr den Einsatz bei der Entwicklung von Cross-Plattform Anwendungen einzusetzen. Das WSL ist besonders f\u00fcr Entwickler interessant, da die Ausf\u00fchrung haupts\u00e4chlich f\u00fcr Kommandozeilen Verarbeitung optimiert ist.<\/p>\n<h2>Grundlagen und Abgrenzung<\/h2>\n<p>Das WSL unter Windows nutzt die Virtualisierungstechnologie Hyper-V.<br \/>\n<strong><br \/>\nVirtualisierung<br \/>\n<\/strong>Die Virtualisierung allgemein beschreibt die Abstraktion physischer Hardware oder Software. So erm\u00f6glicht diese verschiedene Komponenten eines IT-Systems virtuell auf einem Hostsystem abzubilden. Die Virtualisierung wird in drei verschiedene Kategorien gruppiert, Hardware-, Software- und Netzwerk-Virtualisierung. Die Aufteilung in virtuelle Maschinen erm\u00f6glicht es, mehrere Gastsysteme auf einer physischen Maschine zu betreiben. Netzwerke k\u00f6nnen ebenfalls virtuell aufgebaut werden, um eine Kommunikation zwischen den einzelnen Systemen herzustellen.<br \/>\nDie physische Hardware, auch Hostsystem genannt, auf welchem die Software ausgef\u00fchrt wird, bildet die Grundlage f\u00fcr eine Virtualisierungsumgebung. Die virtuelle Maschine wird auch als Gastsystem bezeichnet, diese wird durch die Virtualisierungssoftware bereitgestellt.<\/p>\n<p><strong>Containervirtualisierung<br \/>\n<\/strong>\u00a0Im Vergleich zur soeben beschriebenen Virtualisierung, ist ein Betrieb der Containervirtualisierung mit weniger Ressourcen realisierbar. Im Gegensatz wird bei virtuellen Maschinen wie VirtualBox oder Hyper-V, vollst\u00e4ndige Betriebssysteme mit fest zugeordneten Ressourcen und eigener grafischer Oberfl\u00e4che ausgef\u00fchrt werden.<br \/>\nBei Containerdiensten wie Docker oder Podman wird ein isolierter Bereich im Hostsystem genutzt. Dadurch werden weniger Ressourcen ben\u00f6tigt, aber die Container sind auf den Kernel des Hostsystems beschr\u00e4nkt. Der genannte Vorteil von Containern kann aber auch Nachteile darstellen. So k\u00f6nnen Softwareinkompatibilit\u00e4t und Sicherheitsl\u00fccken entstehen. Die fehlende Isolierung zum Host-Betriebssystem stellt dann einen Angriffsvektor dar.<\/p>\n<p><strong>Hypervisor<\/strong><\/p>\n<p>Die Managementsoftware f\u00fcr virtuelle Maschinen wird Hypervisor genannt. In der Software k\u00f6nnen verschiedene virtuelle Maschinen erstellt und verwaltet werden. Also L\u00f6sungen daf\u00fcr existiert in Linux die KVM (Kernel-based Virtual Machine) und als Microsoft Derivat unter Windows Hyper-V. Hyper-V ist die im Windows-Kernel integrierte Virtualisierungsl\u00f6sung. Diese Virtualisierungsl\u00f6sungen sind vom Typ 1, was bedeutet, dass sie auf Kernel Ebene ausgef\u00fchrt werden. Als Typ 2 werden Virtualisierungsl\u00f6sungen bezeichnet, die auf Nutzer-Ebene ausgef\u00fchrt werden. Der Unterschied zwischen den beiden Typen ist, dass Typ 2 nur Treiber aus der Kernelebene laden, um ausgef\u00fchrt zu werden. Softwarel\u00f6sungen wie VirtualBox oder VMWare sind Beispiele f\u00fcr Typ 2.<\/p>\n<h3>Architektur &#8211; Version 1 &amp; 2<\/h3>\n<p>Das WSL ist eine Windowskomponente und wurde mit der Windows 10 Version 1607 ausgeliefert.<br \/>\nMit der neuen Version zwei der WSL, basiert diese auf einem Linux Kernel, integriert in den Windows NT Kernel.<br \/>\nErstmalig wurde die zweite Version mit der Windows 10 Version 2004 ver\u00f6ffentlicht.<\/p>\n<ul>\n<li>WSL 1:<br \/>\nDie erste Version der WSL (Windows-Subsystem for Linux) basiert auf einer bin\u00e4ren \u00dcbersetzungsschicht. Linux Anwendungen der WSL1 werden in Pico Prozessen, kleine virtuelle Bereiche im Nutzerbereich, ausgef\u00fchrt. Der LxCore.sys Provider simuliert die Linux Umgebung im virtuellen Bereich und \u00fcberf\u00fchrt die Linux Systemaufrufe. Diese Pico Prozesse und \u00dcbersetzung sind sehr ressourcenschonend und erm\u00f6glichen eine schnelle Ausf\u00fchrung. Zudem k\u00f6nnen sie genutzt werden, um diverse Betriebssysteme zu simulieren. Microsoft hat bereits dieses Verfahren genutzt, um Legacy Anwendungen unter Windows 10 IoT auszuf\u00fchren oder den MS SQL Server unter Linux zu betreiben. Der LxssManager ist f\u00fcr die Verwaltung der WSL1 verantwortlich. Als Dienstleister f\u00fcr den LxCore leitet er die Systemaufrufe an den LxCore weiter, zeichnet Laufzeitinformationen auf und stellt die Integrit\u00e4t der WSL Distribution sicher. Der Ansatz dieser Systemcall \u00dcbersetzung zwischen Linux und Windows ist eine logische Schlussfolgerung gewesen, da der Windows NT und Linux Kernel \u00e4hnlich aufgebaut sind. Beide waren anfangs designt, um mit dem POSIX Standard kompatibel zu sein. Daf\u00fcr bieten beide unterschiedliche Ausf\u00fchrungsvarianten durch einen privilegierten Kernelmodus und einen unprivilegierten Benutzermodus. Unabh\u00e4ngig davon, dass die Linux- und Windows Kernelarchitektur durch konkrete Implementierungsunterschiede voneinander abweichen, basieren beide auf der Operationssystemtheorie der 90er Jahre.<\/p>\n<figure><figcaption>\n<figure id=\"attachment_2013\" aria-describedby=\"caption-attachment-2013\" style=\"width: 345px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/wsl-1-archi.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2013 size-full\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/wsl-1-archi.jpg\" alt=\"WSL1 Architektur\" width=\"345\" height=\"382\" \/><\/a><figcaption id=\"caption-attachment-2013\" class=\"wp-caption-text\">WSL1 Architektur<\/figcaption><\/figure>\n<\/figcaption><\/figure>\n<\/li>\n<li>WSL 2:<br \/>\nIm Windows Subsystem for Linux 2 implementiert Microsoft einen vollst\u00e4ndigen Linux Kernel. Die Herausforderung war alle m\u00f6glichen Systemaufrufe Linux zu \u00fcbersetzen. Dieser Kernel l\u00e4uft in einer leichtgewichtigen Virtualisierungsplattform, basierend auf Hyper-V. Vorteil dieser L\u00f6sung ist, dass es keiner \u00dcbersetzung der Systemaufrufe mehr bedarf. Somit ist das Ausf\u00fchren von Linux-Anwendungen ohne Anpassung der Systemaufrufe m\u00f6glich.<\/li>\n<\/ul>\n<figure>\n<p><figure id=\"attachment_2016\" aria-describedby=\"caption-attachment-2016\" style=\"width: 1286px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/wsl-2-archi.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2016 size-full\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/wsl-2-archi.jpg\" alt=\"WSL2 Architektur\" width=\"1286\" height=\"741\" \/><\/a><figcaption id=\"caption-attachment-2016\" class=\"wp-caption-text\">WSL2 Architektur<\/figcaption><\/figure><\/figure>\n<p>&nbsp;<\/p>\n<h2>Installation und Benutzung<\/h2>\n<p><a href=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/bpmn1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2499 size-full\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/bpmn1.jpg\" alt=\"\" width=\"2186\" height=\"421\" \/><\/a><\/p>\n<p>F\u00fcr die Installation der WSL gibt es zwei grundlegende M\u00f6glichkeiten. Die unterschiedlichen verf\u00fcgbaren Linuxdistributionen k\u00f6nnen entweder \u00fcber den Microsoft Store oder mithilfe der PowerShell installiert werden. Beide Wege werden in diesem Blog kurz beschrieben. Dabei bietet die Verwendung der PowerShell die M\u00f6glichkeit, erweiterte Konfigurationen vorzunehmen. Insbesondere ist hier zu nennen, dass \u00fcber die PowerShell zwischen der WSL1 und WSL2 gewechselt werden kann. Bei der Verwendung von \u00e4lteren Windows-Builds kann es sein, dass die hier beschriebenen Methoden nicht funktionieren. In den meisten F\u00e4llen l\u00e4sst sich das WSL dann dennoch mithilfe der PowerShell installieren. Die daf\u00fcr notwendige Anleitung ist f\u00fcr diesen Blog zu lang, kann <a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/install-manual\">hier<\/a> eingesehen werden.<\/p>\n<h3>Installation \u00fcber den Store<\/h3>\n<p>1. Wenn bisher noch keine Distribution verwendet wurde, muss zun\u00e4chst das Windows-Feature WSL aktiviert werden.<br \/>\n2. Daf\u00fcr zun\u00e4chst die Systemsteuerung \u00f6ffnen und den Punkt &#8222;Programme&#8220; ausw\u00e4hlen.<br \/>\n3. Dann unter &#8222;Programme und Features&#8220; den Punkt Windows-Features aktivieren oder deaktivieren ausw\u00e4hlen (Daf\u00fcr werden<br \/>\nAdministratorrechte ben\u00f6tigt).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2018\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/3.jpg\" alt=\"\" width=\"641\" height=\"272\" \/><br \/>\n4. In dem neuen Fenster ganz nach unten scrollen und dort, falls nicht vorhanden, den Haken bei &#8222;Windows-Subsystem f\u00fcr<br \/>\nLinux&#8220; setzen. Danach muss der Rechner neu gestartet werden.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2019\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/5.jpg\" alt=\"\" width=\"552\" height=\"491\" \/><br \/>\n5. Nach dem Neustart, den Microsoft Store \u00f6ffnen, nach der gew\u00fcnschten Distribution suchen und installieren.<br \/>\n6. Nach der Installation kann diese ge\u00f6ffnet werden (Daf\u00fcr einfach die App ausf\u00fchren, die den gleichen Namen wie die<br \/>\nDistribution hat).<br \/>\n7. Beim erstmaligen \u00d6ffnen muss zun\u00e4chst einen Moment gewartet werden, bis die Einrichtung abgeschlossen ist und<br \/>\nanschlie\u00dfend ein Benutzername und ein Passwort vergeben werden.<\/p>\n<h3>Installation \u00fcber die PowerShell<\/h3>\n<p>1. Zun\u00e4chst muss eine Powershell mit erh\u00f6hten Rechten (Ausf\u00fchren als Administrator) ge\u00f6ffnet werden.<br \/>\n2. In dieser kann mithilfe des Befehls\u00a0 <code>wsl --list --online<\/code><br \/>\neine Liste aller aktuell verf\u00fcgbaren Distributionen aufgerufen werden.<br \/>\n<a href=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2020 size-full\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/1.jpg\" alt=\"\" width=\"2557\" height=\"1380\" \/><\/a><br \/>\n3. \u00dcber den Befehl\u00a0<i> <code>wsl --list -d &lt;distribution-name&gt;<\/code><\/i> kann die entsprechende Distribution installiert werden. Anschlie\u00dfend muss der Rechner neugestartet werden.<br \/>\n4. Nach dem Neustart vervollst\u00e4ndig sich das Setup automatisch, und es kann direkt ein neues Benutzerkonto angelegt werden.<\/p>\n<p>Nach der Installation kann f\u00fcr jede einzelne Distribution festgelegt werden, welche Version des WSL genutzt werden soll um sie auszuf\u00fchren. Daf\u00fcr kann der Befehl<\/p>\n<p><i> <code>wsl --set-version &lt;distribution-name&gt; &lt;versionNumber&gt;<\/code><\/i><\/p>\n<p>verwendet werden. Am Ende beider Einrichtungen sollte das Subsystem im Terminal wie in folgender Abbildung angezeigt werden:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2117 size-full\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/4.jpg\" alt=\"\" width=\"1103\" height=\"636\" \/><br \/>\nIn beiden F\u00e4llen ist die Installation innerhalb weniger Minuten erledigt. Wichtig ist, dass beide Wege Administratorrechte ben\u00f6tigen. Zudem wird eventuell Zugang zum BIOS ben\u00f6tigt, da (zumindest bei Verwendung der WSL2) die Virtualisierung aktiviert werden muss. Diese Voraussetzung sollten, insbesondere bei geplanter Installation auf Unternehmens \/ Organisationsger\u00e4ten.<\/p>\n<h3>Benutzung<\/h3>\n<p>Einmal installiert f\u00fchlt sich das WSL zun\u00e4chst an, wie ein Linux auf das per SSH zugegriffen wird, eine einfache Konsole, nichts weiter. In dem Tool steckt jedoch einiges mehr. Zun\u00e4chst einmal ist die Terminal Ansicht nicht die einzige m\u00f6gliche Ansicht. Denn auch wenn das WSL zun\u00e4chst einmal nur ein Terminal ist und keinen klassichen Desktop bereitstellt, lassen sich dennoch einige Anwendung nicht nur im Terminal, sondern auch mit einer GUI starten. Dies funktioniert jedoch ausschlie\u00dflich mit Distributionen, die mit der WSL2 Version laufen. Unter diesen Vorraussetzung k\u00f6nnen entsprechende Apps, wie beispielsweise Gimp, Firefox, Gedit, die <a href=\"https:\/\/www.x.org\/wiki\/UserDocumentation\/GettingStarted\/\">X11-Apps<\/a> und einige weitere Apps mit einer GUI ausgef\u00fchrt werden.<\/p>\n<p>Insbesondere auch im Vergleich zur klassischen VM, ist der Austausch von Daten mit dem Hostsystem sehr einfach. Daf\u00fcr gibt es zwei einfache Wege. Innerhalb des Hostsystems ist die Ordnerstruktur der Distribution direkt im Windowsexplorer zu finden. Bei Installation wurde im linken Men\u00fc der neue Eintrag <i>Linux<\/i> angelegt, unterhalb dessen die einzelnen Installationen als Ordner nutzbar sind.<\/p>\n<p><a href=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/folder_structure.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2022 size-full\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/folder_structure.png\" alt=\"\" width=\"1313\" height=\"1051\" \/><\/a><br \/>\nAber auch aus der WSL selbst kann einfach auf die Daten aus dem Hostsystem zugegriffen werden. Daf\u00fcr navigiert man in<br \/>\ndas \/mnt\/ Verzeichnis und findet dort alle Festplatten und darunterliegende Ordnerstrukturen.<\/p>\n<p>Ein Nachteil der klassischen VMs bleibt auch bei der Nutzung des WSL bestehen: die Nutzung von USB-Ger\u00e4ten innerhalb der<br \/>\nWSL nicht propriet\u00e4r unterst\u00fctzt und f\u00fchrt so \u00e4hnlich wie bei klassischen VMs potenziell zu Problemen.<br \/>\nDadurch geht eine einfache Testbarkeit von neuer Hardware verloren, so k\u00f6nnen z.B. verschiedene Mikrocontroller nicht<br \/>\neinfach programmiert werden. Dennoch gibt es auch hier <a href=\"https:\/\/devblogs.microsoft.com\/commandline\/connecting-usb-devices-to-wsl\/\">L\u00f6sungen aus der Community<\/a>.<\/p>\n<p>Es gibt jedoch noch eine weitere, sehr spannende M\u00f6glichkeit, das WSL einzusetzen. Durch sie ist es auch m\u00f6glich, einzelne Linux Befehle direkt in der PowerShell auszuf\u00fchren. Dadurch steht man nicht mehr vor dem Problem, dass einem bestimmte, aus Linux bekannte, Befehle unter Windows fehlen. Au\u00dferdem kann das WSL auf diesem Weg noch nahtloser in den Workflow integriert werden, da Anwendungen auch direkt aus der PowerShell f\u00fcr Linux kompiliert und getestet werden k\u00f6nnen. Um dieses Feature zu nutzen, muss in einem PowerShell-Fenster nur <code>wsl<\/code> eingegeben werden, direkt dahinter kann ein beliebiger Befehl der Linuxshell geschrieben werden. Dieser wird dann im aktuellen Verzeichnis ausgef\u00fchrt. F\u00fcr den ersten Befehl kann eine geringe Verz\u00f6gerung auftreten, da die entsprechenden Dienste zun\u00e4chst gestartet werden m\u00fcssen. Wenn diese jedoch erst einmal gestartet sind, ist ein nahezu verz\u00f6gerungsfreies arbeiten mit dem WSL arbeiten.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2027\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/wsloverps.jpg\" alt=\"\" width=\"1242\" height=\"240\" \/>s<br \/>\nAuf diesem Weg is es beispielsweise auch m\u00f6glich, Datentr\u00e4ger, die mit einem Linux File System arbeiten, unter Windows zu lesen.<\/p>\n<p>\u00c4hnlich wie bei klassischen VMs ist es auch bei den einzelnen WSL Instanzen sehr einfach m\u00f6glich, Sicherungen von diese zu einem bestimmten Zeitpunkt zu erstellen. Daf\u00fcr bringt das WSL einen Import\/Export Mechanismus mit. Soll eine Sicherung erstellt werden, muss in einer PowerShell der Export Befehl ausgef\u00fchrt werden:<br \/>\n<code><br \/>\n<i>wsl --export &lt;Distribution Name&gt; &lt;Backupname.tar&gt;<\/i><br \/>\n<\/code><br \/>\nDie so erzeugte Sicherung (Tar-Archiv) kann zu einen sp\u00e4teren Zeitpunkt wieder importiert werden:<br \/>\n<code><br \/>\n<i>wsl --import &lt;Distribution Name&gt; &lt;WSLInstallLocation&gt;<br \/>\n&lt;PathToBackup\\Backupname.tar&gt;<\/i><br \/>\n<\/code><br \/>\nM\u00f6chte man eine tats\u00e4chliche Wiederherstellung auf den gleichen Namen vornehmen, muss der Nutzer die alte Version zun\u00e4chst ausgetragen und anschlie\u00dfend die Sicherung auf den gleichen Distributionsnamen importieren. Genauso gut kann die Sicherung jedoch auch auf jeden anderen beliebigen Rechner importiert werden, der das WSL installiert hat. Dadurch ist es beispielsweise auch m\u00f6glich, eine Distribution zu konfigurieren und dann auf viele weitere Rechner zu verteilen.<\/p>\n<h2>Anwendungsf\u00e4lle<\/h2>\n<p>Windows Subsystem for Linux wurde in erster Linie f\u00fcr Softwareentwickler als Zielgruppe entwickelt. Das Ziel hierbei<br \/>\nist die Entwicklung unter, und f\u00fcr, Linux zu erm\u00f6glichen. Gleichzeitig k\u00f6nnen durch WSL Linux-spezifische Werkzeuge, wie<br \/>\nbspw. <i>sed<\/i> und <i>awk<\/i> verwendet werden, sowie Programmiersprachen, die unter Linux vorrangig unterst\u00fctzt<br \/>\nwerden, wie bspw. Ruby oder Python.<\/p>\n<h2>Vorteile<\/h2>\n<p>Aktuell dominiert Linux den Marktanteil an Betriebssystemen, die f\u00fcr Server genutzt werden. Die Zahl der aus dem Internet erreichbaren Server, welche <q>Unix<\/q> oder <q>Unix-\u00e4hnliche<\/q> Betriebssysteme nutzen, betr\u00e4gt 80.1 % (Stand 2022). Ein wesentlicher Vorteil in der Softwareentwicklung ist damit die Angleichung der Entwicklungs- und Produktivumgebung, soweit beide Linux nutzen. Probleme, welche nur auf einem bestimmten Betriebssystem auftreten und auf einem anderen nicht reproduzierbar sind, k\u00f6nnen dadurch leichter gefunden und besser verhindert werden.<br \/>\nMicrosoft selbst unterst\u00fctzt die Nutzung von WSL in der Entwicklung in ihrem Quellcode-Editor <q>Visual Studio Code<\/q>. Dort l\u00e4sst sich mittels der Erweiterung <q>ms-vscode-remote.remote-wsl<\/q> Quellcode direkt aus dem Editor heraus in einer Linux Umgebung unter WSL ausf\u00fchren. Hierbei wird eine persistente Verbindung zu einer WSL Instanz auf dem System hergestellt. Alle unter Linux installierten Programme und Werkzeuge k\u00f6nnen anschlie\u00dfend \u00fcber die eingebaute Kommandozeile aufgerufen werden. Aber auch Funktionen der Entwicklungsumgebung wie die Verwendung eines Debuggers f\u00fcr das Setzen von <q>breakpoints<\/q> (zu dt. <q>Haltepunkten<\/q>) werden unterst\u00fctzt.<\/p>\n<p>Ein weiterer Vorteil ist die Einfachheit und Verf\u00fcgbarkeit. WSL ist bereits in Windows integriert und kann in wenigen Schritten aktiviert werden. Eine Virtualisierung \u00fcber Drittsoftware, wie bspw. mit Oracle VM VirtualBox oder VMware, setzt eine zus\u00e4tzliche Installation und Konfiguration voraus. Hinzu kommen Lizenzgeb\u00fchren f\u00fcr Support und zus\u00e4tzliche Funktionen. WSL hingegen wird direkt von Microsoft entwickelt und steht unter Windows 10 und 11 kostenlos zur Verf\u00fcgung.<\/p>\n<p>Im Hinblick auf die Performance bietet WSL 2 einen weiteren Vorteil. Da es sich dabei um einen Hypervisor vom Typ 1 handelt, ist diese besser als bei der bereits erw\u00e4hnten Drittsoftware, welche innerhalb der Softwareschicht des Betriebssystems l\u00e4uft und somit vom Hypervisor Typ 2 ist. Da WSL 2 speziell f\u00fcr die Virtualisierung von Linux entwickelt und optimiert wurde, sollte im Optimalfall sollte die Performance gleich oder besser sein als unter Verwendung von Microsoft Hyper-V als Hypervisor vom Typ 1. Eindeutige und aussagekr\u00e4ftige Benchmarks hierzu gibt es<br \/>\njedoch noch keine.<\/p>\n<h2>Nachteile<\/h2>\n<p>Die Integration von WSL bei der Softwareentwicklung im Hinblick auf die Editoren, welche von Microsoft selbst stammen, wie Visual Studio und Visual Studio Code, ist unkompliziert. Die Verwendung anderer Editoren und <q>Integrated development environments<\/q> (IDE, zu dt. <q>integrierte Entwicklungsumgebung<\/q>) ist jedoch gegebenenfalls nicht<br \/>\nohne Anpassungen m\u00f6glich. F\u00fcr die Verwendung von <q>IntelliJ IDEA<\/q>, einer IDE f\u00fcr die Programmiersprachen Java und Kotlin, ist der Nutzer f\u00fcr das Debugging und den Zugriff auf eine ausgef\u00fchrte Anwendung in der WSL, auf Anpassungen bspw. eine Anpassung der Firewall unter Windows notwendig.<\/p>\n<p>Ein weiterer Nachteil ist die Virtualisierung selbst. Im Gegensatz zu einer Installation von Linux auf einer separaten Partition oder einem anderen Speicher sind hierbei kein wahrer <q>low-level access<\/q> (zu dt. <q>Zugriff auf niederer Ebene<\/q>) m\u00f6glich. Grafische Benutzeroberfl\u00e4chen beispielsweise laufen nur \u00fcber einen virtualisierten Grafikprozessor. F\u00fcr die Sicherung der Linux Dateien werden <q>Virtual Hard Disk (VHD)<\/q>(zu dt. <q>virtuelle Festplatte<\/q>) verwendet. Ein wesentlicher Vorteil von WSL ist die Interoperabilit\u00e4t von Windows und Linux. Das <q>Plan 9 Filesystem Protocol<\/q> (9P) spielt dabei die Rolle als Mittelsmann zwischen den verschiedenen Dateisystemen der Betriebssysteme, was f\u00fcr zus\u00e4tzliche Komplexit\u00e4t sorgt, die jedoch f\u00fcr diesen Zweck erforderlich ist.<br \/>\nEine weitere Besonderheit, die mit WSL 2 eingef\u00fchrt wurde, ist die Benutzung eines modifizierten Kernels, welcher auf der <q>Long-term support<\/q> (LTS, zu dt. <q>Langzeitsupport<\/q>) Version des Linux Kernels basiert. Features aus dem <q>stable<\/q> (zu dt. <q>stabilem<\/q>) Zweig des Kernels m\u00fcssen hierbei erst in die LTS Version Einzug finden, um anschlie\u00dfend in den modifizierten Kernel von WSL 2 hinzugef\u00fcgt werden.<\/p>\n<h2>Alternativen<\/h2>\n<p><b>Microsoft Hyper-V<\/b><br \/>\nist ein von Microsoft selbst entwickeltes Produkt zur Virtualisierung von Betriebssystemen. Es ist mit Windows 10 unter den Lizenzen <q>Pro<\/q>, <q>Enterprise<\/q> und <q>Education<\/q> verf\u00fcgbar. Es erm\u00f6glicht Hardware-Virtualisierung und l\u00e4uft nicht unter dem Betriebssystem Windows selbst und kann daher als Hypervisor Typ 1 bezeichnet werden. Eine wichtige Besonderheit ist, dass sowohl das Host-System als auch die virtualisierten Systeme hierbei auf einer Virtualisierungsebene von Hyper-V laufen. Das Host-System hat hierbei jedoch direkten Zugriff auf die Hardware, alle anderen Systeme nutzen virtuelle Festplatten, virtuelle <q>switches<\/q>, etc.<\/p>\n<p><b>Native Linux Installation<\/b><br \/>\nbeschreibt die Installation einer Linux Distribution auf einem Speichermedium oder einer Partition. Durch die best\u00e4ndige Erweiterung des Linux Kernels und den darin enthaltenen Treibern kann Linux mit fast s\u00e4mtlicher Hardware betrieben werden. Durch Modifikationen des Kernels und angepassten Distribution ist sogar ein Betrieb in eingebetteten Systemen mit minimaler Hardware m\u00f6glich, so z.B. in <q>Internet of Things<\/q>(IOT, zu dt. <q>Internet der Dinge<\/q>) Ger\u00e4ten.<\/p>\n<p><b>Drittsoftware<\/b><br \/>\nBei Drittanbietersoftware kann f\u00fcr die Virtualisierung auf der Softwareschicht des Betriebssystems genutzt werden. Diese Technologie wird auch als Hypervisor Typ 2 bezeichnet. Zu den gr\u00f6\u00dften Herstellern nach Marktanteil in diesem IT-Sektor z\u00e4hlen VMware, Citrix Systems und Oracle. Virtuelle Maschinen werden \u00fcber die entsprechende Software erstellt, konfiguriert und gestartet. Zus\u00e4tzlich bietet diese meist zus\u00e4tzliche Funktionen, wie beispielsweise die Erstellung von <q>snapshots<\/q> (zu dt. <q>Schnappsch\u00fcssen<\/q>), um den aktuellen Zustand der virtuellen Maschine zu speichern.<\/p>\n<h1>Quellen<\/h1>\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/cmdline\/wsl-architectural-overview\">WSL<br \/>\narchitectural overview, Article 05\/31\/2018<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/images\/windows-linux-dev-env.png\">Beitragsbild WSL<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/compare-versions\">Vergleich zwischen WSL 1 und WSL 2,<br \/>\nArtikel 09.11.2022<\/a><\/li>\n<li><a href=\"https:\/\/link.springer.com\/book\/10.1007\/978-1-4842-6873-5\">Barnes, Hayden. Pro Windows Subsystem for<br \/>\nLinux (WSL). Apress, 2021.<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/faq\">Frequently Asked Questions about Windows<br \/>\nSubsystem for Linux<\/a><\/li>\n<li><a href=\"https:\/\/www.opensourceforu.com\/2021\/03\/the-advantages-of-using-wsl-for-developing-linux-applications-on-windows-systems\/\">The<br \/>\nAdvantages of Using WSL for Developing Linux Applications on Windows Systems<\/a><\/li>\n<li><a href=\"https:\/\/code.visualstudio.com\/docs\/remote\/wsl-tutorial\">Remote development in WSL<\/a><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/commandline\/whats-new-for-wsl-in-windows-10-version-1903\/\">What&#8217;s<br \/>\nnew for WSL in Windows 10 version 1903?<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/install\">nstallieren von Linux unter Windows mit WSL<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/install\">Installieren von Linux unter Windows mit WSL<\/a><\/li>\n<li><a href=\"https:\/\/www.jetbrains.com\/help\/idea\/how-to-use-wsl-development-environment-in-product.html#debugging_system_settings\">WSL<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/tutorials\/gui-apps\">Installieren der Unterst\u00fctzung f\u00fcr<br \/>\nLinux-GUI-Apps<\/a><\/li>\n<li><a href=\"https:\/\/www.hostwinds.de\/tutorials\/how-to-use-the-windows-subsystem-for-linux-wsl\">So verwenden Sie das<br \/>\nWindows -Subsystem f\u00fcr Linux (WSL)<\/a><\/li>\n<li><a href=\"https:\/\/9p.io\/wiki\/plan9\/plan_9_wiki\/\">Plan 9 Wiki<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/virtualization\/hyper-v-on-windows\/about\/\">Introduction to Hyper-V on<br \/>\nWindows 10<\/a><\/li>\n<li><a href=\"https:\/\/ubuntu.com\/core\">The operating system optimised for IoT and Edge<\/a><\/li>\n<li><a href=\"https:\/\/www.mordorintelligence.com\/industry-reports\/virtualization-software-market\">Virtualization<br \/>\nSoftware Market &#8211; Growth, Trends, COVID-19 Impact, and Forecasts (2022 &#8211; 2027)<\/a><\/li>\n<li><a href=\"https:\/\/www.hosteurope.de\/blog\/containervirtualisierung-von-anwendungen-als-effektive-ergaenzung-zu-virtuellen-maschinen\/\">Containervirtualisierung<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/WSL2-Linux-Kernel\">WSL2 Kernel<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/basic-commands\">Grundlegende Befehle f\u00fcr WSL<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/wsl\/wsl2-mount-disk\">Bereitstellen eines Linux-Datentr\u00e4gers<br \/>\nin WSL 2<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Usage_share_of_operating_systems\">Usage share of operating systems<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Bedeutung des Windows-Subsystem f\u00fcr Linux 1. Einleitung Das Windows Live Subsystem for Linux (WSL) ist eine Erweiterung von Microsoft, die<\/p>\n","protected":false},"author":78,"featured_media":2111,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[9,104,103,101,102,7,100],"class_list":["post-2011","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-betriebliche-informationssysteme","tag-docker","tag-hyper-v","tag-linux","tag-microsoft","tag-subsystem","tag-virtualisierung","tag-wsl"],"_links":{"self":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/2011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/comments?post=2011"}],"version-history":[{"count":13,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/2011\/revisions"}],"predecessor-version":[{"id":2502,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/2011\/revisions\/2502"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/media\/2111"}],"wp:attachment":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/media?parent=2011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/categories?post=2011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/tags?post=2011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}