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



Microsoft ha comenzado a probar el lanzamiento de aplicaciones GUI de Linux en Windows. Esto se implementa sobre la base del subsistema WSL2 (Subsistema de Windows para Linux), que la compañía ha estado desarrollando durante muchos meses. Se observa que las aplicaciones están completamente integradas con el escritorio de Windows, incluida la colocación de accesos directos en el menú Inicio, reproducción de sonido, grabación desde un micrófono, aceleración de hardware OpenGL. También se implementa la visualización de información sobre el software en la barra de tareas, puede cambiar entre programas con Alt + Tab, los datos entre las aplicaciones de Linux y Windows se pueden copiar usando el portapapeles.



La interfaz de la aplicación Linux se muestra en el escritorio principal de Windows mediante el administrador de compuestos RAIL-Shell. Utiliza el protocolo Wayland y se basa en el código base de Weston. La salida se implementa a través del backend RDP-RAIL (RDP Remote Application Integrated Locally), que no representa el escritorio, pero redirige las superficies individuales a través del canal RDP RAIL para que se muestren en el escritorio principal de Windows. Las aplicaciones X11 se ejecutan con XWayland.



Otros detalles



La empresa utiliza una forma interesante de emitir sonido: utilizando el servidor PulseAudio. El servidor interactúa con el sistema operativo a través del protocolo RDP (el complemento rdp-sink se usa para la salida de sonido y rdp-source para la entrada). Este servidor y XWayland están alojados en una minidistribución genérica WSLGd. Incluye componentes para la abstracción de subsistemas gráficos y de sonido.



Todo esto se basa en la distribución CBL-Mariner Linux, que también utiliza Microsoft, en su infraestructura en la nube. La minidistribución se lanza mediante mecanismos de virtualización. Al mismo tiempo, el acceso compartido entre el entorno invitado de Linux y el host de Windows se implementa mediante virtio-fs.



Los desarrolladores eligieron FreeRDP como el servidor RDP que se ejecuta en el entorno WSLGd Linux. Para la misma tarea, Widnows OS usa mstsc. El controlador WSLDVCPlugin se utiliza para identificar las aplicaciones gráficas de Linux disponibles y mostrarlas en el menú de Windows. Le permite interactuar con distribuciones de Linux en un entorno WLS2 al proporcionar sockets que manejan solicitudes de Wayland, X11 y PulseAudio. Los enlaces preparados para WSLGd están sujetos a la licencia MIT.



¿Cómo accedo a nuevas funciones?



Para hacer esto, necesita instalar Windows 10 Insider Preview al menos la versión 21362. Los desarrolladores prometen que en un futuro cercano, las ediciones regulares de Windows serán suficientes para instalar WSLGd, y el usuario no necesita participar en el programa Insider Preview. .





Instala WSLGd usando el comando "wsl --install", por ejemplo, para Ubuntu - "wsl --install -d Ubuntu". En el caso de los entornos WSL2 existentes, WSLGd se instala mediante el comando "wsl --update" (solo se admiten los entornos WSL2 que utilizan 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.



WSLGd solo admite gráficos 2D. Si necesita gráficos 3D basados ​​en OpenGL, se utiliza un mecanismo diferente: la GPU virtual (vGPU). Los controladores se proporcionan en tres versiones: para chips AMD , Intel y NVIDIA... El trabajo con gráficos se realiza proporcionando 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. .



En Linux, la GPU virtual se implementa en el dispositivo / dev / dxg con servicios que imitan el modelo de controlador de pantalla de Windows (WDDM) D3DKMT del kernel de Windows. En este sistema, el controlador establece una conexión con el chip de video físico a través del bus VM. Las aplicaciones de Linux tienen el mismo nivel de acceso a la GPU que las aplicaciones nativas de Windows, no hay recursos compartidos entre Windows y Linux.



Durante las pruebas de rendimiento de un sistema basado en Surface Book Gen3 con una GPU Intel, resultó que el punto de referencia Geeks3D GpuTest muestra 19 FPS en Windows, 18 FPS en Linux. En Mesa, con procesamiento de software: solo 1 FPS.



Un poco de historia



WSL2 estuvo disponible para los usuarios de Windows el 20 de agosto de 2020; fue entonces cuando Microsoft lanzó la actualización acumulativa KB4566116.





Después de instalarlo, los usuarios de Windows 10, versión 1903 y versión 1909 comenzaron a probar WSL2, y las revisiones fueron en su mayoría positivas. Hasta el 20 de agosto, solo estaba disponible WSL de la primera versión, y solo en Windows 10 versión 2004.





En cuanto a la primera versión de WSL, el trabajo en ella comenzó hace varios años. El anuncio oficial sobre el subsistema se realizó en la conferencia Microsoft Build 2016. El anuncio fue breve, luego hablaron sobre las capacidades de WSL en un par de minutos. Pero causó tal revuelo y afluencia de tráfico a la página con el anuncio que los organizadores de la conferencia incluso sospecharon que alguien había organizado un ataque DDoS.



Desde entonces, WSL ha evolucionado mucho y el subsistema continúa evolucionando ahora.






All Articles