Microsoft ha iniziato a testare il supporto per l'esecuzione di applicazioni GUI Linux su Windows

Microsoft ha annunciato l'inizio dei test sulla capacità di eseguire applicazioni Linux con interfaccia grafica in ambienti basati sul sottosistema WSL2 (Windows Subsystem for Linux), progettato per eseguire file eseguibili Linux su Windows. Le applicazioni sono completamente integrate con il desktop principale di Windows, incluso il supporto per posizionare collegamenti nel menu Start, riproduzione audio, registrazione dal microfono, accelerazione hardware OpenGL, visualizzazione di informazioni sui programmi nella barra delle applicazioni, passaggio da un programma all'altro utilizzando Alt-Tab, copia di dati tra Windows - e programmi Linux tramite gli appunti.

Microsoft ha iniziato a testare il supporto per l'esecuzione di applicazioni GUI Linux su Windows

Per organizzare l'output dell'interfaccia dell'applicazione Linux sul desktop principale di Windows, viene utilizzato il gestore composito RAIL-Shell sviluppato da Microsoft, utilizzando il protocollo Wayland e basato sulla codebase Weston. L'output viene eseguito utilizzando il backend RDP-RAIL (RDP Remote Application Integrated Locally), che differisce dal backend RDP precedentemente disponibile in Weston in quanto il gestore composito non esegue il rendering del desktop stesso, ma reindirizza le singole superfici (wl_surface) sull'RDP Canale RAIL per la visualizzazione sul desktop principale di Windows. XWayland viene utilizzato per eseguire applicazioni X11.

Microsoft ha iniziato a testare il supporto per l'esecuzione di applicazioni GUI Linux su Windows

L'output audio è organizzato utilizzando il server PulseAudio, che interagisce anche con Windows utilizzando il protocollo RDP (il plug-in rdp-sink viene utilizzato per l'output audio e il plug-in rdp-source viene utilizzato per l'input). Il server composito, XWayland e PulseAudio sono confezionati sotto forma di una mini-distribuzione universale chiamata WSLGd, che include componenti per l'astrazione dei sottosistemi grafica e audio, e si basa sulla distribuzione CBL-Mariner Linux, utilizzata anche nell'infrastruttura cloud di Microsoft . WSLGd viene eseguito utilizzando meccanismi di virtualizzazione e virtio-fs viene utilizzato per condividere l'accesso tra l'ambiente guest Linux e il sistema host Windows.

FreeRDP viene utilizzato come server RDP avviato nell'ambiente Linux WSLGd e mstsc funge da client RDP sul lato Windows. Per rilevare le applicazioni grafiche Linux esistenti e visualizzarle nel menu Windows, è stato preparato un gestore WSLDVCPlugin. Con le distribuzioni Linux convenzionali come Ubuntu, Debian e CenOS installate in un ambiente WSL2, l'insieme di componenti in esecuzione in WSLGd interagisce fornendo socket che gestiscono le richieste utilizzando i protocolli Wayland, X11 e PulseAudio. I collegamenti preparati per WSLGd sono distribuiti sotto la licenza MIT.

L'installazione di WSLGd richiede Windows 10 Insider Preview almeno versione 21362. In futuro, WSLGd sarà disponibile per le edizioni regolari di Windows senza la necessità di partecipare al programma Insider Preview. L'installazione di WSLGd viene eseguita eseguendo il comando standard "wsl —install", ad esempio per Ubuntu - "wsl —install -d Ubuntu". Per gli ambienti WSL2 esistenti, l'installazione di WSLGd viene eseguita utilizzando il comando "wsl --update" (sono supportati solo gli ambienti WSL2 che utilizzano il kernel Linux e non chiamano la traduzione). Le applicazioni grafiche vengono installate tramite il gestore di pacchetti standard della distribuzione.

WSLGd fornisce solo motori per l'output grafico 2D e per accelerare la grafica 3D basata su OpenGL, le distribuzioni installate in WSL2 offrono l'uso di una GPU virtuale (vGPU). I driver vGPU per WSL sono forniti per chip AMD, Intel e NVIDIA. L'accelerazione grafica viene fornita tramite la fornitura di un livello con l'implementazione di OpenGL su DirectX 12. Il livello è progettato sotto forma di driver d3d12, che è incluso nella parte principale di Mesa 21.0 ed è sviluppato insieme a Collabora.

La GPU virtuale è implementata in Linux utilizzando il dispositivo /dev/dxg con servizi che replicano il WDDM (Windows Display Driver Model) D3DKMT del kernel di Windows. Il driver stabilisce una connessione alla GPU fisica utilizzando il bus VM. Le applicazioni Linux hanno lo stesso livello di accesso GPU delle applicazioni Windows native, senza la necessità di condividere risorse tra Windows e Linux. I test delle prestazioni su un dispositivo Surface Book Gen3 con una GPU Intel hanno mostrato che nell'ambiente Win32 nativo, il test Geeks3D GpuTest dimostra 19 FPS, in un ambiente Linux con vGPU - 18 FPS e con il rendering del software in Mesa - 1 FPS.



Fonte: opennet.ru

Aggiungi un commento