Microsoft teatas Linuxi graafiliste rakenduste käivitamise võimaluse testimise algusest WSL2 (Windows Subsystem for Linux) baasil, mis on mõeldud Linuxi käivitatavate failide jooksutamiseks Windowsis. Rakendused integreeruvad täielikult Windowsi põhidesktoobiga, sealhulgas toetatakse otseteede paigutamist Start-menüüs, heli esitamine, mikrofoni salvestamine, OpenGL-i riistvaraline kiirus, programmide teabe kuvamine ülesandeannutil, programmide vahetamine Alt-Tab abil ning andmete kopeerimine Windowsi ja Linuxi programmide vahel lõikepuhvris.

Linuxi rakenduste kasutajaliidese kuvamiseks Windowsi peamisel töölaual on kasutatud Microsofti loodud komposiitmanagers RAIL-Shell, mis kasutab Waylandi protokolli ja põhineb Westoni koodibaasil. Kuvamine toimub RDP-RAIL (RDP Remote Application Integrated Locally) tagapaneeli kaudu, mis erineb Westonis varem saadaval olnud RDP tagapaneelist, kuna komposiitmanagers ei joonista töölaual ise, vaid edastab eraldi pinnad (wl_surface) RDP RAIL kanalit mööda Windowsi peamisel töölaual kuvamiseks. X11 rakenduste käivitamiseks kasutatakse XWaylandi.

Heli edastamine on korraldatud kasutades serverile PulseAudio, mis töötab koos Windowsiga RDP protokolli abil (heli väljastamiseks kasutatakse rdp-sink pistikprogrammi ja sisestamiseks rdp-source). Komposiitserver, XWayland ja PulseAudio on pakendatud ühtsesse mini-distro WSLGd, mis sisaldab komponente graafilise ja heliallikate abstraktsiooni jaoks ning põhineb CBL-Mariner Linux distributsioonil, mida kasutatakse ka Microsofti pilvetehnoloogias. WSLGd käivitatakse virtualiseerimise mehhanismide abil ning virtio-fs'i kasutatakse Linuxi külgkeskkonna ja Windowsi host-süsteemi vaheliseks jagamiseks.
Kuna RDP-server, mis töötab Linuxi keskkonnas WSLGd, kasutab FreeRDP-d, ja Windowsi poolne RDP-klient on mstsc. Windowsi menüüs Linuxi graafiliste rakenduste tuvastamiseks ja kuvamiseks on loodud WSLDVCPlugin töötleja. Tavaliste Linuxi distributsioonidega WSL2 keskkonnas, nagu Ubuntu, Debian ja CentOS, suhtleb WSLGd'iga komplekt komponentidest, mis töötavad sokettide kaudu ning töötlevad päringuid Waylandi, X11 ja PulseAudio protokollide kaudu. WSLGd jaoks loodud ümberpaigutused levitatakse MIT-litsentsi alusel.
WSLGd installimiseks on vajalik Windows 10 Insider Preview minimaalselt versioon 21362. Edaspidi antakse võimalus WSLGd installimiseks ka tavaliste Windowsi väljaannete jaoks, ilma et oleks vaja Insider Preview programmis osaleda. WSLGd installimine toimub tavalise käsu „wsl —install” abil, näiteks Ubuntu jaoks – „wsl —install -d Ubuntu”. Olemasolevate WSL2 keskkondade jaoks toimub WSLGd installimine käsu „wsl —update” kaudu (toetatakse ainult WSL2 keskkondi, kus kasutatakse Linuxi kernelit, mitte süsteemikõnede tõlget). Graafilised rakendused installitakse tavapärase pakihalduri kaudu distributsioonis.
WSLGd pakub ainult 2D-graafika kuvamiseks mõeldud mehhanisme, ning WSL2 distributsioonides, et kiirendada 3D-graafikat OpenGL põhjal, soovitatakse kasutada virtuaalset GPU-d (vGPU). vGPU draiverid WSL jaoks on saadaval AMD, Intel ja NVIDIA kiipide jaoks. Graafika kiirendamine toimub OpenGLi rakenduse võimaldamise kaudu DirectX 12 peal. Rakenduse kiht on kujundatud d3d12 draiveriks, mis on osa Mesa 21.0 põhiülesandest ja mis on koos ettevõttega Collabora edasi arendatud.
Virtuaalse GPU töötab Linuxis seadme /dev/dxg abil, mille teenused jäljendavad Windowsi WDDM (Windows Display Driver Model) D3DKMT tuuma. Draiver korraldab ühenduse füüsilise GPU-ga VM bussi kaudu. Linuxi rakendustel on GPU-le sama ligipääs nagu Windowsi natiivsetel rakendustel, ilma ressursside jagamiseta Windowsi ja Linuxi vahel. Testimine Surface Book Gen3 seadmel Intel GPU-ga näitas, et natiivses Win32 keskkonnas Geeks3D GpuTesti test näitas 19 FPS, Linuxi keskkonnas vGPU-ga 18 FPS ja programmipõhise renderdamise korral Mesa'd 1 FPS.

Allikas: opennet.ru
