Microsoft commence à tester la prise en charge de l'exécution des applications GUI Linux sur Windows



Microsoft a commencé à tester le lancement des applications GUI Linux sur Windows. Ceci est implémenté sur la base du sous-système WSL2 (Windows Subsystem for Linux), que l'entreprise développe depuis de nombreux mois. Il est à noter que les applications sont entièrement intégrées au bureau Windows, notamment en plaçant des raccourcis dans le menu Démarrer, en jouant du son, en enregistrant à partir d'un microphone, en accélérant le matériel OpenGL. L'affichage des informations sur les logiciels dans la barre des tâches est également implémenté, vous pouvez basculer entre les programmes par Alt + Tab, les données entre les applications Linux et Windows peuvent être copiées à l'aide du presse-papiers.



L'interface de l'application Linux s'affiche sur le bureau principal de Windows à l'aide du gestionnaire composite RAIL-Shell. Il utilise le protocole Wayland et est basé sur la base de code Weston. La sortie est implémentée via le backend RDP-RAIL (RDP Remote Application Integrated Localally), qui ne rend pas le bureau, mais redirige les surfaces individuelles sur le canal RDP RAIL pour les afficher sur le bureau Windows principal. Les applications X11 s'exécutent à l'aide de XWayland.



Autres détails



La société utilise un moyen intéressant de restituer le son - en utilisant le serveur PulseAudio. Le serveur interagit avec le système d'exploitation via le protocole RDP (le plugin rdp-sink est utilisé pour la sortie audio et rdp-source pour l'entrée). Ce serveur et XWayland sont hébergés dans une mini-distribution générique WSLGd. Il comprend des composants pour l'abstraction des sous-systèmes graphiques et sonores.



Tout cela est basé sur la distribution Linux CBL-Mariner, que Microsoft utilise également - dans son infrastructure cloud. La mini-distribution est lancée à l'aide de mécanismes de virtualisation. Dans le même temps, l'accès partagé entre l'environnement invité Linux et l'hôte Windows est implémenté à l'aide de virtio-fs.



Les développeurs ont choisi FreeRDP comme serveur RDP qui s'exécute dans l'environnement WSLGd Linux. Pour la même tâche, Widnows OS utilise mstsc. Le gestionnaire WSLDVCPlugin est utilisé pour identifier les applications graphiques Linux disponibles et les afficher dans le menu Windows. Il vous permet d'interagir avec les distributions Linux dans un environnement WLS2 en fournissant des sockets qui gèrent les requêtes Wayland, X11 et PulseAudio. Les liaisons préparées pour WSLGd sont concédées sous licence MIT.



Comment accéder aux nouvelles fonctionnalités?



Pour ce faire, vous devez installer Windows 10 Insider Preview au moins la version 21362. Les développeurs promettent que dans un proche avenir, les éditions régulières de Windows suffiront à installer WSLGd et que l'utilisateur n'aura pas besoin de participer au programme Insider Preview .





Installe WSLGd à l'aide de la commande "wsl --install", par exemple, pour Ubuntu - "wsl --install -d Ubuntu". Dans le cas des environnements WSL2 existants, WSLGd est installé via la commande "wsl --update" (seuls les environnements WSL2 qui utilisent le noyau Linux sont pris en charge, pas la traduction d'appel). Les applications graphiques sont installées via le gestionnaire de packages habituel du kit de distribution.



WSLGd prend uniquement en charge les graphiques 2D. Si vous avez besoin de graphiques 3D basés sur OpenGL, un mécanisme différent est utilisé: le GPU virtuel (vGPU). Les pilotes sont fournis en trois versions - pour les puces AMD , Intel et NVIDIA... Travailler avec des graphiques est effectué en fournissant une couche avec l'implémentation d'OpenGL au-dessus de DirectX 12. La couche est conçue sous la forme du pilote d3d12, inclus dans la partie principale de Mesa 21.0, et est développée conjointement avec Collabora.



Sous Linux, le GPU virtuel est implémenté sur le périphérique / dev / dxg avec des services qui imitent le modèle de pilote d'affichage Windows (WDDM) D3DKMT du noyau Windows. Dans ce système, le pilote établit une connexion à la puce vidéo physique via le bus VM. Les applications Linux ont le même niveau d'accès GPU que les applications Windows natives, il n'y a pas de partage de ressources entre Windows et Linux.



Lors des tests de performances d'un système basé sur Surface Book Gen3 avec un GPU Intel, il s'est avéré que le benchmark Geeks3D GpuTest affiche 19 FPS sous Windows, 18 FPS sous Linux. Dans Mesa, avec rendu logiciel - seulement 1 FPS.



Un peu de contexte



WSL2 est devenu disponible pour les utilisateurs de Windows le 20 août 2020 - c'est à ce moment que Microsoft a publié la mise à jour cumulative KB4566116.





Après l'avoir installé, les utilisateurs de Windows 10, version 1903 et version 1909 ont commencé à tester WSL2, et les critiques ont été pour la plupart positives. Jusqu'au 20 août, seul WSL de la première version était disponible, et uniquement dans Windows 10 version 2004.





Quant à la première version de WSL, les travaux ont commencé il y a plusieurs années. L'annonce officielle du sous-système a été faite lors de la conférence Microsoft Build 2016. L'annonce a été brève - puis ils ont parlé des capacités de WSL en quelques minutes. Mais il a provoqué un tel émoi et un afflux de trafic sur la page avec l'annonce que les organisateurs de la conférence soupçonnaient même que quelqu'un avait organisé une attaque DDoS.



Depuis lors, WSL a beaucoup évolué, et maintenant le sous-système continue d'évoluer.






All Articles