Microsoft a anunțat începerea testării posibilității de lansare Linux- aplicații cu interfață grafică în medii bazate pe subsistemul WSL2 (Windows Subsistem pentru Linux), conceput pentru a rula fișiere executabile Linux в WindowsAplicațiile sunt complet integrate cu desktopul principal. Windows, inclusiv suport pentru plasarea comenzilor rapide în meniul Start, redarea sunetului, înregistrarea de la un microfon, accelerarea hardware a OpenGL, afișarea informațiilor despre programe în bara de activități, comutarea între programe folosind Alt-Tab, copierea datelor între Windows- și Linux-programe prin clipboard.

Pentru a organiza ieșirea interfeței Linux-aplicații pe desktopul principal Windows Managerul de compoziție RAIL-Shell, dezvoltat de Microsoft și bazat pe baza de cod Weston, utilizează protocolul Wayland. Randarea se realizează folosind backend-ul RDP-RAIL (RDP Remote Application Integrated Locally). Acest backend diferă de backend-ul RDP disponibil anterior în Weston prin faptul că managerul de compoziție nu randează desktop-ul în sine, ci redirecționează suprafețele individuale (wl_surface) prin canalul RDP RAIL pentru afișare pe desktop-ul principal. WindowsXWayland este folosit pentru a rula aplicații X11.

Ieșirea sunetului este organizată folosind Server PulseAudio, care interacționează și cu Windows utilizând protocolul RDP (pluginul rdp-sink este utilizat pentru ieșirea audio, iar rdp-source pentru intrare). Serverul compozit, XWayland și PulseAudio sunt incluse în mini-distribuția universală WSLGd, care include componente pentru abstractizarea subsistemelor grafice și audio și se bazează pe distribuția CBL-Mariner. Linux, utilizat și în infrastructura cloud a Microsoft. WSLGd rulează folosind mecanisme de virtualizare și pentru partajarea între medii oaspete cu Linux și sistemul gazdă Windows Se folosește virtio-fs.
Ca Servere RDP, lansat în Linux-Mediul WSLGd, se folosește FreeRDP și pe lateral Windows Clientul RDP este mstsc. Pentru a determina grafica disponibilă Linux-aplicații și afișarea lor în meniu Windows Rulajul WSLDVCPlugin a fost pregătit. Cu distribuțiile standard instalate în mediul WSL2 Linux, ca Ubuntu, Debian Setul de componente care rulează în WSLGd interacționează cu CenOS prin furnizarea de socket-uri care gestionează cererile prin intermediul protocoalelor Wayland, X11 și PulseAudio. Legăturile specifice WSLGd sunt distribuite sub licența MIT.
Pentru a instala WSLGd trebuie să aveți Windows 10 Versiunea Insider Preview 21362 sau o versiune ulterioară. Instalarea WSLGd va fi disponibilă pentru versiunile regulate viitoare. Windows, fără a fi nevoie să participați la programul Insider Preview. WSLGd se instalează rulând comanda standard „wsl --install”, de exemplu, pentru Ubuntu — «wsl —instalare -d UbuntuPentru mediile WSL2 existente, instalarea WSLGd se face prin comanda „wsl --update” (sunt acceptate doar mediile WSL2 care utilizează kernelul) Linux, nu redirecționare apeluri). Aplicațiile grafice sunt instalate prin intermediul managerului de pachete standard al distribuției.
WSLGd oferă doar motoare pentru ieșirea grafică 2D și pentru a accelera grafica 3D bazată pe OpenGL, distribuțiile instalate în WSL2 oferă utilizarea unui GPU virtual (vGPU). Driverele vGPU pentru WSL sunt furnizate pentru cipurile AMD, Intel și NVIDIA. Accelerația grafică este asigurată prin furnizarea unui strat cu implementarea OpenGL peste DirectX 12. Stratul este proiectat sub forma driverului d3d12, care este inclus în partea principală a Mesa 21.0 și este dezvoltat în comun cu Collabora.
Funcționarea GPU-ului virtual este implementată în Linux folosind dispozitivul /dev/dxg cu servicii care replică WDDM (Windows Modelul driverului de afișare) Nuclee D3DKMT WindowsDriverul stabilește o conexiune la GPU-ul fizic folosind magistrala VM. Linux aplicațiile au același nivel de acces la GPU ca și aplicațiile native pentru Windows, fără a aplica partajarea resurselor între Windows и LinuxTestele de performanță pe un dispozitiv Surface Book Gen3 cu un GPU Intel au arătat că, în mediul nativ Win32, testul Geeks3D GpuTest arată 19 FPS, în Linux- într-un mediu vGPU - 18 FPS și cu randare software în Mesa - 1 FPS.

Sursa: opennet.ru
