Microsoft va començar a provar el suport per executar aplicacions GUI de Linux a Windows

Microsoft ha anunciat l'inici de les proves de la capacitat d'executar aplicacions Linux amb una interfície gràfica en entorns basats en el subsistema WSL2 (Windows Subsystem for Linux), dissenyat per executar fitxers executables de Linux a Windows. Les aplicacions estan totalment integrades amb l'escriptori principal de Windows, inclòs suport per col·locar dreceres al menú Inici, reproducció d'àudio, gravació de micròfons, acceleració de maquinari OpenGL, visualització d'informació sobre programes a la barra de tasques, canvi entre programes mitjançant Alt-Tab, còpia de dades entre Windows - i programes Linux a través del porta-retalls.

Microsoft va començar a provar el suport per executar aplicacions GUI de Linux a Windows

Per organitzar la sortida de la interfície de l'aplicació Linux a l'escriptori principal de Windows, s'utilitza el gestor compost RAIL-Shell desenvolupat per Microsoft, utilitzant el protocol Wayland i basat en la base de codi Weston. La sortida es realitza mitjançant el backend RDP-RAIL (RDP Remote Application Integrated Locally), que difereix del backend RDP disponible anteriorment a Weston perquè el gestor compost no representa l'escriptori en si, sinó que redirigeix ​​superfícies individuals (wl_surface) sobre el RDP. Canal RAIL per mostrar-lo a l'escriptori principal de Windows. XWayland s'utilitza per executar aplicacions X11.

Microsoft va començar a provar el suport per executar aplicacions GUI de Linux a Windows

La sortida d'àudio s'organitza mitjançant el servidor PulseAudio, que també interactua amb Windows mitjançant el protocol RDP (el connector rdp-sink s'utilitza per a la sortida d'àudio i el connector rdp-source per a l'entrada). El servidor compost, XWayland i PulseAudio estan empaquetats en forma d'una minidistribució universal anomenada WSLGd, que inclou components per a l'abstracció dels subsistemes de gràfics i àudio, i es basa en la distribució CBL-Mariner Linux, també utilitzada a la infraestructura del núvol de Microsoft. . WSLGd s'executa mitjançant mecanismes de virtualització i virtio-fs s'utilitza per compartir l'accés entre l'entorn de convidat Linux i el sistema amfitrió de Windows.

FreeRDP s'utilitza com a servidor RDP llançat a l'entorn Linux WSLGd i mstsc actua com a client RDP al costat de Windows. Per detectar aplicacions gràfiques de Linux existents i mostrar-les al menú de Windows, s'ha preparat un controlador WSLDVCPlugin. Amb distribucions regulars de Linux com Ubuntu, Debian i CenOS instal·lades en un entorn WSL2, el conjunt de components que s'executen a WSLGd interactua proporcionant sòcols que gestionen les sol·licituds mitjançant els protocols Wayland, X11 i PulseAudio. Els enllaços preparats per a WSLGd es distribueixen sota la llicència MIT.

La instal·lació de WSLGd requereix Windows 10 Insider Preview com a mínim la versió 21362. A partir d'ara, WSLGd estarà disponible per a les edicions normals de Windows sense necessitat de participar en el programa Insider Preview. La instal·lació de WSLGd es realitza executant l'ordre estàndard “wsl —install”, per exemple, per a Ubuntu - “wsl —install -d Ubuntu”. Per als entorns WSL2 existents, la instal·lació de WSLGd es fa mitjançant l'ordre "wsl --update" (només s'admeten els entorns WSL2 que utilitzen el nucli de Linux i no la traducció de trucades). Les aplicacions gràfiques s'instal·len mitjançant el gestor de paquets estàndard de la distribució.

WSLGd només proporciona motors per a la sortida de gràfics en 2D i, per accelerar els gràfics en 3D basats en OpenGL, les distribucions instal·lades a WSL2 ofereixen l'ús d'una GPU virtual (vGPU). Els controladors vGPU per a WSL es proporcionen per a xips AMD, Intel i NVIDIA. L'acceleració gràfica es proporciona mitjançant la disposició d'una capa amb la implementació d'OpenGL sobre DirectX 12. La capa està dissenyada en forma de controlador d3d12, que s'inclou a la part principal de Mesa 21.0 i s'està desenvolupant conjuntament amb Collabora.

La GPU virtual s'implementa a Linux mitjançant el dispositiu /dev/dxg amb serveis que repliquen el WDDM (Windows Display Driver Model) D3DKMT del nucli de Windows. El controlador estableix una connexió a la GPU física mitjançant el bus VM. Les aplicacions Linux tenen el mateix nivell d'accés a la GPU que les aplicacions natives de Windows, sense necessitat de compartir recursos entre Windows i Linux. Les proves de rendiment en un dispositiu Surface Book Gen3 amb una GPU Intel van demostrar que a l'entorn Win32 natiu, la prova Geeks3D GpuTest demostra 19 FPS, en un entorn Linux amb vGPU - 18 FPS i amb renderització de programari a Mesa - 1 FPS.



Font: opennet.ru

Afegeix comentari