Microsoft a commencé à tester la prise en charge de l'exécution d'applications graphiques Linux sur Windows

Microsoft a annoncé le début des tests de capacité à exécuter des applications Linux avec une interface graphique dans des environnements basés sur le sous-système WSL2 (Windows Subsystem for Linux), conçu pour exécuter des fichiers exécutables Linux sur Windows. Les applications sont entièrement intégrées au bureau principal de Windows, y compris la prise en charge du placement de raccourcis dans le menu Démarrer, la lecture du son, l'enregistrement à partir d'un microphone, l'accélération matérielle OpenGL, l'affichage d'informations sur les programmes dans la barre des tâches, la commutation entre les programmes avec Alt-Tab, la copie de données entre Windows - et Linux-programmes via le presse-papiers.

Microsoft a commencé à tester la prise en charge de l'exécution d'applications graphiques Linux sur Windows

Pour organiser la sortie de l'interface de l'application Linux sur le bureau Windows principal, le gestionnaire composite RAIL-Shell développé par Microsoft est utilisé, qui utilise le protocole Wayland et est basé sur la base de code Weston. La sortie est effectuée à l'aide du backend RDP-RAIL (RDP Remote Application Integrated Locally), qui diffère du backend RDP précédemment disponible dans Weston en ce que le gestionnaire composite ne dessine pas le bureau lui-même, mais redirige les surfaces individuelles (wl_surface) via le Canal RDP RAIL pour affichage sur le bureau principal de Windows. Pour exécuter des applications X11, XWayland est utilisé.

Microsoft a commencé à tester la prise en charge de l'exécution d'applications graphiques Linux sur Windows

La sortie audio est organisée à l'aide du serveur PulseAudio, qui interagit également avec Windows à l'aide du protocole RDP (le plug-in rdp-sink est utilisé pour la sortie audio et rdp-source est utilisé pour l'entrée). Composite Server, XWayland et PulseAudio sont regroupés sous la forme d'une mini-distribution WSLGd universelle qui comprend des composants pour l'abstraction des sous-systèmes graphiques et audio et est basée sur la distribution CBL-Mariner Linux également utilisée dans l'infrastructure cloud de Microsoft. WSLGd s'exécute à l'aide de mécanismes de virtualisation et virtio-fs est utilisé pour le partage entre l'invité Linux et l'hôte Windows.

FreeRDP est utilisé comme serveur RDP exécuté dans l'environnement WSLGd Linux, et mstsc est le client RDP côté Windows. Pour déterminer les applications Linux graphiques disponibles et les afficher dans le menu Windows, un gestionnaire WSLDVCPlugin a été préparé. Avec les distributions Linux courantes installées dans un environnement WSL2, comme Ubuntu, Debian et CenOS, l'ensemble des composants exécutés dans WSLGd communique en fournissant des sockets qui gèrent les requêtes via les protocoles Wayland, X11 et PulseAudio. Les liaisons préparées par WSLGd sont distribuées sous la licence MIT.

L'installation de WSLGd nécessite au moins la version 10 de Windows 21362 Insider Preview. À l'avenir, WSLGd sera disponible pour les éditions régulières de Windows sans qu'il soit nécessaire de participer au programme Insider Preview. WSLGd est installé en exécutant une commande wsl --install typique, par exemple, pour Ubuntu - "wsl --install -d Ubuntu". Pour les environnements WSL2 existants, l'installation de WSLGd se fait via la commande "wsl --update" (seuls les environnements WSL2 qui utilisent le noyau Linux, sans appeler la traduction, sont pris en charge). Les applications graphiques sont installées via le gestionnaire de packages habituel de la distribution.

WSLGd ne fournit que des mécanismes de rendu des graphiques 2D, et pour accélérer les graphiques 3D basés sur OpenGL, les distributions installées dans WSL2 suggèrent d'utiliser un GPU virtuel (vGPU). Les pilotes vGPU pour WSL sont fournis pour les puces AMD, Intel et NVIDIA. L'accélération graphique est fournie par la fourniture d'une couche avec l'implémentation d'OpenGL au-dessus de DirectX 12. La couche est conçue comme le pilote d3d12, qui est inclus dans la composition principale de Mesa 21.0 et développé conjointement avec Collabora.

Le fonctionnement du GPU virtuel est implémenté sous Linux à l'aide du périphérique /dev/dxg avec des services qui répètent le WDDM (Windows Display Driver Model) D3DKMT du noyau Windows. Le pilote établit une connexion au GPU physique à l'aide du bus VM. Les applications Linux ont le même niveau d'accès GPU que les applications Windows natives, sans utiliser le partage de ressources entre Windows et Linux. Les tests de performances sur un appareil Surface Book Gen3 avec un GPU Intel ont montré que dans un environnement Win32 natif, le Geeks3D GpuTest démontre 19 FPS, dans un environnement Linux avec un vGPU - 18 FPS, et avec un rendu logiciel dans Mesa - 1 FPS.



Source: opennet.ru

Ajouter un commentaire