Microsoft har börjat testa stöd för att köra Linux GUI-applikationer på Windows

Microsoft har meddelat att man börjar testa möjligheten att köra Linux-applikationer med ett grafiskt gränssnitt i miljöer baserade på WSL2-undersystemet (Windows Subsystem for Linux), designat för att köra Linux-körbara filer på Windows. Applikationer är helt integrerade med Windows huvudskrivbord, inklusive stöd för att placera genvägar i Start-menyn, ljuduppspelning, mikrofoninspelning, OpenGL hårdvaruacceleration, visa information om program i aktivitetsfältet, växla mellan program med Alt-Tab, kopiera data mellan Windows - och Linux-program via klippbordet.

Microsoft har börjat testa stöd för att köra Linux GUI-applikationer på Windows

För att organisera utdata från Linux-applikationsgränssnittet till Windows huvudskrivbord, används RAIL-Shell-komposithanteraren utvecklad av Microsoft, med hjälp av Wayland-protokollet och baserad på Weston-kodbasen. Utdata utförs med RDP-RAIL-backend (RDP Remote Application Integrated Locally), som skiljer sig från RDP-backend som tidigare var tillgänglig i Weston genom att den sammansatta hanteraren inte renderar själva skrivbordet utan omdirigerar enskilda ytor (wl_surface) över RDP:n RAIL-kanal för visning på Windows huvudskrivbord. XWayland används för att köra X11-applikationer.

Microsoft har börjat testa stöd för att köra Linux GUI-applikationer på Windows

Ljudutgången organiseras med hjälp av PulseAudio-servern, som också interagerar med Windows med RDP-protokollet (rdp-sink-plugin används för ljudutgång och rdp-source-plugin används för inmatning). Den sammansatta servern, XWayland och PulseAudio är förpackade i form av en universell minidistribution som kallas WSLGd, som inkluderar komponenter för att abstrahera grafik- och ljudundersystemen, och är baserad på CBL-Mariner Linux-distributionen, som också används i Microsofts molninfrastruktur . WSLGd körs med virtualiseringsmekanismer, och virtio-fs används för att dela åtkomst mellan Linux-gästmiljön och Windows-värdsystemet.

FreeRDP används som en RDP-server som lanseras i WSLGd Linux-miljön, och mstsc fungerar som en RDP-klient på Windows-sidan. För att upptäcka befintliga grafiska Linux-applikationer och visa dem i Windows-menyn har en WSLDVCPlugin-hanterare förberetts. Med konventionella Linux-distributioner som Ubuntu, Debian och CenOS installerade i en WSL2-miljö, interagerar uppsättningen av komponenter som körs i WSLGd genom att tillhandahålla sockets som hanterar förfrågningar med Wayland-, X11- och PulseAudio-protokollen. Bindningarna förberedda för WSLGd distribueras under MIT-licensen.

Installation av WSLGd kräver Windows 10 Insider Preview minst version 21362. Framöver kommer WSLGd att vara tillgänglig för vanliga utgåvor av Windows utan att behöva delta i Insider Preview-programmet. Installation av WSLGd utförs genom att köra standardkommandot "wsl —install", till exempel för Ubuntu - "wsl —install -d Ubuntu". För befintliga WSL2-miljöer görs installationen av WSLGd med kommandot "wsl --update" (endast WSL2-miljöer som använder Linux-kärnan och inte anropsöversättning stöds). Grafiska applikationer installeras genom distributionens standardpakethanterare.

WSLGd tillhandahåller endast motorer för 2D-grafikutgång, och för att accelerera 3D-grafik baserad på OpenGL erbjuder distributioner installerade i WSL2 användning av en virtuell GPU (vGPU). vGPU-drivrutiner för WSL tillhandahålls för AMD-, Intel- och NVIDIA-chips. Grafikacceleration tillhandahålls genom tillhandahållandet av ett lager med implementering av OpenGL över DirectX 12. Lagret är designat i form av d3d12-drivrutinen, som ingår i huvuddelen av Mesa 21.0 och utvecklas tillsammans med Collabora.

Den virtuella GPU:n implementeras i Linux med hjälp av /dev/dxg-enheten med tjänster som replikerar WDDM (Windows Display Driver Model) D3DKMT för Windows-kärnan. Föraren upprättar en anslutning till den fysiska grafikprocessorn med hjälp av VM-bussen. Linux-applikationer har samma nivå av GPU-åtkomst som inbyggda Windows-applikationer, utan behov av resursdelning mellan Windows och Linux. Prestandatestning på en Surface Book Gen3-enhet med en Intel GPU visade att Geeks32D GpuTest-testet i den inbyggda Win3-miljön visar 19 FPS, i en Linux-miljö med vGPU - 18 FPS och med mjukvarurendering i Mesa - 1 FPS.



Källa: opennet.ru

Lägg en kommentar