Vergleichen von WSL-Versionen

Erfahren Sie mehr über verschiedene WSL-Versionen, einschließlich der Gründe, warum WSL 2 jetzt Standard ist, und lernen Sie spezifische Szenarien oder Ausnahmen kennen, die möglicherweise das Wechseln Ihrer installierten Linux-Verteilung auf die frühere WSL 1-Architektur erfordern.

Vergleich zwischen WSL 1 und WSL 2

In diesem Leitfaden werden WSL 1 und WSL 2 verglichen, einschließlich der Ausnahmen zur Verwendung von WSL 1 anstelle von WSL 2. Die Hauptunterschiede zwischen WSL 1 und WSL 2 sind die Verwendung eines tatsächlichen Linux-Kernels innerhalb eines verwalteten virtuellen Computers, die Unterstützung für vollständige Systemaufrufkompatibilität und die Leistung über Linux- und Windows Betriebssysteme hinweg. WSL 2 ist die aktuelle Standardversion bei der Installation einer Linux-Verteilung und verwendet die neueste und beste Virtualisierungstechnologie, um einen Linux-Kernel in einem virtuellen Computer mit Lightweight-Hilfsprogramm auszuführen. WSL2 führt Linux-Distributionen als isolierte Container innerhalb der verwalteten VM aus. Wenn in Ihrer Verteilung derzeit WSL 1 ausgeführt wird und Sie auf WSL 2 aktualisieren möchten, finden Sie weitere Informationen unter Aktualisieren von WSL 1 auf WSL 2.

Vergleich der Features

Feature WSL 1 WSL 2
Integration zwischen Windows und Linux
Schnelle Startzeiten
Geringer Ressourcenbedarf im Vergleich zu herkömmlichen virtuellen Computern
Wird mit aktuellen Versionen von VMware und VirtualBox ausgeführt
Verwaltete VM
Vollständiger Linux-Kernel
Vollständige Kompatibilität von Systemaufrufen
Leistung über Betriebssystem-Dateisysteme hinweg
systemd-Unterstützung
IPv6-Unterstützung

Wie Sie in der obigen Vergleichstabelle sehen können, übertrifft die WSL 2-Architektur WSL 1 in verschiedenen Punkten, mit Ausnahme der Leistung über betriebssystemübergreifende Dateisysteme. Dieser Nachteil kann behoben werden, indem Sie Ihre Projektdateien unter demselben Betriebssystem speichern wie die Tools, die Sie für die Arbeit am Projekt ausführen.

WSL 2 ist nur in Windows 11 oder Windows 10, Version 1903, Build 18362 oder neuer verfügbar. Überprüfen Sie Ihre Windows-Version, indem Sie die Windows-Logo-Taste+R auswählen, winver eingeben und OK auswählen. (Oder geben Sie den Befehl ver an der Windows-Eingabeaufforderung ein.) Möglicherweise müssen Sie auf die neueste Windows-Version aktualisieren. Für Builds vor 14393 wird WSL überhaupt nicht unterstützt.

Weitere Informationen zu den neuesten WSL 2-Updates finden Sie im Windows Command Line Blog, einschließlich systemd-Unterstützung ist jetzt in WSL verfügbar und WSL-Update im September 2023 für weitere Informationen zur IPv6-Unterstützung.

Hinweis

WSL 2 funktioniert mit VMware 15.5.5+ und obwohl VirtualBox 6+ besagt, dass es WSL-Unterstützung gibt, gibt es immer noch erhebliche Herausforderungen, die es nicht unterstützt. Weitere Informationen finden Sie in den häufig gestellten Fragen.

Neues in WSL 2

WSL 2 ist eine wichtige Überarbeitung der zugrunde liegenden Architektur und nutzt Virtualisierungstechnologie und einen Linux-Kernel, um neue Features zu ermöglichen. Die Hauptziele für diese Aktualisierung sind eine gesteigerte Leistung des Dateisystems und das Hinzufügen vollständiger Kompatibilität von Systemaufrufen.

WSL 2-Architektur

Eine herkömmliche VM-Benutzerumgebung lässt sich unter Umständen nur langsam starten, verbraucht viele Ressourcen und nimmt für die Verwaltung Ihre Zeit in Anspruch. WSL 2 weist diese Merkmale nicht auf.

WSL 2 bietet die Vorteile von WSL 1, einschließlich der nahtlosen Integration zwischen Windows und Linux, schnellen Startzeiten, einem geringem Ressourcenbedarf und erfordert keine VM-Konfiguration oder -Verwaltung. Zwar verwendet WSL 2 eine VM, diese wird jedoch hinter den Kulissen verwaltet und ausgeführt, und Ihnen bleibt die Benutzererfahrung von WSL 1 erhalten.

Vollständiger Linux-Kernel

Der Linux-Kernel in WSL 2 wird von Microsoft aus dem aktuellsten Stable-Branch auf der Grundlage der auf „kernel.org“ verfügbaren Quelle erstellt. Dieser Kernel wurde speziell für WSL 2 optimiert und zwar hinsichtlich Größe und Leistung, um unter Windows eine beeindruckende Linux-Erfahrung zu bieten. Der Kernel wird mit Windows-Updates gewartet, was bedeutet, dass Sie die neuesten Sicherheitskorrekturen und Kernelverbesserungen erhalten, ohne die Aktualisierungen selbst verwalten zu müssen.

Der WSL 2 Linux-Kernel ist Open Source-. Wenn Sie weitere Informationen benötigen, lesen Sie den Blogbeitrag Shipping a Linux Kernel with Windows (Ausliefern eines Linux-Kernels mit Windows), der von dem Team geschrieben wurde, das ihn erstellt hat.

Weitere Informationen finden Sie unter Anmerkungen zu dieser Version des Windows-Subsystems für den Linux-Kernel.

Verbesserte E/A-Leistung für Dateien

Dateiintensive Vorgänge wie Git-Klon, npm-Installation, apt-Update, apt-Upgrade und mehr sind mit WSL 2 deutlich schneller.

Die tatsächliche Geschwindigkeitssteigerung hängt davon ab, welche App Sie ausführen und wie sie mit dem Dateisystem interagiert. Anfängliche Versionen von WSL 2 werden im Vergleich mit WSL 1 bis zu 20mal schneller ausgeführt (Entpacken eines gezippten Tarballs) und 2–5mal schneller beim Verwenden von Git-Klon, npm-Installation und CMake in verschiedenen Projekten.

Vollständige Kompatibilität von Systemaufrufen

Linux-Binärdateien verwenden Systemaufrufe für Funktionen, wie den Zugriff auf Dateien, das Anfordern von Arbeitsspeicher, das Erstellen von Prozessen und mehr. Während WSL 1 eine Übersetzungsschicht verwendete, die vom WSL-Team erstellt wurde, enthält WSL 2 seinen eigenen Linux-Kernel mit vollständiger Kompatibilität der Systemaufrufe. Vorteile umfassen:

  • Ein ganz neuer Satz von Apps, die Sie in WSL ausführen können, wie etwa Docker und mehr.

  • Alle Updates des Linux-Kernels sind sofort einsatzbereit. (Sie müssen nicht warten, bis das WSL-Team Updates implementiert und die Änderungen hinzufügt).

Ausnahmen zur Verwendung von WSL 1 anstelle von WSL 2

Es wird empfohlen, WSL 2 zu verwenden, da es eine schnellere Leistung und 100%ige Kompatibilität von Systemaufrufen bietet. Es gibt jedoch einige spezielle Szenarien, in denen Sie möglicherweise WSL 1 verwenden möchten. Erwägen Sie in folgenden Fällen die Verwendung von WSL 1:

  • Ihre Projektdateien müssen im Windows-Dateisystem gespeichert werden. WSL 1 bietet schnelleren Zugriff auf Dateien, die von Windows aus bereitgestellt werden.
    • Wenn Sie Ihre WSL Linux-Verteilung verwenden, um auf Projektdateien im Windows-Dateisystem zuzugreifen, und diese Dateien nicht im Linux-Dateisystem gespeichert werden können, erzielen Sie mithilfe von WSL 1 eine schnellere Leistung über die Betriebssystemdateien.
  • Ein Projekt, das die Kreuzkompilierung mithilfe von Windows- und Linux-Tools für dieselben Dateien erfordert.
    • Die Dateileistung über Windows- und Linux-Betriebssysteme hinweg ist in WSL 1 schneller als in WSL 2. Wenn Sie also Windows-Anwendungen für den Zugriff auf Linux-Dateien verwenden, erzielen Sie derzeit eine schnellere Leistung mit WSL 1.
  • Ihr Projekt benötigt Zugriff auf einen seriellen Anschluss oder ein USB-Gerät. Allerdings: USB-Geräteunterstützung ist jetzt für WSL 2 über das USBIPD-WIN-Projekt verfügbar. Einrichtungsschritte finden Sie unter Verbinden von USB-Geräten.
  • WSL 2 bietet keine Unterstützung für den Zugriff auf serielle Anschlüsse. Weitere Informationen finden Sie in den häufig gestellten Fragen oder im WSL GitHub-Repositoryproblem zur seriellen Unterstützung.
  • Sie haben strenge Arbeitsspeicheranforderungen
    • Der Arbeitsspeicherbedarf von WSL 2 wächst und schrumpft je nach Verwendung. Wenn ein Prozess Arbeitsspeicher freigibt, wird dieser automatisch an Windows zurückgegeben. Momentan gibt WSL 2 jedoch zwischengespeicherten Seiten im Speicher erst dann an Windows zurück, wenn die WSL-Instanz heruntergefahren wird. Wenn Sie über zeitintensive WSL-Sitzungen verfügen oder auf sehr viele Dateien zugreifen, kann dieser Cache unter Windows viel Speicherplatz belegen. Wir verfolgen die Arbeiten zur Verbesserung dieser Erfahrung im WSL-GitHub-Repository, Problem 4166.
  • Wenn Sie VirtualBox verwenden, achten Sie darauf, dass Sie die neueste Version von VirtualBox und WSL 2 verwenden. Weitere Informationen finden Sie in den zugehörigen Häufig gestellten Fragen.
  • Wenn Sie sich darauf verlassen, dass eine Linux-Verteilung über eine IP-Adresse im selben Netzwerk wie Ihr Hostcomputer verfügt, müssen Sie möglicherweise eine Problemumgehung einrichten, um WSL 2 auszuführen. WSL 2 wird als virtueller Hyper-V-Computer ausgeführt. Dies ist eine Änderung gegenüber dem überbrückten Netzwerkadapter, der in WSL 1 verwendet wurde. Das bedeutet, dass WSL 2 einen NAT-Dienst (Network Address Translation) für sein virtuelles Netzwerk verwendet, anstatt es über eine Brücke mit der Netzwerkkarte (NIC) des Hosts zu verbinden, was zu einer eindeutigen IP-Adresse führt, die sich beim Neustart ändert. Weitere Informationen zum Problem und zur Problemumgebung, bei der TCP-Ports von WSL 2-Diensten an das Hostbetriebssystem weitergeleitet werden, finden Sie im WSL GitHub-Repository, Problem 4150, zum NIC-Brückenmodus (TCP-Problemumgehung).

Hinweis

Probieren Sie den VS-Code Remote WSL-Erweiterung aus, mit dem Sie Ihre Projektdateien im Linux-Dateisystem speichern können, indem Sie Linux-Befehlszeilentools verwenden, aber auch VS-Code unter Windows zum Verfassen, Bearbeiten, Debuggen oder Ausführen Ihres Projekts in einem Internetbrowser ohne die mit den Linux- und Windows-Dateisystemen verbundenen Leistungseinbußen. Weitere Informationen

WSL im Microsoft Store

Die WSL hat die Updatefunktion aus dem Windows-Betriebssystem-Image in ein Paket ausgelagert, das über den Microsoft Store erhältlich ist. Dies bedeutet schnellere Updates und Wartungen, sobald sie verfügbar sind, anstatt auf ein Update Ihres Windows-Betriebssystems warten zu müssen.

WSL war ursprünglich als optionale Komponente im Windows-Betriebssystem enthalten, die aktiviert werden muss, um eine Linux-Verteilung zu installieren. WSL im Store verfügt über die gleiche Benutzeroberfläche und ist dasselbe Produkt, erhält jedoch Updates und Wartungen als Paket im Store und nicht als komplettes Betriebssystemupdate. Ab Windows-Version 19044 wird durch Ausführen des Befehls wsl.exe --install das WSL-Wartungsupdate aus dem Microsoft Store installiert. (Weitere Informationen finden Sie im Blogbeitrag, der dieses Update ankündigt). Wenn Sie WSL bereits verwenden, führen Sie mit wsl.exe --update ein Update aus, um sicherzustellen, dass Sie die neuesten WSL-Features und -Wartungen aus dem Store erhalten.