Microsoft kündigte auf der Build 2019 in Seattle das Windows-Subsystem für Linux 2 an, kurz WSL2 und bietet damit nun erstmals die Integration eines echten Linux Kernels in ein Windows Desktop Betriebssystem an.
Zum Vergleich: Die 1. Version bot lediglich ein von Microsoft entwickeltes Linux Kompatibles Kernel Interface – leider mit den damit verbundenen Nachteilen bei Performance und Anzahl an unterstützten Funktionen und Anwendungen.
Microsoft verspricht nun mit dem Nachfolger eine drastische Leistungssteigerung des Dateisystems und volle Kompatibilität mit allen Systemaufrufen. Das lässt hoffen, dass nun wirklich alle Linux Anwendungen in WSL 2 ausgeführt werden können so wie man es beispielsweise von Docker her kennt. Mehr dazu später.
Microsoft wird den Kernel auf Basis des letzten stabilen kernel.org Branches In-House bauen und dabei anfangs auf Version 4.19 zurückgreifen.
Damit die Anwender nicht ewig auf diesen Versionsstand festgenagelt werden, soll der Kernel mit Hilfe von Windows Update auf den aktuellsten Stand gehalten werden und bezieht so in Zukunft die neueste Security Fixes und Kernel Updates, ganz ohne dass Nutzer aktiv werden müssen. Der verwendete Kernel wurde im Übrigen speziell für WSL2 optimiert und soll auf Größe und Leistung getrimmt werden.
Natürlich ist der Kernel vollständig Open Source und soll in Zukunft vollständig auf Github verfügbar sein. Bei weiterem Interesse kann sich Jeder selbst ein detaillierten Einblick in die Arbeitsweise des Kernels verschaffen oder sogar selbst bauen.
Was ist neu an WSL 2?
WSL 2 verwendet laut Microsoft neuste Virtualisierungstechnologie um den Linux-Kernel innerhalb einer leichtgewichtigen Virtual Machine (VM) auszuführen.
WSL 2 verhält sich dabei aber nicht wie eine traditionelle VM. Wenn ich z.B. an Hyper-V denke, dann denke ich vor allem an einen langen Startvorgang und hohen Ressourcen Verbrauch. WSL 2 soll diese negativen Aspekte abgelegt haben, soll aber immer noch die bemerkenswerten Vorteile der WSL 1 bieten d.h. hoher Integrationsgrad zwischen Windows und Linux, schnelle Bootzeiten, geringer Ressourcenbedarf und vor allem keinerlei VM Konfiguration oder Verwaltung.
Gut und schön, WSL 1 war auch schon relativ sparsam. Also was gibt es sonst noch? Beispielsweise die Eingangs angeteaserte drastische Dateisystem Leistungssteigerung. Operationen wie Git-Clone, Apt-Update usw., werden nun angeblich deutlich schneller durchgeführt. Die tatsächliche Geschwindigkeitssteigerung hängt natürlich davon ab, welche Anwendung ausgeführt wird und wie diese mit dem Dateisystem interagiert.
Erste Tests von Microsoft zeigten im Vergleich zu WSL1 eine bis zu 20 fach höhere Performance beim entpacken eines gezippten Tarballs Archivs und etwa 2 bis 5 mal schneller bei Verwendung von git clone, npm install und cmake.
WSL 2: Mehr Einfachheit, mehr Funktionen
Ok, mehr Performance ist quasi selbstverständlich bei einer neuen Version. Die für mich wichtigste Neuerung ist allerdings die volle System Call Kompatibilität.
In der WSL 1 wurde eine Übersetzungsschicht verwendet, welche viele dieser Systemaufrufe interpretierte und es so ermöglichte, den Windows NT-Kernel zu nutzen. Es ist jedoch schwierig, alle diese Systemaufrufe zu implementieren und so kam es, dass einige Anwendungen bis heute nicht in WSL 1 ausgeführt werden können.
Da WSL 2 nun einen eigenen Linux-Kernel enthält, ist es laut Microsoft vollständig kompatibel. Dies führt zu einer ganz neuen Reihe von Apps, die innerhalb von WSL2 ausgeführt werden könnten.
Die Verwendung von WSL 2 bedeutet außerdem, dass Nutzer die neuesten Funktionen des Linux Kernel nun auch viel schneller als in WSL 1 über Windows Update erhalten. Microsoft kann mit WSL 2 einfach den Kernel aktualisieren, anstatt dass die Änderungen aufwendig in die Übersetzungsschicht neu implementiert zu müssen.
Für mich und für meine tägliche Arbeitet ist vor allem die Unterstützung aller System Calls sehr interessant. Ich bin auf Werkzeuge wie z.B. nmap angewiesen, aber leider sind dieses, und noch einige andere Tools, bis heute nicht im WSL1 lauffähig.
Das Schöne an Linux auf Windows mit WSL ist die Verfügbarkeit beider Plattformen auf einem System und der Möglichkeit, aus WSL heraus auch Windows Anwendungen starten zu können. So war es bisher als Workaround möglich, nicht funktionierende Linux Tools unter WSL mit Windows Pendants direkt im WSL über ein Alias aufzurufen, so auch mit dem oben genannten nmap Beispiel.
Aber mit der WSL 2 gehören solche Workarounds hoffentlich endgültig der Vergangenheit an.
Quelle: Microsoft
Was haltet Ihr von Linux unter Windows: Ein Sakrileg oder eine willkommene Ergänzung 2er sich gut ergänzender Plattformen?
Auch wenn ich es nicht aktiv nutze, finde ich es eine Entwicklung in die richtige Richtung.
… und vielleicht hört ja dann eeeeendlich mal das Jahrzehnte lange Gestreite auf ✌😉
Wird es wohl nie. Wenn nicht Windows vs. Linux, dann Android vs. iOS, Bayer München vs. BVB, Sega vs. Nintendo … ok, das war mal … PS vs. XBox usw…. 🙂
Wie erwartet und wie es sich abzeichnet. Das macht es hoffentlich bald noch leichter App’s für Android (das geht jetzt schon sehr gut) und IOS zu programmieren. Meine grosse Hoffnung das man keinen Mac mehr braucht um iOS App’s zu entwickeln. Da wäre ich froh und glücklich….. Aber schauen wir mal
Das kenne ich und daher steht auf meinem Schreibtisch noch ein seltenes C2D 17″ MBP rum. Das folgende Video ist mit viel Arbeit, Geld und Zeit verbunden, aber könnte interessant sein um dein Mac (irgendwann) loszuwerden:
https://www.youtube.com/watch?v=ATnpEOo3GJA
Interessant aber echt umständlich. Mein Wunsch wäre es, das MacOS dann ganz normal auf einem Windows Rechner läuft, wie Paralles auf einem Mac.
Dann kann man mit Xamarin Apps bauen bis zum abwinken ohne einen Mac zu haben.
Einfache aber teure Alternative wäre, ein OSX Rechner zu verwenden und Windows in Parallels laufen zu lassen. So habe ich viele Jahre gearbeitet. Würde ich nur empfehlen mit extra viel RAM und SSD was ich bei meinem 17″ C2D MBP nachträglich durchgeführt und konnte damit flott arbeiten in Visual Studio.