Microsoft alustas Linuxi GUI-rakenduste Windowsi töötamise toe testimist

Microsoft teatas, et alustab testimise alustamist graafilise liidesega Linuxi rakenduste käitamiseks WSL2 (Windows Subsystem for Linux) alamsüsteemil põhinevates keskkondades, mis on loodud Linuxi täitmisfailide käitamiseks Windowsis. Rakendused on täielikult integreeritud Windowsi peamise töölauaga, sealhulgas tugi menüüsse Start otseteede paigutamiseks, heli esitamiseks, mikrofonist salvestamiseks, OpenGL-i riistvarakiirenduseks, programmide teabe kuvamiseks tegumiribal, programmide vahel vahetamiseks Alt-Tab-klahviga, andmete kopeerimiseks. Windowsi ja Linuxi programmide vahel lõikepuhvri kaudu.

Microsoft alustas Linuxi GUI-rakenduste Windowsi töötamise toe testimist

Linuxi rakendusliidese väljundi korraldamiseks Windowsi põhitöölauale kasutatakse Microsofti välja töötatud RAIL-Shell komposiithaldurit, mis kasutab Waylandi protokolli ja põhineb Westoni koodibaasil. Väljundiks kasutatakse RDP-RAIL (RDP Remote Application Integrated Locally) taustaprogrammi, mis erineb Westonis varem saadaval olnud RDP taustaprogrammist selle poolest, et liithaldur ei joonista töölauda ise, vaid suunab üksikud pinnad (wl_surface) ümber RDP RAIL kanal kuvamiseks Windowsi peamisel töölaual. X11 rakenduste käitamiseks kasutatakse XWaylandi.

Microsoft alustas Linuxi GUI-rakenduste Windowsi töötamise toe testimist

Heliväljundit korraldatakse PulseAudio serveri abil, mis suhtleb ka Windowsiga RDP-protokolli abil (heli väljundiks kasutatakse rdp-sink pluginat ja sisendiks rdp-source). Composite Server, XWayland ja PulseAudio on pakendatud universaalse WSLGd minijaotusena, mis sisaldab komponente graafika ja heli alamsüsteemide abstrakteerimiseks ning põhineb CBL-Mariner Linuxi distributsioonil, mida kasutatakse ka Microsofti pilveinfrastruktuuris. WSLGd töötab virtualiseerimismehhanismide abil ja virtio-fs-i kasutatakse jagamiseks Linuxi külalise ja Windowsi hosti vahel.

FreeRDP-d kasutatakse WSLGd Linuxi keskkonnas töötava RDP-serverina ja mstsc on Windowsi poolel RDP-klient. Saadaolevate graafiliste Linuxi rakenduste määramiseks ja nende kuvamiseks Windowsi menüüs on ette valmistatud WSLDVCPlugini töötleja. WSL2 keskkonda installitud tavaliste Linuxi distributsioonidega, nagu Ubuntu, Debian ja CenOS, toimib WSLGd-s töötav komponentide komplekt, pakkudes pesasid, mis käsitlevad taotlusi Waylandi, X11 ja PulseAudio protokollide kaudu. WSLGd-ga ettevalmistatud köiteid levitatakse MIT-i litsentsi alusel.

WSLGd installimiseks on vaja vähemalt Windows 10 Insider Preview versiooni 21362. Edaspidi on WSLGd saadaval Windowsi tavaliste väljaannete jaoks, ilma et oleks vaja osaleda programmis Insider Preview. WSLGd installimiseks käivitatakse tüüpiline käsk wsl --install, näiteks Ubuntu jaoks - "wsl --install -d Ubuntu". Olemasolevate WSL2 keskkondade puhul toimub WSLGd installimine käsuga "wsl --update" (toetatud on ainult need WSL2 keskkonnad, mis kasutavad Linuxi tuuma, mitte kõnede tõlkimist). Graafilised rakendused installitakse levitamise tavalise paketihalduri kaudu.

WSLGd pakub mehhanisme ainult 2D-graafika renderdamiseks ja OpenGL-il põhineva 3D-graafika kiirendamiseks soovitavad WSL2-sse installitud distributsioonid kasutada virtuaalset GPU-d (vGPU). WSL-i vGPU draiverid on saadaval AMD, Inteli ja NVIDIA kiipide jaoks. Graafika kiirendus on tagatud kihi pakkumisega OpenGL-i juurutamisega üle DirectX 12. Kiht on kujundatud d3d12 draiverina, mis sisaldub Mesa 21.0 põhikoostises ja töötati välja koostöös Collaboraga.

Virtuaalset GPU-d rakendatakse Linuxis /dev/dxg seadme abil koos teenustega, mis jäljendavad Windowsi kerneli WDDM-i (Windowsi kuvadraiveri mudeli) D3DKMT. Draiver loob VM-siini abil ühenduse füüsilise GPU-ga. Linuxi rakendustel on sama tase GPU-juurdepääsu kui Windowsi algrakendustel, ilma ressursside jagamiseta Windowsi ja Linuxi vahel. Inteli GPU-ga Surface Book Gen3 seadme jõudluse testimine näitas, et natiivses Win32 keskkonnas demonstreerib Geeks3D GpuTest 19 kaadrit sekundis, Linuxi keskkonnas vGPU-ga - 18 kaadrit sekundis ja tarkvara renderdamisega Mesas - 1 kaadrit sekundis.



Allikas: opennet.ru

Lisa kommentaar