Microsoft hat begonnen, den Start von Linux-GUI-Anwendungen unter Windows zu testen. Dies wird auf Basis des WSL2-Subsystems (Windows Subsystem for Linux) implementiert, das das Unternehmen seit vielen Monaten entwickelt. Es wird darauf hingewiesen, dass Anwendungen vollständig in den Windows-Desktop integriert sind, einschließlich der Platzierung von Verknüpfungen im Startmenü, der Wiedergabe von Ton, der Aufnahme von einem Mikrofon und der Hardwarebeschleunigung OpenGL. Die Anzeige von Informationen über Software in der Taskleiste ist ebenfalls implementiert. Sie können mit Alt + Tab zwischen Programmen wechseln. Daten zwischen Linux- und Windows-Anwendungen können über die Zwischenablage kopiert werden.
Die Linux-Anwendungsoberfläche wird auf dem Windows-Hauptdesktop mithilfe des RAIL-Shell-Verbundmanagers angezeigt. Es verwendet das Wayland-Protokoll und basiert auf der Weston-Codebasis. Die Ausgabe wird über das RDP-RAIL-Backend (RDP Remote Application Integrated Local) implementiert, das den Desktop nicht rendert, sondern einzelne Oberflächen über den RDP RAIL-Kanal umleitet, um auf dem Windows-Hauptdesktop angezeigt zu werden. X11-Anwendungen werden mit XWayland ausgeführt.
Andere Details
Das Unternehmen verwendet eine interessante Methode zur Tonausgabe - mithilfe des PulseAudio-Servers. Der Server interagiert mit dem Betriebssystem über das RDP-Protokoll (das rdp-sink-Plugin wird für die Tonausgabe und die rdp-Quelle für die Eingabe verwendet). Dieser Server und XWayland befinden sich in einer generischen Mini-Distributions-WSLGd. Es enthält Komponenten zur Abstraktion von Grafik- und Sound-Subsystemen.
All dies basiert auf der CBL-Mariner Linux-Distribution, die Microsoft ebenfalls verwendet - in seiner Cloud-Infrastruktur. Die Mini-Distribution wird mithilfe von Virtualisierungsmechanismen gestartet. Gleichzeitig wird der gemeinsame Zugriff zwischen der Linux-Gastumgebung und dem Windows-Host mithilfe von virtio-fs implementiert.
Die Entwickler haben FreeRDP als RDP-Server ausgewählt, der in der WSLGd-Linux-Umgebung ausgeführt wird. Für dieselbe Aufgabe verwendet Widnows OS mstsc. Der WSLDVCPlugin-Handler wird verwendet, um die verfügbaren grafischen Linux-Anwendungen zu identifizieren und im Windows-Menü anzuzeigen. Sie können mit Linux-Distributionen in einer WLS2-Umgebung interagieren, indem Sie Sockets bereitstellen, die Wayland-, X11- und PulseAudio-Anforderungen verarbeiten. Die für WSLGd vorbereiteten Bindungen sind unter der MIT-Lizenz lizenziert.
Wie erhalte ich Zugriff auf neue Funktionen?
Dazu müssen Sie mindestens Windows 10 Insider Preview Version 21362 installieren. Die Entwickler versprechen, dass in naher Zukunft regelmäßige Windows-Editionen ausreichen, um WSLGd zu installieren, und der Benutzer nicht am Insider Preview-Programm teilnehmen muss .
Installiert WSLGd mit dem Befehl "wsl --install", z. B. für Ubuntu - "wsl --install -d Ubuntu". Bei vorhandenen WSL2-Umgebungen wird WSLGd über den Befehl "wsl --update" installiert (nur WSL2-Umgebungen, die den Linux-Kernel verwenden, werden unterstützt, keine Aufrufübersetzung). Grafische Anwendungen werden über den regulären Paketmanager des Distributionskits installiert.
WSLGd unterstützt nur 2D-Grafiken. Wenn Sie 3D-Grafiken auf Basis von OpenGL benötigen, wird ein anderer Mechanismus verwendet - die virtuelle GPU (vGPU). Treiber dafür gibt es in drei Versionen - für AMD- , Intel- und NVIDIA- Chips ... Das Arbeiten mit Grafiken erfolgt durch Bereitstellung einer Ebene mit der Implementierung von OpenGL auf DirectX 12. Die Ebene wird in Form des d3d12-Treibers entworfen, der im Hauptteil von Mesa 21.0 enthalten ist, und wird gemeinsam mit Collabora entwickelt.
Unter Linux ist die virtuelle GPU auf dem Gerät / dev / dxg mit Diensten implementiert, die das Windows Display Driver Model (WDDM) D3DKMT des Windows-Kernels imitieren. In diesem System stellt der Treiber über den VM-Bus eine Verbindung zum physischen Videochip her. Linux-Anwendungen haben den gleichen GPU-Zugriff wie native Windows-Anwendungen. Es gibt keine gemeinsame Nutzung von Ressourcen zwischen Windows und Linux.
Beim Leistungstest eines Surface Book Gen3-basierten Systems mit einer Intel-GPU stellte sich heraus, dass der Geeks3D GpuTest-Benchmark 19 FPS unter Windows und 18 FPS unter Linux anzeigt. In Mesa mit Software-Rendering - nur 1 FPS.
Ein bisschen Hintergrund
WSL2 wurde am 20. August 2020 für Windows-Benutzer verfügbar. Zu diesem Zeitpunkt veröffentlichte Microsoft das kumulative Update KB4566116.
Nach der Installation begannen Benutzer von Windows 10, Version 1903 und Version 1909, WSL2 zu testen, und die Bewertungen waren größtenteils positiv. Bis zum 20. August war nur die WSL der ersten Version verfügbar, und nur in Windows 10 Version 2004.
Die Arbeit an der ersten Version der WSL begann vor einigen Jahren. Die offizielle Ankündigung des Subsystems erfolgte auf der Microsoft Build 2016-Konferenz. Die Ankündigung war kurz - dann wurde innerhalb weniger Minuten über die Funktionen der WSL gesprochen. Aber er sorgte mit der Ankündigung, dass die Organisatoren der Konferenz sogar vermuteten, dass jemand einen DDoS-Angriff organisiert hatte, für so viel Aufsehen und Verkehrsaufkommen auf der Seite.
Seitdem hat sich die WSL stark weiterentwickelt, und jetzt entwickelt sich das Subsystem weiter.