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.
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.
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.
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.
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.
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Feedback zu Windows Subsystem for Linux
Windows Subsystem for Linux ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
In diesem Modul erfahren Sie, wie Sie das Windows-Subsystem für Linux (WSL) mit Visual Studio Code (VS Code) verwenden. Wir untersuchen den Installationsprozess und die Grundlagen der Verwendung von WSL. Darüber hinaus installieren und verwenden wir die WSL-Erweiterung von Visual Studio Code. Schließlich zeigen wir, wie Sie Python-Code in VS Code in unserer WSL-Umgebung debuggen und ausgeführen.