Harting Development

WSL2: Verbesserte Linux-Integration für Windows

Lukas Fuchs vor 8 Monaten in  Technologie 3 Minuten Lesedauer

Was ist WSL2 und wie unterscheidet es sich von WSL1?

WSL2 (Windows Subsystem for Linux 2) ist die neueste Version von Microsofts Technologie zur Ausführung von Linux-Distributionen nativ unter Windows. Es wurde im Jahr 2019 mit dem Windows 10 May 2020 Update eingeführt und bietet eine Reihe von Verbesserungen gegenüber seinem Vorgänger, WSL1.

Vorläufer: WSL1

WSL1 wurde erstmals 2016 veröffentlicht und ermöglichte es dir, Linux-Befehle in einer Eingabeaufforderung oder einem PowerShell-Fenster auszuführen. Allerdings liefen diese Befehle in einer kompatibilitätslosen Umgebung und benötigten eine Übersetzungsschicht, um mit Windows-Funktionen zu interagieren. Dies führte zu Einschränkungen in der Leistung und Kompatibilität.

Verbesserungen durch WSL2

WSL2 behebt diese Einschränkungen durch die Verwendung eines echten Linux-Kernels, der im Benutzermodus läuft. Dieser Kernel bietet eine vollständige Linux-Umgebung, die direkt auf die Hardware zugreift und die gleiche Leistung wie auf einer nativen Linux-Installation liefert.

Zusätzlich zu dieser Hauptunterscheidung bringt WSL2 weitere Verbesserungen mit sich:

  • Erhöhte Geschwindigkeit und Ressourcenzuweisung: WSL2 verfügt über einen eigenen Speicher und eine eigene CPU, sodass Linux-Distributionen ohne Beeinträchtigung der Windows-Leistung ausgeführt werden können.
  • Vollständige Systemanrufkompatibilität: Der Linux-Kernel in WSL2 unterstützt die meisten Linux-Systemaufrufe, was die Portierung von Software und Tools aus Linux vereinfacht.
  • Erweiterte Dateisystemunterstützung: WSL2 unterstützt jetzt das EXT4-Dateisystem, das von den meisten Linux-Distributionen verwendet wird. Dies ermöglicht eine nahtlose Integration zwischen Windows- und Linux-Dateien.
  • Grafikbeschleunigung: WSL2 unterstützt die OpenGL- und Vulkan-Grafik-APIs, was die Ausführung grafikintensiver Linux-Anwendungen ermöglicht.

Vorteile der Verwendung von WSL2

WSL2 bietet gegenüber seinem Vorgänger, WSL1, zahlreiche Verbesserungen und Vorteile, die deine Linux-Integration unter Windows deutlich verbessern können. Hier sind einige der wichtigsten Vorteile:

Verbesserung der Leistung

WSL2 verwendet einen echten Linux-Kernel, der direkt in Windows integriert ist, im Gegensatz zu WSL1, das eine Übersetzungsschicht verwendete. Diese Architektur führt zu einer deutlich schnelleren Leistung, insbesondere für I/O-intensive Aufgaben wie die Kompilierung von Code oder die Ausführung von Datenwissenschaft-Workflows.

Vollständige Linux-Kompatibilität

WSL2 bietet volle Kompatibilität mit Linux-Systemaufrufen und -Treibern, sodass du fast jede Linux-Anwendung oder jedes -Tool nahtlos in Windows ausführen kannst. Dies ermöglicht dir den Zugriff auf eine große Auswahl an Open-Source-Software, einschließlich Entwicklungstools, Administrationswerkzeuge und wissenschaftliche Software.

Nahtlose Integration mit Windows

WSL2 ist tief in Windows integriert, sodass du Linux- Anwendungen neben Windows-Anwendungen in einem einzigen Arbeitsbereich ausführen kannst. Du kannst problemlos Dateien und Daten zwischen Windows und Linux austauschen und sogar Windows-Befehlszeilenwerkzeuge in Linux-Skripten verwenden.

Verbesserte Sicherheit

WSL2 verwendet einen Isolationsmechanismus, der die Linux-Umgebung von Windows trennt, was eine verbesserte Sicherheit bietet. Dies bedeutet, dass Malware oder Sicherheitsverletzungen in der Linux-Umgebung nicht Windows gefährden können und umgekehrt.

Einfache Installation und Wartung

Die Installation und Konfiguration von WSL2 ist unkompliziert und erfordert nur ein paar Schritte. Außerdem wird WSL2 automatisch aktualisiert, sodass du dich nicht um die Wartung kümmern musst.

Einschränkungen und Kompatibilitätsprobleme von WSL2

WSL2 bietet zwar erhebliche Verbesserungen, aber es hat auch einige Einschränkungen und Kompatibilitätsprobleme, die du beachten solltest:

Hardwareanforderungen

  • Virtualisierungsunterstützung: WSL2 erfordert eine CPU, die Hardwarevirtualisierung unterstützt, z. B. Intel VT-x oder AMD-V.
  • Mindestspeicher: Für eine optimale Leistung werden mindestens 8 GB RAM empfohlen.

Kompatibilitätsprobleme mit Apps und Geräten

  • Grafikintensive Anwendungen: WSL2 unterstützt keine hardwarebeschleunigte Grafik, was bei grafikintensiven Anwendungen zu Leistungseinbußen führen kann.
  • USB-Geräte: Der Zugriff auf USB-Geräte aus WSL2 ist in bestimmten Fällen eingeschränkt.
  • Netzwerkdruck: Direktes Drucken aus WSL2-Anwendungen ist nicht möglich.

Dateisysteme und Berechtigungen

  • NTFS-Dateisystem: WSL2 verwendet ein Linux-Dateisystem (ext4), das sich von NTFS unterscheidet, dem nativen Dateisystem von Windows. Dies kann zu Problemen beim Zugriff auf Dateien zwischen Windows und WSL2 führen.
  • Root-Zugriff: Standardmäßig wird dir in WSL2 kein Root-Zugriff gewährt. Dies kann die Installation und Konfiguration bestimmter Anwendungen einschränken.

Betriebssystem-Updates

  • Windows-Updates: WSL2-Kernel-Updates können durch Windows-Updates überschrieben werden, was zu Kompatibilitätsproblemen führen kann.
  • Linux-Distribution-Updates: Linux-Distributionen, die unter WSL2 ausgeführt werden, müssen separat aktualisiert werden.

Weitere Einschränkungen

  • Keine automatische Anmeldung: WSL2 unterstützt derzeit keine automatische Anmeldung, sodass du dich jedes Mal manuell anmelden musst.
  • Kein direkter Zugriff auf die Windows-Registrierung: WSL2-Anwendungen haben keinen direkten Zugriff auf die Windows-Registrierung.
  • Experimentelle Unterstützung: WSL2 befindet sich noch in der Entwicklung und einige Funktionen sind möglicherweise noch experimentell und können sich ändern.

Installation und Konfiguration von WSL2 unter Windows

Die Installation und Konfiguration von WSL2 unter Windows ist ein unkomplizierter Prozess, der in wenigen Schritten abgeschlossen werden kann.

Systemanforderungen

Bevor du mit der Installation beginnst, stelle sicher, dass dein System die folgenden Mindestanforderungen erfüllt:

  • Windows 10 Version 2004 oder höher
  • Virtualisierung in der BIOS- oder UEFI-Firmware aktiviert
  • Eine moderne CPU mit mindestens 2 Kernen
  • Mindestens 4 GB RAM

Installation von WSL2

  1. Aktiviere die Windows-Subsystem für Linux-Funktion: Öffne PowerShell als Administrator und führe den folgenden Befehl aus:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  1. Installiere einen Linux-Kernel: Besuche den Microsoft Store, wähle eine Linux-Distribution deiner Wahl aus (z. B. Ubuntu) und klicke auf "Installieren".

Konfiguration von WSL2

  1. Erstelle ein Benutzerkonto: Nach der Installation der Linux-Distribution wirst du aufgefordert, einen Benutzernamen und ein Kennwort für dein Linux-Konto zu erstellen.

  2. Lege die Standarddistribution fest: Wenn du mehrere Linux-Distributionen installiert hast, kannst du eine Standarddistribution festlegen, indem du in PowerShell den folgenden Befehl ausführst:

wsl --set-default-version <Distributionsname>
  1. Passe die Einstellungen an (optional): Du kannst die Einstellungen von WSL2 über die Datei ".wslconfig" im Verzeichnis "%userprofile%.wslconfig" anpassen. Weitere Informationen findest du in der Microsoft-Dokumentation.

  2. Starte Linux: Öffne das Windows-Startmenü und suche nach deiner Linux-Distribution. Klicke auf die Distribution, um sie zu starten.

Beliebte Linux-Distributionen, die unter WSL2 ausgeführt werden können

WSL2 bietet dir die Möglichkeit, eine Vielzahl beliebter Linux-Distributionen auf deinem Windows-System auszuführen. Hier ist eine Liste der am häufigsten verwendeten Distributionen:

Ubuntu

Ubuntu ist eine benutzerfreundliche und weit verbreitete Linux-Distribution, die eine breite Palette von Software-Paketen und eine aktive Community bietet.

Debian

Debian ist eine stabile und zuverlässige Distribution, die eine hervorragende Grundlage für Server und Desktops bietet.

Fedora

Fedora ist eine von Red Hat unterstützte Distribution, die auf die neuesten Softwareversionen und Innovationen ausgerichtet ist.

###openSUSE

openSUSE ist eine community-basierte Distribution, die sowohl traditionelle als auch moderne Ansätze bei der Linux-Entwicklung verfolgt.

Kali Linux

Kali Linux ist eine auf Penetrationstests und Sicherheit ausgerichtete Distribution, die eine breite Palette von Tools und Frameworks enthält.

Gentoo

Gentoo ist eine hochgradig anpassbare Distribution, die dir die vollständige Kontrolle über den Build-Prozess deiner Anwendungen gibt.

Arch Linux

Arch Linux ist eine minimalistische und flexible Distribution, die sich perfekt für fortgeschrittene Benutzer eignet, die ihr System von Grund auf aufbauen möchten.

Zusätzlich zu diesen Kern-Distributionen kannst du auch andere beliebte Distributionen wie CentOS, Red Hat Enterprise Linux (RHEL) und SUSE Linux Enterprise Server (SLES) unter WSL2 ausführen.

Auswahl der richtigen Distribution

Die Wahl der richtigen Linux-Distribution für WSL2 hängt von deinen individuellen Bedürfnissen und Vorlieben ab. Wenn du nach einer benutzerfreundlichen und weit verbreiteten Option suchst, ist Ubuntu eine gute Wahl. Wenn du Stabilität und Zuverlässigkeit schätzt, solltest du Debian in Betracht ziehen. Und wenn du die neuesten Funktionen und Innovationen nutzen möchtest, ist Fedora eine gute Option.

Optimierung der Leistung von WSL2

Um die Leistung von WSL2 zu maximieren, solltest du die folgenden Überlegungen anstellen:

Hardware-Ressourcen zuweisen

  • RAM: Weist du deiner WSL2-Instanz genügend RAM zu, um deine Anwendungen reibungslos auszuführen. Öffne dazu die Windows-Einstellungen > WSL > Standardoptionen.
  • CPU-Kerne: Wenn dein System über mehrere CPU-Kerne verfügt, kannst du deiner WSL2-Instanz zusätzliche Kerne zuweisen. Dies kann die Leistung von Anwendungen verbessern, die Multithreading nutzen.
  • SSD: Die Verwendung eines Solid-State-Laufwerks (SSD) für das WSL2-Dateisystem kann die Ladezeiten von Anwendungen und Dateien verkürzen.

Hyper-V-Einstellungen anpassen

  • Aktiviere die nested Virtualisierung: Diese Funktion ermöglicht die Ausführung von virtuellen Maschinen innerhalb von WSL2. Sie kann die Leistung von anspruchsvollen Anwendungen verbessern, die Virtualisierung erfordern. Du kannst sie in den Windows-Einstellungen > System > Entwickler aktivieren.
  • Deaktiviere Hyper-V-Isolierung: Diese Funktion bietet zusätzliche Sicherheit, kann aber die Leistung beeinträchtigen. Du kannst sie in den Windows-Einstellungen > Sicherheit > Geräte > Core-Isolierung deaktivieren.

WSL2-spezifische Einstellungen optimieren

  • Experimentelle GPU-Unterstützung: Diese Funktion ermöglicht den Zugriff auf die GPU deines Systems in WSL2. Sie kann die Leistung von grafikintensiven Anwendungen verbessern. Du kannst sie in den Windows-Einstellungen > GPU-Geräte für Windows-Subsystem für Linux aktivieren.
  • Verwende einen Linux-Kernel der neueren Version: Microsoft veröffentlicht regelmäßig aktualisierte Linux-Kernel für WSL2. Diese Kernel beinhalten häufig Leistungsverbesserungen. Du kannst den Kernel mit dem Befehl wsl --update aktualisieren.
  • Verwende ein leichtgewichtiges Linux-Image: Einige Linux-Distributionen sind für WSL2 besser optimiert als andere. Beispielsweise bietet Alpine Linux eine geringe Größe und einen schnellen Start.

Zusätzliche Tipps

  • Räume den WSL2-Dateien Speicherplatz zu: Stell sicher, dass das Dateisystem des Hosts über genügend Speicherplatz für die WSL2-Dateien verfügt.
  • Verwende symlinked Ordner: Wenn du auf Dateien auf deinem Windows-Hostsystem zugreifen musst, kannst du symlinked Ordner erstellen, anstatt sie zu kopieren. Dies kann die Leistung verbessern.
  • Deaktiviere unnötige Dienste: Deaktiviere nicht verwendete Dienste in deiner WSL2-Instanz, um Ressourcen freizugeben.

Problembehandlung bei häufigen Problemen mit WSL2

Trotz seiner Robustheit kann es bei der Verwendung von WSL2 zu gelegentlichen Problemen kommen. Um dir bei der Problemlösung zu helfen, sind hier einige häufig auftretende Probleme und ihre entsprechenden Lösungen aufgeführt:

WSL2 startet nicht

  • Überprüfe die Windows-Anforderungen: Stelle sicher, dass du die minimalen Systemanforderungen für WSL2 erfüllst, einschließlich der Unterstützung für Virtualisierung.
  • Aktiviere die Virtualisierungsfunktion in deinem BIOS: Auf einigen Systemen ist die Virtualisierung möglicherweise standardmäßig deaktiviert. Aktiviere sie über die BIOS-Einstellungen deines Systems.
  • Installiere den Windows-Kernel-Patch: Aktualisiere auf die neueste Version von Windows, um sicherzustellen, dass du den Kernel-Patch hast, der für WSL2 erforderlich ist.

Netzwerkprobleme

  • Überprüfe deine Firewall-Einstellungen: Die Windows-Firewall kann die Netzwerkverbindung von WSL2 blockieren. Öffne die Firewall-Einstellungen und erlaube der WSL2-Netzwerkschnittstelle den Zugriff auf das private und öffentliche Netzwerk.
  • Setze deine Netzwerkadapter zurück: Manchmal können Netzwerkprobleme durch Zurücksetzen der Netzwerkadapter behoben werden. Öffne die Eingabeaufforderung als Administrator und führe die folgenden Befehle aus:
    netsh int ip reset
    netsh winsock reset
    
  • Verwende einen anderen DNS-Server: Wenn du Probleme beim Auflösen von Domänennamen hast, versuche, den DNS-Server in WSL2 zu ändern. Öffne eine WSL2-Shell und führe den folgenden Befehl aus:
    sudo nano /etc/resolv.conf
    
    Füge die folgende Zeile hinzu:
    nameserver 8.8.8.8
    
    Speichere die Datei und starte WSL2 neu.

Leistungsprobleme

  • Verwende Hardwarebeschleunigung: Wenn du GPU-intensive Aufgaben in WSL2 ausführst, aktiviere die Hardwarebeschleunigung. Öffne das Windows-Terminal, klicke auf das Dropdown-Menü neben dem "Neue Registerkarte"-Button und wähle "Einstellungen". Aktiviere unter "Erweiterte Optionen" die Option "Virtuelle GPU".
  • Optimiere deine WSL2-Konfiguration: Einige Änderungen an deiner WSL2-Konfigurationsdatei können die Leistung verbessern. Öffne eine WSL2-Shell und führe den folgenden Befehl aus:
    sudo nano ~/.wslconfig
    
    Füge folgende Zeilen hinzu:
    [wsl2]
    kernel=latest
    swapfile=8GB
    
    Speichere die Datei und starte WSL2 neu.

Sonstige Probleme

  • Aktualisiere WSL2: Vergewissere dich, dass du die neueste Version von WSL2 verwendest. Öffne die Microsoft Store-App und prüfe, ob Updates für WSL2 verfügbar sind.
  • Überprüfe die Protokolldateien: Wenn du weitere Hilfe bei der Problembehandlung benötigst, kannst du die Protokolldateien von WSL2 überprüfen. Öffne eine Eingabeaufforderung als Administrator und führe den folgenden Befehl aus:
    cd %LOCALAPPDATA%\lxss\
    findstr -s -i "error" *.log
    
  • Sende Feedback: Wenn du auf ein Problem stößt, das du nicht selbst beheben kannst, sende Feedback an das WSL-Team unter https://github.com/microsoft/WSL/issues.

Verwendungen und Anwendungsfälle für WSL2

Entwicklung und Testen

WSL2 ist ein ideales Werkzeug für Entwickler, die sowohl Windows als auch Linux verwenden möchten. Du kannst Linux-basierte Entwicklungstools und -workflows unter Windows nutzen, ohne eine separate virtuelle Maschine einrichten zu müssen. Dies vereinfacht das Entwickeln und Testen von Anwendungen, die sowohl für Windows als auch für Linux gedacht sind.

Webentwicklung

WSL2 bietet eine nahtlose Integration mit gängigen Webentwicklungstools und -Frameworks wie Node.js, Python und Docker. Du kannst deine Entwicklungsumgebung in Linux einrichten und gleichzeitig von den Vorteilen von Windows wie dem einfachen Zugriff auf Visual Studio Code und anderen integrierten Entwicklungsumgebungen profitieren.

Data Science und maschinelles Lernen

Die starke Linux-Unterstützung von WSL2 macht es zu einer hervorragenden Wahl für Data Science und Machine Learning. Du kannst ML-Frameworks wie TensorFlow und scikit-learn verwenden, auf umfangreiche Datensätze in Linux zugreifen und nahtlos mit anderen Tools wie Jupyter Notebooks und VS Code arbeiten.

Systementwicklung und DevOps

WSL2 kann als Sandbox-Umgebung für Systementwicklung und DevOps dienen. Du kannst Linux-Befehlszeilentools und -Skripte verwenden, um Systemkonfigurationen zu verwalten, Software zu installieren und automatisierte Tests durchzuführen, ohne die Stabilität deines Windows-Systems zu beeinträchtigen.

Serverlose Funktionen

Mit WSL2 kannst du serverlose Funktionen in Linux entwickeln und bereitstellen. Du kannst die Azure Functions Core Tools verwenden, um lokale Entwicklungs- und Bereitstellungsfunktionen einzurichten, ohne eine virtuelle Maschine oder einen Container bereitstellen zu müssen.

Vergleich von WSL2 mit anderen Methoden zur Ausführung von Linux unter Windows

WSL2 bietet erhebliche Vorteile gegenüber anderen Methoden zur Ausführung von Linux unter Windows. Im Folgenden findest du eine Gegenüberstellung von WSL2 mit den gängigsten Alternativen:

Virtuelle Maschinen (VMs)

Vorteile von VMs:

  • Vollständige Isolierung vom Windows-Host
  • Bessere Hardwareunterstützung
  • Höhere Kompatibilität mit Linux-Software

Vorteile von WSL2:

  • Schnellere Leistung
  • Geringerer Ressourcenverbrauch
  • Engere Integration mit Windows

Dual-Boot

Vorteile von Dual-Boot:

  • Native Linux-Erfahrung
  • Kein Leistungseinbruch
  • Volle Hardwareunterstützung

Vorteile von WSL2:

  • Möglichkeit, Linux und Windows gleichzeitig auszuführen
  • Nahtlose Dateifreigabe
  • Einfacher Wechsel zwischen Betriebssystemen

Linux-Subsystem (WSL1)

Vorteile von WSL1:

  • Einfache Installation
  • Direkter Zugriff auf Windows-Dateien
  • Bequeme Verwendung von Windows-Programmen

Vorteile von WSL2:

  • Verbesserte Leistung durch die Verwendung eines Linux-Kernels
  • Unterstützung für Grafikbeschleunigung
  • Möglichkeit, Anwendungen mit GUI zu auszuführen

Zukunftspläne und Roadmap für WSL

Microsoft ist bestrebt, WSL kontinuierlich zu verbessern und mit neuen Funktionen und Verbesserungen zu erweitern. Hier sind einige Details zu den Zukunftsplänen und der Roadmap für WSL:

Langfristige Vision für WSL

Die langfristige Vision für WSL ist es, eine native Linux-Umgebung auf Windows-Geräten bereitzustellen, die eine vollständige Kompatibilität und nahtlose Integration bietet. Dazu gehören:

  • Erweiterte Kernel-Funktionen: Unterstützung für zusätzliche Linux-Kernel-Funktionen, wie z. B. native Docker-Unterstützung, Hardware-Beschleunigung und Echtzeit-Funktionalität.
  • Volle Hardware-Unterstützung: Optimierte Unterstützung für eine breitere Palette von Hardwarekomponenten, einschließlich Grafikkarten, Audiogeräten und Peripheriegeräten.
  • Verbesserte GUI-Integration: Nahtlose Integration zwischen Linux- und Windows-GUI-Anwendungen, einschließlich der Möglichkeit, Linux-Anwendungen im Windows-Startmenü auszuführen und übergeordnete Ordner zu teilen.

In Kürze kommende Funktionen

In den kommenden Monaten kannst du die folgenden Verbesserungen und Funktionen für WSL erwarten:

  • WSLg: Eine neue Funktion, die eine vollständige grafische Oberfläche mit GPU-Beschleunigung für Linux-Anwendungen ermöglicht.
  • Verbesserte Dateisystemleistung: Wesentliche Verbesserungen der Leistung des Dateisystems, die zu schnelleren Start- und Ladezeiten für Linux-Anwendungen führen.
  • Erweiterte Windows-Subsystem-Kompatibilität: Unterstützung für eine größere Anzahl von Linux-Distributionen und die Möglichkeit, mehrere Linux-Kernel nebeneinander auszuführen.

Gemeinschaftliche Beteiligung

Microsoft arbeitet eng mit der Linux-Community zusammen, um Feedback zu sammeln und die Entwicklung von WSL voranzutreiben. Du kannst dich über die GitHub-Seite von WSL am Entwicklungsprozess beteiligen und Ideen und Vorschläge einbringen.

Fazit

Die Zukunft von WSL ist hell. Microsoft ist entschlossen, WSL zu einer noch mächtigeren und nahtloseren Möglichkeit zu machen, Linux unter Windows auszuführen. Indem du die Zukunftspläne und die Roadmap von WSL im Auge behältst, kannst du sicherstellen, dass du immer auf dem neuesten Stand der neuesten Entwicklungen und Funktionen bist.

Folge uns

Neue Posts

Beliebte Posts