Microsoft hat mit den Tests zur Unterstützung des Starts von GUI-Anwendungen unter Linux in Windows begonnen.

Microsoft hat den Beginn der Testphase für die Ausführung von Linux-Anwendungen mit grafischem Benutzerinterface in Umgebungen auf Basis des WSL2 (Windows Subsystem for Linux) angekündigt, das für die Ausführung von Linux-Executable-Dateien in Windows vorgesehen ist. Die Anwendungen sind vollständig in die Windows-Arbeitsumgebung integriert und unterstützen unter anderem das Platzieren von Verknüpfungen im Startmenü, die Audiowiedergabe, die Mikrofonaufnahme, die Hardwarebeschleunigung von OpenGL, die Anzeige von Programminformationen in der Taskleiste, das Wechseln zwischen Programmen mit Alt-Tab und das Kopieren von Daten zwischen Windows- und Linux-Anwendungen über die Zwischenablage.

Microsoft hat mit den Tests zur Unterstützung des Starts von GUI-Anwendungen unter Linux in Windows begonnen.

Für die Ausgabe der Benutzeroberfläche von Linux-Anwendungen auf dem Windows-Arbeitsdesktop wird der von Microsoft entwickelte Compositing-Manager RAIL-Shell verwendet, der das Wayland-Protokoll nutzt und auf dem Code von Weston basiert. Die Ausgabe erfolgt über den RDP-RAIL-Backend (RDP Remote Application Integrated Locally), der sich von dem zuvor in Weston verfügbaren RDP-Backend dadurch unterscheidet, dass der Compositing-Manager das Desktop-Grafiken nicht selbst rendert, sondern separate Oberflächen (wl_surface) über den RDP RAIL-Kanal umleitet, um sie auf dem Windows-Desktop anzuzeigen. Für die Ausführung von X11-Anwendungen wird XWayland verwendet.

Microsoft hat mit den Tests zur Unterstützung des Starts von GUI-Anwendungen unter Linux in Windows begonnen.

Die Audiowiedergabe wird organisiert mit Server PulseAudio, das ebenfalls über das RDP-Protokoll mit Windows kommuniziert (für die Audiowiedergabe wird das Plugin rdp-sink verwendet, und für die Eingabe — rdp-source). Der Compositing-Server, XWayland und PulseAudio sind in einer universellen Mini-Distribution WSLGd verpackt, die Komponenten zur Abstraktion der grafischen und akustischen Subsysteme enthält und auf der Distribution CBL-Mariner Linux basiert, die ebenfalls in der Cloud-Infrastruktur von Microsoft verwendet wird. WSLGd wird unter Verwendung von Virtualisierungstechniken gestartet, und für den gemeinsamen Zugriff zwischen der Linux-Gästeumgebung und dem Windows-Hostsystem wird virtio-fs verwendet.

Als RDP-Server, die in einer Linux-Umgebung WSLGd ausgeführt wird, verwendet FreeRDP, und auf der Windows-Seite fungiert mstsc als RDP-Client. Um vorhandene grafische Linux-Anwendungen zu identifizieren und im Windows-Menü anzuzeigen, wurde der WSLDVCPlugin-Handler vorbereitet. In der WSL2-Umgebung werden gängige Linux-Distributionen wie Ubuntu, Debian und CentOS installiert, wobei das in WSLGd ausgeführte Komponentenpaket über Sockets kommuniziert, die Anfragen über die Protokolle Wayland, X11 und PulseAudio verarbeiten. Die für WSLGd vorbereiteten Bindungen werden unter der MIT-Lizenz verbreitet.

Für die Installation von WSLGd ist mindestens Windows 10 Insider Preview in der Version 21362 erforderlich. Zukünftig wird die Möglichkeit zur Installation von WSLGd auch für reguläre Windows-Versionen angeboten, ohne dass eine Teilnahme am Insider Preview-Programm erforderlich ist. Die Installation von WSLGd erfolgt durch die Eingabe des Standardbefehls „wsl —install“, beispielsweise für Ubuntu — „wsl —install -d Ubuntu“. Für bestehende WSL2-Umgebungen erfolgt die Installation von WSLGd über den Befehl „wsl —update“ (unterstützt werden nur WSL2-Umgebungen, die einen Linux-Kernel verwenden und nicht die Systemaufrufsübersetzung). Grafische Anwendungen werden über den integrierten Paketmanager der Distribution installiert.

WSLGd bietet lediglich Mechanismen zur Ausgabe von 2D-Grafiken; zur Beschleunigung von 3D-Grafiken basierend auf OpenGL wird in den in WSL2 installierten Distributionen die Verwendung einer virtuellen GPU (vGPU) empfohlen. Die vGPU-Treiber für WSL sind für AMD-, Intel- und NVIDIA-Chips verfügbar. Die Grafikbeschleunigung erfolgt durch eine Schicht, die OpenGL über DirectX 12 realisiert. Diese Schicht ist als d3d12-Treiber gestaltet, der in das Hauptpaket von Mesa 21.0 aufgenommen und gemeinsam mit der Firma Collabora entwickelt wurde.

Der Betrieb der virtuellen GPU erfolgt unter Linux über das Gerät /dev/dxg mit Diensten, die das WDDM (Windows Display Driver Model) D3DKMT-Kernmodell von Windows nachahmen. Der Treiber stellt die Verbindung zum physischen GPU über den VM-Bus her. Linux-Anwendungen haben denselben Zugriff auf die GPU wie native Windows-Anwendungen, ohne dass eine Ressourcenaufteilung zwischen Windows und Linux erfolgt. Leistungstests auf dem Gerät Surface Book Gen3 mit Intel-GPU zeigten, dass der Test Geeks3D GpuTest im nativen Win32-Umfeld 19 FPS erreicht, in der Linux-Umgebung mit vGPU 18 FPS und bei der Software-Rendering in Mesa 1 FPS.

Video abspielen


Quelle: opennet.ru
60GB SSD 8Gb DDR4