Sinimulan ng Microsoft ang pagsubok ng suporta para sa pagpapatakbo ng mga Linux GUI application sa Windows

Inanunsyo ng Microsoft ang simula ng pagsubok sa kakayahang magpatakbo ng mga Linux application na may graphical na interface sa mga kapaligiran batay sa WSL2 subsystem (Windows Subsystem para sa Linux), na idinisenyo upang patakbuhin ang Linux executable file sa Windows. Ang mga application ay ganap na isinama sa pangunahing Windows desktop, kabilang ang suporta para sa paglalagay ng mga shortcut sa Start menu, audio playback, pag-record ng mikropono, OpenGL hardware acceleration, pagpapakita ng impormasyon tungkol sa mga program sa taskbar, paglipat sa pagitan ng mga program gamit ang Alt-Tab, pagkopya ng data sa pagitan ng Windows - at mga programa sa Linux sa pamamagitan ng clipboard.

Sinimulan ng Microsoft ang pagsubok ng suporta para sa pagpapatakbo ng mga Linux GUI application sa Windows

Upang ayusin ang output ng interface ng Linux application sa pangunahing Windows desktop, ang RAIL-Shell composite manager na binuo ng Microsoft, gamit ang Wayland protocol at batay sa Weston code base, ay ginagamit. Isinasagawa ang output gamit ang RDP-RAIL (RDP Remote Application Integrated Locally) backend, na naiiba sa RDP backend na dating available sa Weston dahil hindi nire-render ng composite manager ang desktop mismo, ngunit nagre-redirect ng mga indibidwal na surface (wl_surface) sa RDP Ang channel ng RAIL para ipakita sa pangunahing Windows desktop. Ginagamit ang XWayland para magpatakbo ng mga X11 application.

Sinimulan ng Microsoft ang pagsubok ng suporta para sa pagpapatakbo ng mga Linux GUI application sa Windows

Ang output ng audio ay inayos gamit ang PulseAudio server, na nakikipag-ugnayan din sa Windows gamit ang RDP protocol (ang rdp-sink plugin ay ginagamit para sa audio output, at ang rdp-source plugin ay ginagamit para sa input). Ang composite server, XWayland at PulseAudio ay naka-package sa anyo ng isang unibersal na mini-distribution na tinatawag na WSLGd, na kinabibilangan ng mga bahagi para sa abstracting ng mga graphics at audio subsystem, at batay sa CBL-Mariner Linux distribution, na ginagamit din sa Microsoft cloud infrastructure . Gumagana ang WSLGd gamit ang mga mekanismo ng virtualization, at ginagamit ang virtio-fs para magbahagi ng access sa pagitan ng Linux guest environment at ng Windows host system.

Ang FreeRDP ay ginagamit bilang isang RDP server na inilunsad sa kapaligiran ng WSLGd Linux, at ang mstsc ay gumaganap bilang isang RDP client sa panig ng Windows. Upang makita ang mga umiiral na graphical na Linux application at ipakita ang mga ito sa menu ng Windows, isang WSLDVCPlugin handler ang inihanda. Sa mga regular na distribusyon ng Linux tulad ng Ubuntu, Debian, at CenOS na naka-install sa isang WSL2 environment, ang hanay ng mga bahagi na tumatakbo sa WSLGd ay nakikipag-ugnayan sa pamamagitan ng pagbibigay ng mga socket na humahawak ng mga kahilingan gamit ang Wayland, X11, at PulseAudio na mga protocol. Ang mga binding na inihanda para sa WSLGd ay ipinamamahagi sa ilalim ng lisensya ng MIT.

Ang pag-install ng WSLGd ay nangangailangan ng Windows 10 Insider Preview ng hindi bababa sa bersyon 21362. Sa hinaharap, ang WSLGd ay magiging available para sa mga regular na edisyon ng Windows nang hindi kinakailangang lumahok sa Insider Preview program. Ang pag-install ng WSLGd ay isinasagawa sa pamamagitan ng pagsasagawa ng karaniwang command na "wsl —install", halimbawa, para sa Ubuntu - "wsl —install -d Ubuntu". Para sa mga umiiral na WSL2 environment, ang pag-install ng WSLGd ay ginagawa gamit ang "wsl --update" na command (mga WSL2 environment lang na gumagamit ng Linux kernel at hindi call translation ang sinusuportahan). Ang mga graphical na application ay na-install sa pamamagitan ng karaniwang package manager ng pamamahagi.

Nagbibigay lang ang WSLGd ng mga engine para sa 2D graphics output, at para mapabilis ang 3D graphics batay sa OpenGL, ang mga distribution na naka-install sa WSL2 ay nag-aalok ng paggamit ng virtual GPU (vGPU). Ang mga vGPU driver para sa WSL ay ibinibigay para sa AMD, Intel at NVIDIA chips. Ang graphics acceleration ay ibinibigay sa pamamagitan ng probisyon ng isang layer na may pagpapatupad ng OpenGL sa DirectX 12. Ang layer ay idinisenyo sa anyo ng d3d12 driver, na kasama sa pangunahing bahagi ng Mesa 21.0 at binuo kasama ng Collabora.

Ang virtual GPU ay ipinapatupad sa Linux gamit ang /dev/dxg device na may mga serbisyong ginagaya ang WDDM (Windows Display Driver Model) D3DKMT ng Windows kernel. Ang driver ay nagtatatag ng koneksyon sa pisikal na GPU gamit ang VM bus. Ang mga Linux application ay may parehong antas ng GPU access gaya ng mga native na application ng Windows, nang hindi nangangailangan ng pagbabahagi ng mapagkukunan sa pagitan ng Windows at Linux. Ang pagsubok sa performance sa isang Surface Book Gen3 device na may Intel GPU ay nagpakita na sa native na Win32 environment, ang Geeks3D GpuTest test ay nagpapakita ng 19 FPS, sa isang Linux environment na may vGPU - 18 FPS, at may software rendering sa Mesa - 1 FPS.



Pinagmulan: opennet.ru

Magdagdag ng komento