Vergleich zwischen WSL 1 und WSL 2

Die wichtigsten Gründe für das Update von WSL 1 auf WSL 2 sind:

  • Steigern der Leistung des Dateisystems,
  • Unterstützen der vollständigen Kompatibilität von Systemaufrufen.

WSL 2 verwendet das Neueste und Beste an Virtualisierungstechnologie, um einen Linux-Kernel innerhalb einer schlanken Hilfsprogramms-VM auszuführen. WSL 2 ist jedoch keine herkömmliche VM-Benutzererfahrung.

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.

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

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 10, Version 1903, Build 18362 oder höher 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 18362 wird WSL überhaupt nicht unterstützt.

Hinweis

Die WSL 2 verwendet VMware 15.5.5+ und VirtualBox 6+. 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.
  • Für Benutzer von VirtualBox müssen Sie möglicherweise die ausgeführte Version berücksichtigen, und ob sie mit WSL 2 kompatibel ist. (Eine ausführliche Diskussion finden Sie im WSL-Github-Repository, Problem 798. Es scheint, dass VirtualBox v6.1.16 mit WSL 2 funktioniert, aber bei anderen Versionen möglicherweise Probleme auftreten.)
  • 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