Microsoft comienza a probar el soporte para ejecutar aplicaciones GUI de Linux en Windows
Microsoft anunció hace pocos das el comienzo de probar la capacidad de ejecutar aplicaciones GUI basadas en Linux en entornos basados en WSL2 (Subsistema de Windows para Linux).
Las aplicaciones están completamente integradas con el escritorio principal de Windows, incluido el soporte para colocar accesos directos en el menú Inicio, reproducir sonido, grabar desde un micrófono, aceleración de hardware OpenGL, mostrar información sobre programas en la barra de tareas, cambiar entre programas usando Alt-Tab, copiar datos entre programas de Windows y Linux a través del portapapeles.
Para organizar la salida de la interfaz de la aplicación Linux al escritorio principal de Windows, se utiliza el administrador compuesto RAIL-Shell desarrollado por Microsoft, que utiliza el protocolo Wayland y se basa en el código base de Weston.
El renderizado se lleva a cabo utilizando el backend RDP Remote Application Integrated Locally (RDP Remote Application Integrated Locally), que se diferencia del backend RDP previamente disponible en Weston en que el administrador compuesto no renderiza el escritorio en sÃ, sino que redirige las superficies individuales (wl_surface) a través del canal RDP RAIL para mostrarlo en su escritorio principal de Windows. XWayland se utiliza para ejecutar aplicaciones X11.
La salida de sonido se organiza mediante el servidor PulseAudio, que también interactúa con Windows mediante el protocolo RDP (el complemento rdp-sink se utiliza para la salida de sonido y rdp-source para la entrada ).
Composite Server, XWayland y PulseAudio están empaquetados en forma de un WSLGd de minidistribución universal , que incluye componentes para la abstracción del subsistema de gráficos y sonido, y se basan en la distribución CBL-Mariner Linux , también utilizada en la infraestructura de nube de Microsoft. WSLGd se inicia usando mecanismos de virtualización y virtio-fs se usa para compartir entre el invitado de Linux y el host de Windows.
FreeRDP se utiliza como el servidor RDP lanzado en el entorno WSLGd Linux, y mstsc actúa como el cliente RDP en el lado de Windows. El controlador WSLDVCPlugin se ha preparado para identificar las aplicaciones gráficas de Linux disponibles y mostrarlas en el menú de Windows . Con distribuciones comunes de Linux instaladas en el entorno WSL2, como Ubuntu, Debian y CenOS, el conjunto de componentes WSLGd interactúa proporcionando sockets que manejan solicitudes de Wayland, X11 y PulseAudio.
La GPU virtual se implementa en Linux utilizando el dispositivo /dev/dxg con servicios que imitan el modelo de controlador de pantalla de Windows (WDDM) D3DKMT del kernel de Windows.
El controlador organiza la conexión a la GPU fÃsica mediante el bus VM, además de que las aplicaciones de Linux tienen el mismo nivel de acceso a la GPU que las aplicaciones nativas de Windows sin forzar el uso compartido de recursos entre Windows y Linux.
Las pruebas de rendimiento en un dispositivo Surface Book Gen3 con una GPU Intel mostraron que en un entorno Win32 nativo, el punto de referencia Geeks3D GpuTest demuestra 19 FPS, en un entorno Linux con vGPU – 18 FPS y con renderizado de software en Mesa – 1 FPS.
La instalación de WSLGd requiere Windows 10 Insider Preview al menos la versión 21362, aun que en el futuro, se proporcionará la capacidad de instalar WSLGd para las ediciones regulares de Windows, sin la necesidad de participar en el programa Insider Preview.
WSLGd proporciona solo mecanismos para renderizar gráficos 2D, y para acelerar gráficos 3D basados en OpenGL en distribuciones instaladas en WSL2, se propone utilizar una GPU virtual (vGPU).
La aceleración de gráficos se proporciona mediante la provisión de una capa con la implementación de OpenGL sobre DirectX 12. La capa está diseñada en forma del controlador d3d12, que se incluyó en la parte principal de Mesa 21.0 y se está desarrollando en conjunto con Collabora.
La instalación de WSLGd se lleva a cabo ejecutando el comando tÃpico «wsl –install», por ejemplo, para Ubuntu – «wsl –install -d Ubuntu».
Para los entornos WSL2 existentes, WSLGd se instala mediante el comando «wsl –update» (solo se admiten los entornos WSL2 que usan el kernel de Linux, no la traducción de llamadas). Las aplicaciones gráficas se instalan a través del administrador de paquetes habitual del kit de distribución.
Fuente: https://devblogs.microsoft.com/