WSL 2 mit Visual Studio Code
3. September 2019 von Matt Hernandez, @fiveisprime
Es ist ein paar Monate her, seit die ersten Betas für das Windows Subsystem for Linux 2 (WSL 2) veröffentlicht wurden, und ich wollte Ihnen ein wenig darüber erzählen, worum es dabei geht und wie dies Ihre Produktivität steigern wird. Ich verwende die Beta seit ihrer Einführung für Windows Insiders und bin schnell ausschließlich auf WSL 2 für meine täglichen Entwicklungsaufgaben umgestiegen.
Was sich in WSL 2 ändert
Die erste Version implementierte Systemaufrufe nativ unter Windows. Systemaufrufe sind im Wesentlichen Funktionen, die vom Kernel bereitgestellt werden. Das bedeutet, dass nur die implementierten Aufrufe in der WSL-Umgebung unterstützt wurden. Dies ist Ihnen vielleicht aufgefallen, wenn Sie frühe Versionen von WSL verwendet haben und auf Bibliotheken und Tools gestoßen sind, die versuchten, auf nicht implementierte Systemaufrufe zuzugreifen (z. B. der Go-Debugger). Während inkrementelle Verbesserungen vorgenommen wurden, um die Unterstützung für weitere Funktionen hinzuzufügen, verfolgt WSL 2 einen völlig anderen Ansatz, indem es eine leichtgewichtige virtuelle Maschine mit einem **vollständigen** Linux-Kernel ausliefert.
Das ist richtig, WSL 2 liefert jetzt eine VM aus, aber es ist nicht das Erlebnis, das Sie von einer VM erwarten würden. Wo traditionelle VMs langsam starten und sich isoliert anfühlen können, ist WSL 2 genauso nahtlos wie die vorherige Version. Erwarten Sie hohe Integrationsgrade zwischen Windows und Linux, extrem schnelle Startzeiten, einen geringen Ressourcenverbrauch und absolut keine VM-Konfiguration oder -Verwaltung.
All dies führt zu einer verbesserten E/A-Leistung – bis zu 20-mal schneller als bei WSL 1 – und voller Systemaufruffähigkeit. Ihre Module werden schneller installiert, Ihre Repositories werden schneller geklont und Ihre bevorzugten Bibliotheken funktionieren zuverlässig. Die Leistungssteigerung bedeutet, dass Sie auch alternative Shells wie Zsh ausführen und sogar Ihr bevorzugtes Node.js-Versionsverwaltungstool verwenden können.
WSL 2 und Visual Studio Code
Wenn Sie folgen, stellen Sie sicher, dass Sie Windows Insider Builds opt-in haben und WSL 2 aktiviert ist. Weitere Informationen zur Einrichtung finden Sie in den Installationsanweisungen für WSL 2.
Sie müssen auch Visual Studio Code und die WSL-Erweiterung installieren. Überprüfen Sie optional das Beta-Windows-Terminal für das bestmögliche Terminalerlebnis unter Windows.

Öffnen Sie WSL entweder durch Starten des Windows-Terminals und Erstellen eines neuen WSL-Tabs oder durch Starten der installierten Linux-Distribution. Sie können auch direkt von der Eingabeaufforderung oder PowerShell in Linux wechseln, indem Sie wsl im Terminal eingeben – dies ist nur eine der vielen Möglichkeiten, wie WSL tief in Windows integriert ist. Sie können WSL auch Inline verwenden, um unglaubliche Dinge zu tun, wie zum Beispiel...

Starten Sie von Ihrem Terminal aus Visual Studio Code mit code . aus WSL heraus. Sie können sogar wsl code . verwenden, um Inline zu Linux zu wechseln, VS Code zu starten und dann zu Ihrer Windows-Shell zurückzukehren. 😏
Persönlich verwende ich WSL 2 für 100 % meiner Entwicklung unter Windows – alle Entwicklungswerkzeuge wie Git und Node.js sind in meiner Linux-Umgebung installiert. Sehen Sie sich diesen Tipps und Tricks Beitrag an, um mehr über die Anpassung von VS Code in WSL an Ihre Bedürfnisse zu erfahren.
Hier ist ein Blick auf mein Setup.

Beachten Sie im Screenshot, dass ich mit meiner WSL 2-Instanz verbunden bin (siehe 'Ubuntu-18.04' unten links als Remote-Quelle) und eine Node.js-App aus dem Debugger gestartet habe, die sich an einem Breakpoint befindet. In der Debug-Konsole habe ich process.platform eingegeben, um zu zeigen, wie die WSL-Erweiterung standardmäßig die gesamte Editor-Interaktion auf die Linux-Umgebung ausrichtet. Es ist absolut keine Konfiguration erforderlich, damit dies funktioniert. Verbinden Sie sich einfach über die WSL-Erweiterung mit Ihrer WSL-Umgebung und legen Sie los. Beachten Sie auch, dass meine Zeilenumbrüche standardmäßig auf LF eingestellt sind (in der Statusleiste angezeigt), ohne dass zusätzliche Git-Konfigurationsoptionen festgelegt werden müssen – wenn Sie unter Windows arbeiten und Open Source beiträgt, verstehen Sie, warum dies ein wichtiger Punkt ist.
Alle meine bevorzugten Erweiterungen funktionieren und zielen auf die richtige Umgebung ab. Beispielsweise zeigt die Ansicht "Quellcodeverwaltung" Änderungen an meinem Projekt unter Verwendung der in WSL 2 installierten Git-Version an, und die Docker-Erweiterung ist konfiguriert, um auf die technische Vorschau von Docker Desktop WSL 2 zuzugreifen.
All dies wird durch die Verwendung der WSL-Erweiterung ermöglicht. Bearbeitung, Debugging und sogar Erweiterungen funktionieren genau so, wie Sie es von Ihrem bevorzugten Editor gewohnt sind.
Vorteile von WSL 2
Zusammenfassung
- Virtuelle Maschinen sind ressourcenintensiv und schaffen eine sehr getrennte Erfahrung.
- Das ursprüngliche WSL war sehr verbunden, hatte aber im Vergleich zu einer VM eine ziemlich schlechte Leistung.
- WSL 2 bietet einen Hybridansatz mit einer leichtgewichtigen VM, einer vollständig verbundenen Erfahrung und hoher Leistung.
Fügen Sie die WSL-Erweiterung in Visual Studio Code hinzu und Sie haben das Beste aus allen Welten – Linux- und Windows-Kompatibilität für Ihre Werkzeuge mit hervorragender Leistung und einer nahtlosen Entwicklungserfahrung.
Weiterführende Lektüre
Um Ihnen bei der Einrichtung von VS Code mit WSL zu helfen, gibt es ein Tutorial zur Arbeit in WSL. Wenn Sie mehr über VS Code Remote erfahren möchten und wie es auch über SSH und in Docker-Containern funktionieren kann, lesen Sie die vollständige VS Code Dokumentation zur Remote-Entwicklung.
Viel Spaß beim Remote Coding,
Matt Hernandez, VS Code Program Manager @fiveisprime