Microsoft comenzó a probar el soporte para ejecutar aplicaciones GUI de Linux en Windows

Microsoft ha anunciado el inicio de las pruebas de la capacidad de ejecutar aplicaciones Linux con interfaz gráfica en entornos basados ​​en el subsistema WSL2 (Subsistema de Windows para Linux), diseñado para ejecutar archivos ejecutables de Linux en Windows. Las aplicaciones están completamente integradas con el escritorio principal de Windows, incluida la compatibilidad con la colocación de accesos directos en el menú Inicio, reproducción de audio, grabación de micrófono, aceleración de hardware OpenGL, visualización de información sobre programas en la barra de tareas, cambio entre programas usando Alt-Tab, copia de datos entre Windows. - y programas de Linux a través del portapapeles.

Microsoft comenzó a probar el soporte para ejecutar aplicaciones GUI de Linux en Windows

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, utilizando el protocolo Wayland y basado en el código base Weston. La salida se lleva a cabo utilizando el backend RDP-RAIL (RDP Remote Application Integrated Locally), que se diferencia del backend RDP disponible anteriormente en Weston en que el administrador compuesto no representa el escritorio en sí, sino que redirige superficies individuales (wl_surface) a través del RDP. Canal RAIL para visualización en el escritorio principal de Windows. XWayland se utiliza para ejecutar aplicaciones X11.

Microsoft comenzó a probar el soporte para ejecutar aplicaciones GUI de Linux en Windows

La salida de audio se organiza utilizando el servidor PulseAudio, que también interactúa con Windows usando el protocolo RDP (el complemento rdp-sink se usa para la salida de audio y el complemento rdp-source se usa para la entrada). El servidor compuesto XWayland y PulseAudio están empaquetados en forma de una minidistribución universal llamada WSLGd, que incluye componentes para abstraer los subsistemas de gráficos y audio, y se basa en la distribución CBL-Mariner Linux, también utilizada en la infraestructura de nube de Microsoft. . WSLGd se ejecuta mediante mecanismos de virtualización y virtio-fs se utiliza para compartir el acceso entre el entorno invitado de Linux y el sistema host de Windows.

FreeRDP se utiliza como un servidor RDP iniciado en el entorno WSLGd Linux y mstsc actúa como un cliente RDP en el lado de Windows. Para detectar aplicaciones gráficas de Linux existentes y mostrarlas en el menú de Windows, se ha preparado un controlador WSLDVCPlugin. Con distribuciones de Linux convencionales como Ubuntu, Debian y CenOS instaladas en un entorno WSL2, el conjunto de componentes que se ejecutan en WSLGd interactúa proporcionando sockets que manejan solicitudes utilizando los protocolos Wayland, X11 y PulseAudio. Los enlaces preparados para WSLGd se distribuyen bajo la licencia MIT.

La instalación de WSLGd requiere Windows 10 Insider Preview al menos la versión 21362. En el futuro, WSLGd estará disponible para las ediciones regulares de Windows sin la necesidad de participar en el programa Insider Preview. La instalación de WSLGd se realiza ejecutando el comando estándar "wsl —install", por ejemplo, para Ubuntu - "wsl —install -d Ubuntu". Para entornos WSL2 existentes, la instalación de WSLGd se realiza mediante el comando "wsl --update" (solo se admiten entornos WSL2 que usan el kernel de Linux y no llaman a la traducción). Las aplicaciones gráficas se instalan a través del administrador de paquetes estándar de la distribución.

WSLGd proporciona solo motores para salida de gráficos 2D y para acelerar gráficos 3D basados ​​​​en OpenGL, las distribuciones instaladas en WSL2 ofrecen el uso de una GPU virtual (vGPU). Se proporcionan controladores vGPU para WSL para chips AMD, Intel y NVIDIA. 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 incluye en la parte principal de Mesa 21.0 y se está desarrollando conjuntamente con Collabora.

La GPU virtual se implementa en Linux utilizando el dispositivo /dev/dxg con servicios que replican el WDDM (Windows Display Driver Model) D3DKMT del kernel de Windows. El controlador establece una conexión con la GPU física mediante el bus VM. Las aplicaciones de Linux tienen el mismo nivel de acceso a la GPU que las aplicaciones nativas de Windows, sin necesidad de compartir recursos entre Windows y Linux. Las pruebas de rendimiento en un dispositivo Surface Book Gen3 con una GPU Intel mostraron que en el entorno Win32 nativo, la prueba Geeks3D GpuTest demuestra 19 FPS, en un entorno Linux con vGPU - 18 FPS y con renderizado de software en Mesa - 1 FPS.



Fuente: opennet.ru

Añadir un comentario