La société Microsoft a annoncé le début des tests de la possibilité de lancer des applications Linux avec interface graphique dans des environnements basés sur le sous-systÚme WSL2 (Windows Subsystem for Linux), conçu pour exécuter des fichiers Linux sous Windows. Les applications s'intÚgrent complÚtement au bureau principal de Windows, y compris la prise en charge de la création de raccourcis dans le menu Démarrer, la lecture audio, l'enregistrement depuis un microphone, l'accélération matérielle OpenGL, l'affichage des informations sur les programmes dans la barre des tùches, le changement entre les programmes avec Alt-Tab et le transfert de données entre les programmes Windows et Linux via le presse-papiers.

Pour afficher l'interface des applications Linux sur le bureau principal de Windows, Microsoft a dĂ©veloppĂ© le gestionnaire de compositions RAIL-Shell, utilisant le protocole Wayland et basĂ© sur le code de Weston. L'affichage est effectuĂ© Ă l'aide du backend RDP-RAIL (RDP Remote Application Integrated Locally), qui diffĂšre de l'ancien backend RDP disponible dans Weston car le gestionnaire de compositions ne rĂ©alise pas lui-mĂȘme le rendu du bureau, mais redirige des surfaces individuelles (wl_surface) via le canal RDP RAIL pour les afficher sur le bureau principal de Windows. XWayland est utilisĂ© pour exĂ©cuter des applications X11.

La sortie audio est organisée en utilisant de serveurs PulseAudio, qui interagit également avec Windows grùce au protocole RDP (le plugin rdp-sink est utilisé pour la sortie audio, tandis que rdp-source est utilisé pour l'entrée). Le serveur de composition, XWayland et PulseAudio sont packagés sous la forme d'une mini-distribution universelle WSLGd, comprenant des composants d'abstraction des sous-systÚmes graphiques et audio, et basée sur la distribution CBL-Mariner Linux, également utilisée dans l'infrastructure cloud de Microsoft. WSLGd est lancé en utilisant des mécanismes de virtualisation, et l'accÚs partagé entre l'environnement invité Linux et le systÚme hÎte Windows utilise virtio-fs.
En tant que serveur RDP, lancĂ© dans l'environnement Linux WSLGd, utilise FreeRDP, tandis que cĂŽtĂ© Windows, le client RDP est reprĂ©sentĂ© par mstsc. Pour identifier les applications graphiques Linux existantes et les afficher dans le menu Windows, un gestionnaire, WSLDVCPlugin, a Ă©tĂ© prĂ©parĂ©. Avec les distributions Linux standard installĂ©es dans l'environnement WSL2, telles qu'Ubuntu, Debian et CentOS, le ensemble de composants exĂ©cutĂ© dans WSLGd interagit via des sockets, traitant les requĂȘtes selon les protocoles Wayland, X11 et PulseAudio. Les liaisons prĂ©parĂ©es pour WSLGd sont distribuĂ©es sous licence MIT.
Pour installer WSLGd, vous devez avoir Windows 10 Insider Preview version 21362 ou supĂ©rieure. Dans un avenir proche, la possibilitĂ© d'installer WSLGd sera Ă©galement donnĂ©e pour les versions classiques de Windows, sans avoir besoin de participer au programme Insider Preview. L'installation de WSLGd se fait en exĂ©cutant la commande standard «wsl âinstall», 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 utilisant un noyau Linux sont supportĂ©s, pas la traduction des appels). Les applications graphiques sont installĂ©es via le gestionnaire de packages standard de la distribution.
WSLGd ne fournit que des mécanismes pour le rendu 2D, tandis que pour l'accélération de la 3D basée sur OpenGL dans les distributions installées en WSL2, un GPU virtuel (vGPU) est recommandé. Les pilotes vGPU pour WSL sont fournis pour les puces AMD, Intel et NVIDIA. L'accélération graphique est réalisée à travers une couche implémentant OpenGL au-dessus de DirectX 12. Cette couche est incorporée sous la forme d'un pilote d3d12, inclus dans la version principale de Mesa 21.0, et développée en collaboration avec la société Collabora.
Le fonctionnement du GPU virtuel est rĂ©alisĂ© sous Linux Ă l'aide de l'appareil /dev/dxg avec des services imitant le modĂšle de pilote d'affichage Windows (WDDM) Kernel D3DKMT. Le pilote Ă©tablit une connexion avec le GPU physique via le bus VM. Les applications Linux ont le mĂȘme niveau d'accĂšs au GPU que les applications natives Windows, sans sĂ©paration des ressources entre Windows et Linux. Les tests de performance sur l'appareil Surface Book Gen3 avec GPU Intel ont montrĂ© que dans l'environnement Win32 natif, le test Geeks3D GpuTest affiche 19 FPS, dans l'environnement Linux avec vGPU â 18 FPS, tandis qu'avec le rendu logiciel dans Mesa â 1 FPS.

Source : opennet.ru
