Windows-Subsystem für Linux

Kompatibilitätsschicht in Windows zum Ausführen von Linux-Programmen

Das Windows-Subsystem für Linux[2] bzw. im englischen Originaltitel Windows Subsystem for Linux, kurz WSL, ist eine in Windows 10 und Nachfolgeversionen integrierte Kompatibilitätsschicht zum Ausführen von Linux-Executables im ELF-Format. Microsoft und Canonical gingen hierzu eine Partnerschaft zu dem Zweck ein, in Windows ein Ubuntu-Image (ursprünglich 14.04 „Trusty Tahr“) herunterladen und installieren zu können. Die in diesem Image enthaltenen Anwendungen können mit WSL – im Gegensatz zum Vorgänger Windows Services for UNIX (SFU) – nativ unter Windows ausgeführt werden.[3][4][5]

Windows-Subsystem für Linux


Bash innerhalb conhost.exe unter Windows 10
Basisdaten

Entwickler Microsoft
Erscheinungsjahr 2016
Aktuelle Version 2.3.26[1]
(10. November 2024[1])
Aktuelle Vorabversion 2.4.5[1]
(3. Dezember 2024[1])
Betriebssystem Windows 10, Windows 11
Kategorie Kompatibilitätsschicht
Lizenz Microsoft EULA, GNU General Public License, Version 2, proprietäre Lizenz
learn.microsoft.com/en-us/windows/wsl/

WSL 1 beinhaltet eine Linux-kompatible Kernelschnittstelle, die von Microsoft entwickelt worden ist, selbst aber keinen Code des Linux-Kernels enthält. Von Ubuntu bereitgestellte ausführbare Dateien laufen im User Mode darauf.[6]

Der Nachfolger WSL 2 setzt stattdessen auf einen Virtualisierungsansatz mittels Hyper-V. Dies bietet neben einer besseren Performance auch eine vollständige Kompatibilität von Systemaufrufen, da hier ein vollständiger Linux-Kernel zum Einsatz kommt.[7] Dies bringt allerdings die üblichen Nachteile eines Typ-1-Hypervisors mit sich. Zum einen die Tatsache, dass das Host-Betriebssystem anschließend selbst virtualisiert läuft (erhöhte Latenzzeiten könnten z. B. Echtzeitanwendungen beeinträchtigen).[8] Zum anderen kann es Probleme geben, anschließend andere Virtualisierungsprodukte parallel zu betreiben.[9]

Am 17. November 2022 veröffentlichte Microsoft die Version 1.0.0 des über den Microsoft Store verfügbaren Software-Pakets für Windows 10 und 11.[10] Diese Versionsnummer hat allerdings nichts mit WSL 1 oder 2 zu tun, denn mit dem Windows-Subsystem für Linux lassen sich beide Varianten nutzen – WSL 2 ist allerdings die Voreinstellung.[11]

Das WSL-1-Subsystem führt nicht alle Linux-Programme aus, davon betroffen sind insbesondere solche, die eine grafische Benutzeroberfläche (GUI) voraussetzen oder Kernelfunktionen nutzen, die von der WSL-Kernelschnittstelle nicht implementiert worden sind.[12] GUI-Programme können aber einen externen X-Server wie beispielsweise VcXsrv oder Xming verwenden.[13] WSL benutzt weniger Ressourcen als eine komplette virtuelle Maschine und dürfte der direkteste Weg sein, Linux-Software auf einem Windows-System laufen lassen zu können. Linux- und Windows-Anwendungen können so beispielsweise in einem Skript nacheinander an den gleichen Dateien Manipulationen vornehmen.[14]

Das Subsystem hat seinen Ursprung im nicht freigegebenen „Project Astoria“, das Android-Anwendungen auf Windows 10 Mobile ermöglichen sollte.[12] WSL wurde mit Windows 10 Insider Preview Build 14316 veröffentlicht.[15]

Windows Subsystem for Linux ist nur auf 64-bit-Versionen von Windows 10 und Nachfolgeversionen verfügbar[14] und kann seit Windows 10 Anniversary Update und neueren Versionen aktiviert werden.

In einem Geschwindigkeitsvergleich mit Windows 10 und nativen Versionen von Ubuntu, Suse, Debian und Intel Clear Linux fanden sich die WSL-Varianten nur wenig hinter den Besten.[16]

Dies wurde für das zukünftige Windows 10-2004 dev 20008 in allen Modi in Relation zu den originalen Linux-Versionen nochmal erheblich verbessert.[17]

WSL wurde nach einer Vorschau-Phase auf Ende 2022 generell freigegeben.[18]

Das neue, mit Windows 10 Insider-Preview Build 18917 Mitte 2019 vorgestellte komplett überarbeitete Subsystem bietet gegenüber WSL 1 wesentliche Vorteile. Neben der hinzugekommenen Unterstützung für Linux-Docker-Images nutzt WSL 2 nun eine Lightweight utility VM getaufte Virtuelle Maschine, die einen einzigen Linux-Kernel nutzt, unter dem dann die einzelnen Linux-Instanzen im User Mode aufsetzen. Der Kernel selbst wird im Rahmen des Windows-10-Update regelmäßig aktualisiert.[19] Mit der neuen VM wurde WSL nicht nur schneller, die Technik startet den Linux-Kernel auch viel schneller, spart zudem Arbeitsspeicher, weil immer nur ein einziger Kernel geladen ist, egal wie viele virtualisierte Linux-Systeme gerade laufen, und wird automatisch wieder deaktiviert, sobald es nicht mehr benötigt wird.[20][21]

WSL 2 ist auf Windows 10 ab Version 1903 verfügbar.[22]

Microsoft entwickelt für WSL 2 Treiber und APIs für OpenGL, OpenCL, CUDA, Vulkan für gute Performance in Verbindung mit der Grafikkarte und dessen Windows-10-Treibern. d3d12 wird als Mesa-3D-Treiber für OpenGL und OpenCL zu der Direct3D 12-API entwickelt. In Mesa 3D 21.0 im Januar 2021 steht OpenGL 3.3 in d3d12 in Mesa zur Verfügung. OpenCL 1.2 ist ebenfalls ein Ziel in d3d12. OpenGL ES 3.1 wird ab Mesa 22.0 mit Windows 10 21H2 unterstützt. Mit Mesa 22.1 wird OpenGL 4.2+ unterstützt. OpenGL 4.3 und 4.4 werden schon zu 90 % unterstützt. Aktueller Status der Entwicklung kann in Mesamatrix eingesehen werden.[23][24]

In Windows 10 21H1 und 21H2 sind hier signifikante Verbesserungen zu erwarten.[25][26][27][28][29]

WSL 2 im Jahr 2020 erreicht mit Windows 10 etwa 87 % in einem ausführlichen Benchmark mit 172 Tests. WSL erreicht wegen der Schwäche bei I/O etwa 2/3 der nativen Linux-Leistung. 39 % der Tests wurden sogar von WSL oder WSL 2 gewonnen.[30] WSL 2 mit Ubuntu erreicht 2021 in einen weiteren Benchmark unter Windows 11 nahezu mit 95 % die Performance von Ubuntu 20.04 LTS.[31]

GUI App Support in WSL2

Bearbeiten

GUI App Support With Windows Subsystem For Linux (WSLg) wird in Version 21H1 als Preview verfügbar sein. Microsoft stellt damit ein eigenes GUI zur Verfügung. Mesa 21.x ist dafür Voraussetzung im dazugehörigen Linux.[32][33]

WSL kann, unabhängig von der Version, in jeder Konsole mit dem Befehl wsl genutzt werden. Das funktioniert sowohl in der (älteren) „Eingabeaufforderung“ (cmd.exe) als auch in der PowerShell. Bei WSL 2 dauert der erste Start einige Sekunden, da im Hintergrund eine virtuelle Maschine mit GNU/Linux gestartet wird; nachfolgende Aufrufe sind daher schneller. Das Windows Terminal ist noch nicht unter allen Windows-Versionen vorinstalliert, erleichtert die Bedienung jedoch beispielsweise durch die Organisation von WSL-Instanzen über Tabs.

Ähnliche Software

Bearbeiten
  • Microsoft Windows Services for UNIX war das inzwischen eingestellte Vorgängerprojekt von WSL.
  • Cygwin ist eine Open-Source POSIX-Emulation für Windows; mit MSYS2 wird Cygwin um die native Unterstützung von Unix-Code unter Windows abgewandelt.
  • Wine ist eine Kompatibilitätsschicht zum Ausführen von Windows-Programmen unter anderem auf Linux.
  • DOS Subsystem for Linux (DSL) ist eine Hommage an WSL; DSL führt unter DOS (MS-DOS und FreeDOS wurden getestet) Linux-Programme aus.[34][35][36]
Bearbeiten

Einzelnachweise

Bearbeiten
  1. a b c d Releases · microsoft/WSL · GitHub. In: github.com. Abgerufen am 16. Dezember 2024 (englisch).
  2. Windows-Subsystem für Linux: Dokumentation. Microsoft, 11. Juli 2016, archiviert vom Original am 28. April 2020; abgerufen am 28. August 2020.
  3. Mike Harsh: Run Bash on Ubuntu on Windows. In: Building Apps for Windows. Microsoft, 30. März 2016;.
  4. Klint Finley: Why Microsoft Making Linux Apps Run on Windows Isn’t Crazy. In: Wired. Condé Nast, 30. März 2016;.
  5. Dustin Kirkland: Ubuntu on Windows – The Ubuntu Userspace for Windows Developers. In: Ubuntu Insights. Canonical, 30. März 2016, abgerufen am 21. September 2016.
  6. Jack Hammons: Bash on Ubuntu on Windows. In: Microsoft Developer Network. Microsoft, 9. April 2016;.
  7. craigloewen-msft: Vergleich zwischen WSL 2 und WSL 1. Abgerufen am 21. August 2020 (deutsch).
  8. Client Hyper-V in Windows 8: nur für Testumgebungen, nicht für Endanwender | WindowsPro. Abgerufen am 21. August 2020.
  9. Microsoft: WSL 2 kann nicht neben VMware oder Virtualbox laufen - Golem.de. Abgerufen am 21. August 2020 (deutsch).
  10. Jonas Volkert: Windows Subsystem for Linux: Microsoft gibt WSL Version 1.0.0 offiziell frei. In: Heise online. 17. November 2022. Abgerufen am 17. November 2022.; Zitat: „Für Windows 11- und 10-User ist WSL jetzt als finale Version 1.0.0 im Microsoft Store downloadbar. … Zuvor war im Microsoft Store bis zuletzt nur eine Preview 0.70.8 verfügbar.“.
  11. Jonas Volkert: Windows Subsystem for Linux: Microsoft gibt WSL Version 1.0.0 offiziell frei. In: Heise online. 17. November 2022. Abgerufen am 17. November 2022.; Zitat: „Diese beiden Ausprägungen von WSL haben grundsätzlich nichts mit dem Sprung auf 1.0.0 zu tun: Er gilt für das Software-Paket, das im Microsoft Store erhältlich ist. Dieses enthält beide Varianten, WSL 1 und 2, und lässt die Wahl. WSL 2 ist aber per Default voreingestellt …“.
  12. a b Peter Bright: Why Microsoft needed to make Windows run Linux software. In: Ars Technica. Condé Nast, 6. April 2016;.
  13. Daniel Aleksandersen: Running Linux desktop apps on the Windows Subsystem for Linux. In: Slight Future. 7. April 2016;.
  14. a b Frequently Asked Questions for WSL. Microsoft;
  15. Gabe Aul: Announcing Windows 10 Insider Preview Build 14316. In: Windows Experience Blog. Microsoft, 6. April 2016;.
  16. phoronix.com: Windows 10 vs. Windows WSL vs. Linux - Ubuntu / openSUSE / Debian / Clear Linux
  17. https://www.phoronix.com/scan.php?page=article&item=wsl-windows-eo2019&num=1
  18. https://www.phoronix.com/news/WSL-GA-Windows
  19. Tilman Wittenhorst: Windows Subsystem for Linux: Microsoft aktualisiert Kernel über Windows Update. In: Heise online. 15. März 2020. Abgerufen am 27. August 2020.
  20. Holger Schwichtenberg: Build 2019: Windows erhält einen echten Linux-Kernel. In: Heise online. 8. Mai 2019. Abgerufen am 27. August 2020.
  21. Thorsten Leemhuis, Peter Siering: Ausprobiert: Windows-Subsystem für Linux Version 2. In: Heise online. 14. Juni 2019. Abgerufen am 27. August 2020.
  22. Olivia von Westernhagen: Microsoft rüstet WSL 2-Support bei den Windows 10-Versionen 1903 und 1909 nach. In: Heise online. 27. August 2020. Abgerufen am 27. August 2020.
  23. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-22.0-Released
  24. https://mesamatrix.net/
  25. https://xdc2020.x.org/event/9/contributions/610/attachments/700/1295/XDC_-_WSL_Graphics_Architecture.pdf
  26. Archivierte Kopie (Memento des Originals vom 30. Oktober 2020 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/xdc2020.x.org
  27. https://xdc2020.x.org/event/9/contributions/611/attachments/702/1298/XDC2020_-_X11_and_Wayland_applications_in_WSL.pdf
  28. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.0-Direct3D-12-Gallium3D
  29. https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-Collabora-DirectX
  30. https://www.phoronix.com/review/wsl-wsl2-tr3970x
  31. https://www.phoronix.com/review/windows11-wsl2-good/5
  32. https://devblogs.microsoft.com/commandline/wslg-architecture/
  33. https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-WSL2-WSLg-Preview
  34. Juha Saarinen: DOS Subsystem for Linux breaks cover. In: iTnews. nextmedia Pty Ltd., 23. September 2020, abgerufen am 11. Februar 2024 (englisch).
  35. Thom Holwerda: DOS Subsystem for Linux: run Linux on DOS. OSnews Inc., 21. September 2021, abgerufen am 11. Februar 2024 (englisch).
  36. Hailey Somerville: DOS Subsystem for Linux. (Quelltext) In: GitHub. Abgerufen am 11. Februar 2024 (englisch).