Microsoft har begynt å teste støtte for å kjøre Linux GUI-applikasjoner på Windows

Microsoft har annonsert starten på å teste muligheten til å kjøre Linux-applikasjoner med et grafisk grensesnitt i miljøer basert på WSL2-undersystemet (Windows Subsystem for Linux), designet for å kjøre Linux-kjørbare filer på Windows. Applikasjoner er fullt integrert med hoved-Windows-skrivebordet, inkludert støtte for å plassere snarveier i Start-menyen, lydavspilling, mikrofonopptak, OpenGL maskinvareakselerasjon, visning av informasjon om programmer på oppgavelinjen, bytte mellom programmer ved hjelp av Alt-Tab, kopiering av data mellom Windows - og Linux-programmer via utklippstavlen.

 Microsoft har begynt å teste støtte for å kjøre Linux GUI-applikasjoner på Windows

For å organisere utdataene fra Linux-applikasjonsgrensesnittet til hoved-Windows-skrivebordet, brukes RAIL-Shell-komposittbehandleren utviklet av Microsoft, ved hjelp av Wayland-protokollen og basert på Weston-kodebasen. Utdata utføres ved å bruke RDP-RAIL (RDP Remote Application Integrated Locally) backend, som skiller seg fra RDP-backend som tidligere var tilgjengelig i Weston ved at den sammensatte administratoren ikke gjengir skrivebordet selv, men omdirigerer individuelle overflater (wl_surface) over RDP. RAIL-kanal for visning på hovedvinduet i Windows. XWayland brukes til å kjøre X11-applikasjoner.

 Microsoft har begynt å teste støtte for å kjøre Linux GUI-applikasjoner på Windows

Lydutgangen er organisert ved hjelp av server PulseAudio, som også kommuniserer med Windows via RDP-protokollen (ved hjelp av rdp-sink-pluginen for lydutgang og rdp-source for input). Den sammensatte serveren, XWayland, og PulseAudio er pakket som en universell minidistribusjon, WSLGd, som inkluderer komponenter for abstraksjon av grafikk- og lydundersystemene og er basert på CBL-Mariner Linux-distribusjonen, som også brukes i Microsofts skyinfrastruktur. WSLGd kjører ved hjelp av virtualiseringsmekanismer, og virtio-fs brukes til deling mellom Linux-gjestemiljøet og Windows-vertssystemet.

Som RDP-servereFreeRDP brukes i WSLGd Linux-miljøet, mens mstsc fungerer som Windows RDP-klient. En WSLDVCPlugin-håndterer er tilgjengelig for å oppdage tilgjengelige grafiske Linux-applikasjoner og vise dem i Windows-menyen. Settet med komponenter som kjører i WSLGd samhandler med vanlige Linux-distribusjoner installert i WSL2-miljøet, for eksempel Ubuntu, Debian og CenOS, ved å tilby sokkeler som håndterer forespørsler over Wayland-, X11- og PulseAudio-protokollene. WSLGd-bindingene distribueres under MIT-lisensen.

Installasjon av WSLGd krever Windows 10 Insider Preview minst versjon 21362. Fremover vil WSLGd være tilgjengelig for vanlige utgaver av Windows uten å måtte delta i Insider Preview-programmet. Installasjon av WSLGd utføres ved å utføre standardkommandoen "wsl —install", for eksempel for Ubuntu - "wsl —install -d Ubuntu". For eksisterende WSL2-miljøer, installeres WSLGd ved å bruke kommandoen "wsl --update" (bare WSL2-miljøer som bruker Linux-kjernen og ikke kalleoversettelse støttes). Grafiske applikasjoner installeres gjennom distribusjonens standard pakkebehandling.

WSLGd gir kun motorer for 2D-grafikkutgang, og for å akselerere 3D-grafikk basert på OpenGL, tilbyr distribusjoner installert i WSL2 bruk av en virtuell GPU (vGPU). vGPU-drivere for WSL leveres for AMD-, Intel- og NVIDIA-brikker. Grafikkakselerasjon leveres gjennom tilveiebringelse av et lag med implementering av OpenGL over DirectX 12. Laget er designet i form av d3d12-driveren, som er inkludert i hoveddelen av Mesa 21.0 og utvikles i fellesskap med Collabora.

Den virtuelle GPUen er implementert i Linux ved å bruke /dev/dxg-enheten med tjenester som replikerer WDDM (Windows Display Driver Model) D3DKMT til Windows-kjernen. Driveren oppretter en forbindelse til den fysiske GPUen ved hjelp av VM-bussen. Linux-applikasjoner har samme nivå av GPU-tilgang som native Windows-applikasjoner, uten behov for ressursdeling mellom Windows og Linux. Ytelsestesting på en Surface Book Gen3-enhet med en Intel GPU viste at i det opprinnelige Win32-miljøet demonstrerer Geeks3D GpuTest-testen 19 FPS, i et Linux-miljø med vGPU - 18 FPS, og med programvaregjengivelse i Mesa - 1 FPS.

Spill av video


Kilde: opennet.ru