Windows-Subsystem für Linux

Windows-Subsystem für Linux

Screenshot of ‘Bash on Ubuntu on Windows’.png
Bash innerhalb conhost.exe unter Windows 10
Basisdaten

EntwicklerMicrosoft
Erscheinungsjahr2016
BetriebssystemWindows 10
KategorieKompatibilitätsschicht
LizenzMicrosoft end-user license agreement, GNU General Public License, Version 2
docs.microsoft.com/en-us/windows/wsl/

Das Windows-Subsystem für Linux[1] bzw. im englischen Originaltitel Windows Subsystem for Linux, kurz WSL, ist eine Kompatibilitätsschicht zum Ausführen von Linux-Executables im ELF-Format in Windows 10. Microsoft und Canonical gingen hierzu eine Partnerschaft zu dem Zweck ein, in Windows 10 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.[2][3][4]

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

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.[6] Dies bringt allerdings die üblichen Nachteile eines Typ1-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).[7] Zum anderen kann es Probleme geben, anschließend andere Virtualisierungsprodukte parallel zu betreiben.[8]

WSL 1

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.[9] GUI-Programme können aber einen externen X-Server wie beispielsweise VcXsrv oder Xming verwenden.[10] 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.[11]

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

Windows Subsystem for Linux ist nur auf 64-bit-Versionen von Windows 10 verfügbar[11] und kann in 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.[13] 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.[14]

WSL 2

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.[15] 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.[16][17]

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

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. Aktueller Status der Entwicklung kann in Mesamatrix eingesehen werden.[19][20]

In Windows 10 21H1 und 21H2 sind hier signifikante Verbesserungen zu erwarten.[21][22][23][24][25]

GUI App Support in WSL2

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.[26][27]

Ähnliche Software

  • 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.

Weblinks

Einzelnachweise

  1. Windows-Subsystem für Linux: Dokumentation. Microsoft, 11. Juli 2016, archiviert vom Original am 28. April 2020; abgerufen am 28. August 2020.
  2. Mike Harsh: Run Bash on Ubuntu on Windows. In: Building Apps for Windows. Microsoft. 30. März 2016.
  3. Klint Finley: Why Microsoft Making Linux Apps Run on Windows Isn’t Crazy. In: Wired. Condé Nast. 30. März 2016.
  4. Dustin Kirkland: Ubuntu on Windows – The Ubuntu Userspace for Windows Developers. In: Ubuntu Insights. Canonical. 30. März 2016. Abgerufen am 21. September 2016.
  5. Jack Hammons: Bash on Ubuntu on Windows. In: Microsoft Developer Network. Microsoft. 9. April 2016.
  6. craigloewen-msft: Vergleich zwischen WSL 2 und WSL 1. Abgerufen am 21. August 2020 (deutsch).
  7. Client Hyper-V in Windows 8: nur für Testumgebungen, nicht für Endanwender | WindowsPro. Abgerufen am 21. August 2020.
  8. Microsoft: WSL 2 kann nicht neben VMware oder Virtualbox laufen - Golem.de. Abgerufen am 21. August 2020 (deutsch).
  9. a b Peter Bright: Why Microsoft needed to make Windows run Linux software. In: Ars Technica. Condé Nast. 6. April 2016.
  10. Daniel Aleksandersen: Running Linux desktop apps on the Windows Subsystem for Linux. In: Slight Future. 7. April 2016.
  11. a b Frequently Asked Questions for WSL. Microsoft.
  12. Gabe Aul: Announcing Windows 10 Insider Preview Build 14316. In: Windows Experience Blog. Microsoft. 6. April 2016.
  13. phoronix.com: Windows 10 vs. Windows WSL vs. Linux - Ubuntu / openSUSE / Debian / Clear Linux
  14. https://www.phoronix.com/scan.php?page=article&item=wsl-windows-eo2019&num=1
  15. Tilman Wittenhorst: Windows Subsystem for Linux: Microsoft aktualisiert Kernel über Windows Update. In: Heise online. 15. März 2020. Abgerufen am 27. August 2020.
  16. Holger Schwichtenberg: Build 2019: Windows erhält einen echten Linux-Kernel. In: Heise online. 8. Mai 2019. Abgerufen am 27. August 2020.
  17. Thorsten Leemhuis, Peter Siering: Ausprobiert: Windows-Subsystem für Linux Version 2. In: Heise online. 14. Juni 2019. Abgerufen am 27. August 2020.
  18. 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.
  19. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-22.0-Released
  20. https://mesamatrix.net/
  21. https://xdc2020.x.org/event/9/contributions/610/attachments/700/1295/XDC_-_WSL_Graphics_Architecture.pdf
  22. https://xdc2020.x.org/event/9/contributions/621/attachments/701/1297/XDC_-_Mesa_for_Mapping_Layers.pdf
  23. https://xdc2020.x.org/event/9/contributions/611/attachments/702/1298/XDC2020_-_X11_and_Wayland_applications_in_WSL.pdf
  24. https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.0-Direct3D-12-Gallium3D
  25. https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-Collabora-DirectX
  26. https://devblogs.microsoft.com/commandline/wslg-architecture/
  27. https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-WSL2-WSLg-Preview

Auf dieser Seite verwendete Medien

Screenshot of ‘Bash on Ubuntu on Windows’.png
Autor/Urheber: , Lizenz: GPL
Screenshot of Bash on Ubuntu on Windows, a component of Windows Subsystem for Linux