Společnost Microsoft oznámila zahájení testování schopnosti spouštět linuxové aplikace s grafickým rozhraním v prostředích založených na subsystému WSL2 (Windows Subsystem for Linux), určeném ke spouštění spustitelných souborů Linuxu na Windows. Aplikace jsou plně integrovány s hlavní plochou Windows, včetně podpory umístění zástupců v nabídce Start, přehrávání zvuku, nahrávání mikrofonu, hardwarové akcelerace OpenGL, zobrazování informací o programech na hlavním panelu, přepínání mezi programy pomocí Alt-Tab, kopírování dat mezi Windows - a linuxové programy prostřednictvím schránky.
Pro uspořádání výstupu linuxového aplikačního rozhraní na hlavní plochu Windows se používá kompozitní manažer RAIL-Shell vyvinutý společností Microsoft, využívající protokol Wayland a založený na kódové základně Weston. Výstup se provádí pomocí backendu RDP-RAIL (RDP Remote Application Integrated Locally), který se liší od backendu RDP dříve dostupného ve Westonu v tom, že kompozitní manažer nevykresluje samotný desktop, ale přesměrovává jednotlivé povrchy (wl_surface) přes RDP. Kanál RAIL pro zobrazení na hlavní ploše Windows. XWayland se používá ke spouštění aplikací X11.
Zvukový výstup je organizován pomocí serveru PulseAudio, který také komunikuje s Windows pomocí protokolu RDP (pro výstup zvuku se používá plugin rdp-sink a pro vstup se používá plugin rdp-source). Kompozitní server, XWayland a PulseAudio jsou zabaleny ve formě univerzální minidistribuce nazvané WSLGd, která obsahuje komponenty pro abstrahování grafických a zvukových subsystémů a je založena na distribuci CBL-Mariner Linux, která se také používá v cloudové infrastruktuře společnosti Microsoft. . WSLGd běží pomocí virtualizačních mechanismů a virtio-fs se používá ke sdílení přístupu mezi prostředím hosta Linuxu a hostitelským systémem Windows.
FreeRDP se používá jako RDP server spuštěný v prostředí WSLGd Linux a mstsc funguje jako RDP klient na straně Windows. Pro detekci existujících grafických linuxových aplikací a jejich zobrazení v nabídce Windows byl připraven obslužný program WSLDVCPlugin. S konvenčními linuxovými distribucemi, jako je Ubuntu, Debian a CenOS nainstalovanými v prostředí WSL2, sada komponent běžících ve WSLGd interaguje poskytováním soketů, které zpracovávají požadavky pomocí protokolů Wayland, X11 a PulseAudio. Vazby připravené pro WSLGd jsou distribuovány pod licencí MIT.
Instalace WSLGd vyžaduje Windows 10 Insider Preview alespoň verze 21362. V budoucnu bude WSLGd k dispozici pro běžné edice Windows bez nutnosti účasti v programu Insider Preview. Instalace WSLGd se provádí provedením standardního příkazu „wsl —install“, například pro Ubuntu – „wsl —install -d Ubuntu“. U stávajících prostředí WSL2 se instalace WSLGd provádí pomocí příkazu "wsl --update" (podporována jsou pouze prostředí WSL2, která používají jádro Linuxu a nikoli překlad volání). Grafické aplikace se instalují prostřednictvím standardního správce balíčků distribuce.
WSLGd poskytuje pouze motory pro 2D grafický výstup a pro akceleraci 3D grafiky založené na OpenGL nabízejí distribuce nainstalované ve WSL2 použití virtuálního GPU (vGPU). Ovladače vGPU pro WSL jsou poskytovány pro čipy AMD, Intel a NVIDIA. Grafická akcelerace je zajištěna poskytnutím vrstvy s implementací OpenGL nad DirectX 12. Vrstva je navržena ve formě ovladače d3d12, který je součástí hlavní části Mesa 21.0 a je vyvíjen společně s Collabora.
Virtuální GPU je implementováno v Linuxu pomocí zařízení /dev/dxg se službami, které replikují WDDM (Windows Display Driver Model) D3DKMT jádra Windows. Ovladač naváže připojení k fyzickému GPU pomocí sběrnice VM. Linuxové aplikace mají stejnou úroveň přístupu GPU jako nativní aplikace pro Windows, bez nutnosti sdílení prostředků mezi Windows a Linuxem. Testování výkonu na zařízení Surface Book Gen3 s GPU Intel ukázalo, že v nativním prostředí Win32 test Geeks3D GpuTest prokazuje 19 FPS, v prostředí Linuxu s vGPU - 18 FPS a se softwarovým vykreslováním v Mesa - 1 FPS.
Zdroj: opennet.ru