Microsoft begyndte at teste support til at køre Linux GUI-applikationer på Windows

Microsoft har annonceret starten på at teste evnen til at køre Linux-applikationer med en grafisk grænseflade i miljøer baseret på WSL2-undersystemet (Windows Subsystem for Linux), designet til at køre Linux-eksekverbare filer på Windows. Applikationer er fuldt integreret med Windows' hovedskrivebord, herunder understøttelse af placering af genveje i startmenuen, lydafspilning, mikrofonoptagelse, OpenGL hardwareacceleration, visning af information om programmer på proceslinjen, skift mellem programmer ved hjælp af Alt-Tab, kopiering af data mellem Windows - og Linux-programmer via klippebordet.

Microsoft begyndte at teste support til at køre Linux GUI-applikationer på Windows

For at organisere outputtet af Linux-applikationsgrænsefladen til Windows-hovedskrivebordet, bruges RAIL-Shell-kompositmanageren udviklet af Microsoft, ved hjælp af Wayland-protokollen og baseret på Weston-kodebasen. Output udføres ved hjælp af RDP-RAIL (RDP Remote Application Integrated Locally) backend, som adskiller sig fra RDP-backend, der tidligere var tilgængelig i Weston, ved at den sammensatte manager ikke gengiver skrivebordet selv, men omdirigerer individuelle overflader (wl_surface) over RDP'en RAIL-kanal til visning på hovedvinduet i Windows. XWayland bruges til at køre X11-applikationer.

Microsoft begyndte at teste support til at køre Linux GUI-applikationer på Windows

Lydoutput organiseres ved hjælp af PulseAudio-serveren, som også interagerer med Windows ved hjælp af RDP-protokollen (rdp-sink plugin bruges til lydoutput, og rdp-source plugin bruges til input). Den sammensatte server, XWayland og PulseAudio er pakket i form af en universel minidistribution kaldet WSLGd, som inkluderer komponenter til at abstrahere grafik- og lydundersystemerne og er baseret på CBL-Mariner Linux-distributionen, der også bruges i Microsofts cloud-infrastruktur . WSLGd kører ved hjælp af virtualiseringsmekanismer, og virtio-fs bruges til at dele adgang mellem Linux-gæstemiljøet og Windows-værtssystemet.

FreeRDP bruges som en RDP-server lanceret i WSLGd Linux-miljøet, og mstsc fungerer som en RDP-klient på Windows-siden. For at detektere eksisterende grafiske Linux-applikationer og vise dem i Windows-menuen, er der udarbejdet en WSLDVCPlugin-handler. Med konventionelle Linux-distributioner som Ubuntu, Debian og CenOS installeret i et WSL2-miljø, interagerer sættet af komponenter, der kører i WSLGd, ved at levere sockets, der håndterer anmodninger ved hjælp af Wayland-, X11- og PulseAudio-protokollerne. Bindingerne forberedt til WSLGd distribueres under MIT-licensen.

Installation af WSLGd kræver Windows 10 Insider Preview mindst version 21362. Fremover vil WSLGd være tilgængelig til almindelige udgaver af Windows uden behov for at deltage i Insider Preview-programmet. Installation af WSLGd udføres ved at udføre standardkommandoen "wsl —install", for eksempel for Ubuntu - "wsl —install -d Ubuntu". For eksisterende WSL2-miljøer udføres installationen af ​​WSLGd ved hjælp af kommandoen "wsl --update" (kun WSL2-miljøer, der bruger Linux-kernen og ikke opkaldsoversættelse, understøttes). Grafiske applikationer installeres gennem distributionens standardpakkehåndtering.

WSLGd leverer kun motorer til 2D-grafikoutput, og for at accelerere 3D-grafik baseret på OpenGL tilbyder distributioner installeret i WSL2 brugen af ​​en virtuel GPU (vGPU). vGPU-drivere til WSL leveres til AMD-, Intel- og NVIDIA-chips. Grafikacceleration leveres gennem tilvejebringelsen af ​​et lag med implementering af OpenGL over DirectX 12. Laget er designet i form af d3d12-driveren, som er inkluderet i hoveddelen af ​​Mesa 21.0 og udvikles sammen med Collabora.

Den virtuelle GPU er implementeret i Linux ved hjælp af /dev/dxg-enheden med tjenester, der replikerer WDDM (Windows Display Driver Model) D3DKMT i Windows-kernen. Driveren etablerer en forbindelse til den fysiske GPU ved hjælp af VM-bussen. Linux-applikationer har samme niveau af GPU-adgang som native Windows-applikationer uden behov for ressourcedeling mellem Windows og Linux. Ydeevnetest på en Surface Book Gen3-enhed med en Intel GPU viste, at i det native Win32-miljø demonstrerer Geeks3D GpuTest-testen 19 FPS, i et Linux-miljø med vGPU - 18 FPS og med softwaregengivelse i Mesa - 1 FPS.



Kilde: opennet.ru

Tilføj en kommentar