Freigeben über


Vergleich von WSL-Versionen

Erfahren Sie mehr über verschiedene WSL-Versionen, einschließlich der Gründe, warum WSL 2 jetzt die Standardeinstellung und die spezifischen Szenarien oder Ausnahmen ist, die einen Wechsel Ihrer installierten Linux-Verteilung auf die frühere WSL 1-Architektur garantieren können.

Vergleich von WSL 1 und WSL 2

In diesem Handbuch werden WSL 1 und WSL 2 verglichen, unter anderem Ausnahmen für die 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 einer verwalteten VM, die Unterstützung für die vollständige Systemaufrufkompatibilität und die Leistung auf allen Linux- und Windows-Betriebssystemen. WSL 2 ist die aktuelle Standardversion bei der Installation einer Linux-Verteilung und verwendet die neueste und größte Virtualisierungstechnologie, um einen Linux-Kernel innerhalb eines einfachen virtuellen Hilfsprogramms (VM) auszuführen. WSL2 führt Linux-Verteilungen 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 von Features

Merkmal WSL 1 WSL 2
Integration zwischen Windows und Linux
Schnelle Startzeiten
Kleiner Ressourcenfußdruck 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 Systemanrufkompatibilität
Leistung in betriebssystemübergreifenden Dateisystemen
systemd-Unterstützung
IPv6-Unterstützung

Wie Sie aus der obigen Vergleichstabelle erkennen können, übertrifft die WSL 2-Architektur WSL 1 auf verschiedene Arten, mit Ausnahme der Leistung auf betriebssystemübergreifenden Dateisystemen, die durch Speichern Der Projektdateien auf demselben Betriebssystem wie die Tools, die Sie für die Arbeit am Projekt ausführen, adressiert werden können.

WSL 2 ist nur in Windows 11 oder Windows 10, Version 1903, Build 18362 oder höher verfügbar. Überprüfen Sie Ihre Windows-Version, indem Sie die Windows-Logo-Taste + Rdrücken, winvereingeben und dann OKauswählen. (Oder geben Sie den befehl ver in der Windows-Eingabeaufforderung ein). Möglicherweise müssen Sie auf die neueste Windows-Versionaktualisieren. Für Builds unter 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.

Anmerkung

WSL 2 arbeitet mit VMware 15.5.5+ und obwohl VirtualBox 6+ angibt, dass es WSL-Unterstützung gibt, bestehen weiterhin erhebliche Herausforderungen, die eine offizielle Unterstützung verhindern. Weitere Informationen finden Sie in unseren häufig gestellten Fragen.

Neuerungen in WSL 2

WSL 2 ist eine wichtige Überarbeitung der zugrunde liegenden Architektur und verwendet Virtualisierungstechnologie und einen Linux-Kernel, um neue Features zu ermöglichen. Die Hauptziele dieses Updates bestehen darin, die Leistung des Dateisystems zu erhöhen und vollständige Systemaufrufkompatibilität zu gewährleisten.

WSL 2-Architektur

Eine herkömmliche VM-Erfahrung kann langsam starten, ist isoliert, verbraucht viele Ressourcen und erfordert Ihre Zeit zum Verwalten. WSL 2 verfügt nicht über diese Attribute.

WSL 2 bietet die Vorteile von WSL 1, einschließlich nahtloser Integration zwischen Windows und Linux, schnelle Startzeiten, einen kleinen Ressourcenbedarf und erfordert keine VM-Konfiguration oder -verwaltung. Während WSL 2 einen virtuellen Computer verwendet, wird er verwaltet und hinter den Kulissen ausgeführt, sodass Sie mit der gleichen Benutzeroberfläche wie WSL 1 arbeiten.

Vollständiger Linux-Kernel

Der Linux-Kernel in WSL 2 wird von Microsoft aus dem neuesten stabilen Zweig entwickelt, basierend auf der Quelle, die bei kernel.orgverfügbar ist. Dieser Kernel wurde speziell für WSL 2 optimiert, um für Größe und Leistung zu optimieren und so eine erstaunliche Linux-Erfahrung unter Windows zu bieten. Der Kernel wird von Windows-Updates gewartet, was bedeutet, dass Sie die neuesten Sicherheitsupdates und Kernelverbesserungen erhalten, ohne sie selbst verwalten zu müssen.

Der WSL 2 Linux Kernel ist Open Source. Wenn Sie mehr erfahren möchten, lesen Sie den Blogbeitrag Versenden eines Linux-Kernels mit Windows vom Team, das es 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 clone, npm install, apt update, apt upgradeund mehr sind mit WSL 2 spürbar 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 clone, npm install und cmake in verschiedenen Projekten.

Vollständige Systemanrufkompatibilität

Linux-Binärdateien verwenden Systemaufrufe, um Funktionen wie den Zugriff auf Dateien, das Anfordern von Arbeitsspeicher, das Erstellen von Prozessen und vieles mehr auszuführen. Während WSL 1 eine Übersetzungsebene verwendet hat, die vom WSL-Team erstellt wurde, enthält WSL 2 seinen eigenen Linux-Kernel mit vollständiger Systemaufrufkompatibilität. Zu den Vorteilen gehören:

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

  • Alle Updates für den Linux-Kernel sind sofort einsatzbereit (Sie müssen nicht warten, bis das WSL-Team Updates implementiert und die Änderungen hinzugefügt).

Ausnahmen für die 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 bestimmte Szenarien, in denen Sie die Verwendung von WSL 1 bevorzugen. Erwägen Sie die Verwendung von WSL 1, wenn:

  • Ihre Projektdateien müssen im Windows-Dateisystem gespeichert werden. WSL 1 bietet schnelleren Zugriff auf Dateien, die von Windows bereitgestellt werden.
    • Wenn Sie Ihre WSL Linux-Verteilung verwenden, um auf Projektdateien im Windows-Dateisystem zuzugreifen, und diese Dateien können nicht auf dem Linux-Dateisystem gespeichert werden, erzielen Sie eine schnellere Leistung auf allen Betriebssystemdateien mit WSL 1.
  • Ein Projekt, das die Cross-Kompilierung sowohl mit Windows- als auch Linux-Tools auf denselben Dateien erfordert.
    • Die Dateileistung in den Betriebssystemen Windows und Linux ist in WSL 1 schneller als 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 ist USB-Geräteunterstützung jetzt über das USBIPD-WIN Projekt für WSL 2 verfügbar. Schritte zum Einrichten finden Sie unter Verbinden von USB-Geräten.
  • WSL 2 bietet keine Unterstützung für den Zugriff auf serielle Ports. Weitere Informationen finden Sie in den häufig gestellten Fragen oder im WSL GitHub-Repositoryproblem zur seriellen Unterstützung.
  • Sie haben strenge Speicheranforderungen.
    • Die Speicherauslastung von WSL 2 wächst und schrumpft, während Sie sie verwenden. Wenn ein Prozess Arbeitsspeicher freigibt, wird dies automatisch an Windows zurückgegeben. Derzeit gibt WSL 2 jedoch noch keine zwischengespeicherten Seiten im Arbeitsspeicher an Windows zurück, bis die WSL-Instanz heruntergefahren wird. Wenn Sie lange laufende WSL-Sitzungen haben oder auf eine sehr große Menge von Dateien zugreifen, kann dieser Cache Arbeitsspeicher auf Windows-Systemen belegen. Wir verfolgen die Arbeiten zur Verbesserung dieser Erfahrung im WSL-GitHub-Repository, Problem 4166.
  • Für Nutzer von VirtualBox wird empfohlen, unbedingt die neueste Version von VirtualBox und WSL 2 zu verwenden. Weitere Informationen finden Sie in den zugehörigen Häufig gestellten Fragen.
  • Wenn Sie sich auf eine Linux-Verteilung verlassen, um eine IP-Adresse im selben Netzwerk wie Ihr Hostcomputer zu haben, müssen Sie möglicherweise eine Problemumgehung einrichten, um WSL 2 auszuführen. WSL 2 wird als Hyper-V virtuelle Maschine ausgeführt. Dies stellt eine Änderung im Vergleich zum in WSL 1 verwendeten überbrückten Netzwerkadapter dar. WSL 2 nutzt stattdessen einen Network Address Translation (NAT)-Dienst für sein virtuelles Netzwerk, was bedeutet, dass es nicht mit der Host-Netzwerkschnittstellenkarte (Network Interface Card, NIC) überbrückt wird. Dies führt zu einer eindeutigen IP-Adresse, die sich bei jedem Neustart ändert. Weitere Informationen zu dem Problem und der Problemumgehung, das TCP-Ports von WSL 2-Diensten an das Hostbetriebssystem weiterleitet, finden Sie unter WSL GitHub Repository Problem 4150, NIC Bridge Mode (TCP Workaround).

Anmerkung

Erwägen Sie, die VS Code-Remote-WSL-Erweiterung zu versuchen, damit Sie Ihre Projektdateien im Linux-Dateisystem speichern können, indem Sie Linux-Befehlszeilentools verwenden, aber auch VS Code unter Windows verwenden, um Ihr Projekt in einem Internetbrowser zu erstellen, zu bearbeiten, zu debuggen oder auszuführen, ohne dass die Leistung verlangsamt wird, die mit der Arbeit mit den Linux- und Windows-Dateisystemen verbunden ist. Erfahren Sie mehr.

WSL im Microsoft Store

WSL hat die Updatefunktionalität aus dem Windows-Betriebssystemimage in ein Paket übertragen, das über den Microsoft Store verfügbar ist. Dies bedeutet schnellere Updates und Wartungen, sobald sie verfügbar sind, anstatt auf ein Update Ihres Windows-Betriebssystems zu warten.

WSL wurde ursprünglich in das Windows-Betriebssystem als optionale Komponente aufgenommen, die aktiviert werden muss, um eine Linux-Verteilung zu installieren. WSL im Store verfügt über die gleiche Benutzeroberfläche und ist dasselbe Produkt, empfängt jedoch Updates und Wartung als Store-Paket und nicht als gesamtes Betriebssystemupdate. Ab Windows Version 19044 oder höher wird mit dem Befehl "wsl.exe --install" das WSL-Wartungsupdate aus dem Microsoft Store installiert. (Sehen Sie sich den Blogbeitrag an, der dieses Updateankündigt). Wenn Sie WSL bereits verwenden, können Sie aktualisieren, um sicherzustellen, dass Sie die neuesten WSL-Features und -Wartungen aus dem Store erhalten, indem Sie wsl.exe --updateausführen.

Anmerkung

Wenn innerhalb Ihrer Organisation auf den Microsoft Store nicht zugegriffen werden kann, können Sie diese WSL-Version weiterhin verwenden, indem Sie --web-download an den Befehl --update anfügen, z. B. wsl --update --web-download. Sie müssen WSL jedes Mal manuell aktualisieren, wenn eine neue Version mit dieser Methode verfügbar wird.