Microsoft hat damit begonnen, die Unterstützung für die Ausführung von Linux-GUI-Anwendungen unter Windows zu testen

Microsoft hat den Beginn des Testens der Fähigkeit angekündigt, Linux-Anwendungen mit einer grafischen Oberfläche in Umgebungen auszuführen, die auf dem WSL2-Subsystem (Windows-Subsystem für Linux) basieren und für die Ausführung ausführbarer Linux-Dateien unter Windows konzipiert sind. Anwendungen sind vollständig in den Haupt-Windows-Desktop integriert, einschließlich Unterstützung für das Platzieren von Verknüpfungen im Startmenü, Audiowiedergabe, Mikrofonaufzeichnung, OpenGL-Hardwarebeschleunigung, Anzeige von Informationen zu Programmen in der Taskleiste, Wechseln zwischen Programmen mit Alt-Tab und Kopieren von Daten zwischen Windows - und Linux-Programme über die Zwischenablage.

Microsoft hat damit begonnen, die Unterstützung für die Ausführung von Linux-GUI-Anwendungen unter Windows zu testen

Um die Ausgabe der Linux-Anwendungsschnittstelle auf den Haupt-Windows-Desktop zu organisieren, wird der von Microsoft entwickelte RAIL-Shell-Composite-Manager verwendet, der das Wayland-Protokoll verwendet und auf der Weston-Codebasis basiert. Die Ausgabe erfolgt über das RDP-RAIL-Backend (RDP Remote Application Integrated Locally), das sich vom bisher in Weston verfügbaren RDP-Backend dadurch unterscheidet, dass der Composite Manager nicht den Desktop selbst rendert, sondern einzelne Oberflächen (wl_surface) über das RDP umleitet RAIL-Kanal zur Anzeige auf dem Haupt-Windows-Desktop. XWayland wird zum Ausführen von X11-Anwendungen verwendet.

Microsoft hat damit begonnen, die Unterstützung für die Ausführung von Linux-GUI-Anwendungen unter Windows zu testen

Die Audioausgabe wird über den PulseAudio-Server organisiert, der auch über das RDP-Protokoll mit Windows interagiert (das RDP-Sink-Plugin wird für die Audioausgabe und das RDP-Source-Plugin für die Eingabe verwendet). Der Verbundserver, XWayland und PulseAudio sind in Form einer universellen Mini-Distribution namens WSLGd verpackt, die Komponenten zur Abstraktion der Grafik- und Audio-Subsysteme enthält und auf der CBL-Mariner-Linux-Distribution basiert, die auch in der Microsoft-Cloud-Infrastruktur verwendet wird . WSLGd wird mithilfe von Virtualisierungsmechanismen ausgeführt, und virtio-fs wird verwendet, um den Zugriff zwischen der Linux-Gastumgebung und dem Windows-Hostsystem zu teilen.

FreeRDP wird als RDP-Server verwendet, der in der WSLGd-Linux-Umgebung gestartet wird, und mstsc fungiert als RDP-Client auf der Windows-Seite. Um vorhandene grafische Linux-Anwendungen zu erkennen und im Windows-Menü anzuzeigen, wurde ein WSLDVCPlugin-Handler vorbereitet. Wenn herkömmliche Linux-Distributionen wie Ubuntu, Debian und CenOS in einer WSL2-Umgebung installiert sind, interagieren die in WSLGd ausgeführten Komponenten, indem sie Sockets bereitstellen, die Anforderungen mithilfe der Protokolle Wayland, X11 und PulseAudio verarbeiten. Die für WSLGd vorbereiteten Bindungen werden unter der MIT-Lizenz vertrieben.

Für die Installation von WSLGd ist Windows 10 Insider Preview mindestens Version 21362 erforderlich. Zukünftig wird WSLGd für reguläre Editionen von Windows verfügbar sein, ohne dass eine Teilnahme am Insider Preview-Programm erforderlich ist. Die Installation von WSLGd erfolgt durch Ausführen des Standardbefehls „wsl –install“, beispielsweise für Ubuntu – „wsl –install -d Ubuntu“. Für bestehende WSL2-Umgebungen erfolgt die Installation von WSLGd mit dem Befehl „wsl --update“ (es werden nur WSL2-Umgebungen unterstützt, die den Linux-Kernel und keine Aufrufübersetzung verwenden). Grafische Anwendungen werden über den Standardpaketmanager der Distribution installiert.

WSLGd bietet nur Engines für die 2D-Grafikausgabe und um 3D-Grafiken auf Basis von OpenGL zu beschleunigen, bieten in WSL2 installierte Distributionen die Verwendung einer virtuellen GPU (vGPU). vGPU-Treiber für WSL werden für AMD-, Intel- und NVIDIA-Chips bereitgestellt. Die Grafikbeschleunigung wird durch die Bereitstellung eines Layers mit der Implementierung von OpenGL über DirectX 12 gewährleistet. Der Layer ist in Form des d3d12-Treibers konzipiert, der im Hauptteil von Mesa 21.0 enthalten ist und gemeinsam mit Collabora entwickelt wird.

Die virtuelle GPU wird in Linux mithilfe des /dev/dxg-Geräts mit Diensten implementiert, die das WDDM (Windows Display Driver Model) D3DKMT des Windows-Kernels replizieren. Der Treiber stellt über den VM-Bus eine Verbindung zur physischen GPU her. Linux-Anwendungen verfügen über den gleichen GPU-Zugriff wie native Windows-Anwendungen, ohne dass eine gemeinsame Nutzung von Ressourcen zwischen Windows und Linux erforderlich ist. Leistungstests auf einem Surface Book Gen3-Gerät mit einer Intel-GPU zeigten, dass der Geeks32D GpuTest-Test in der nativen Win3-Umgebung 19 FPS, in einer Linux-Umgebung mit vGPU 18 FPS und mit Software-Rendering in Mesa 1 FPS anzeigt.



Source: opennet.ru

Kommentar hinzufügen