C'est fait : on peut désormais utiliser des applications Linux avec interfaces graphiques au sein de Windows 10. La fonctionnalité n'est pour le moment accessible que via les versions Insider de l'OS de Microsoft, mais le gros du travail semble terminé. Voici le résultat de nos premiers essais.
L'année dernière, à l'occasion de sa conférence Build, Microsoft promettait une petite révolution pour son sous-sytème Linux qui venait de passer en v2 : on pourrait bientôt l'utiliser pour effectuer des calculs sur GPU, mais aussi pour lancer des applications avec interface graphique, dans l'idée de transformer Windows 10 en OS à tout faire.
WSL : l'arme secrète de Microsoft pour séduire les développeurs
Si vous voulez profiter des applications et jeux disponibles uniquement pour cet OS et avoir en même temps un véritable Linux sous la main, la solution n'est pas d'utiliser une distribution Linux en cherchant à y faire fonctionner des applications Windows, le double boot ou un hyperviseur complexe, mais bien Windows 10 et WSL.
Une approche intéressante pour la société qui produit de plus en plus de code open source, le plus souvent sous licence MIT. Elle s'est fait une place de choix dans l'écosystème en se payant GitHub et npm, misant sur Linux à travers Azure et développant des outils similaires aux usages des OS libres comme VSCode ou winget.
Pas de quoi convaincre ceux pour qui le libre est un pré-requis, et qui n'auront donc jamais l'intention de passer sous Windows. Mais sans doute suffisant pour séduire nombre de développeurs qui cherchent une solution intermédiaire, et ont pu être tentés par l'écosystème Apple et macOS ces dernières années.
WSLg : ceci est une révolution
Avec la build 21364 de Windows 10 publiée cette nuit, on découvre la première version de WSLg, l'ensemble qui permet de profiter d'applications Linux avec interface graphique (X11 et Wayland) sous Windows 10. Elle est aussi capable de tirer partie d'un GPU AMD, Intel ou NVIDIA et de son accélération graphique.
Comment cela fonctionne-t-il ? Nous avons fait le test pour vous.
Dans son billet de blog, Microsoft détaille ce qui est mis en œuvre : la distribution installée dans WSL communique avec une distribution système « compagnon » qui lui donne accès à un serveur graphique Wayland, un serveur Pulse Audio et un ensemble nommé Weston qui regroupe différents outils et un gestionnaire de fenêtres.
Cette distribution secondaire est CBL-Mariner, dont le code source est diffusé sous licence MIT. Elle était utilisée au départ pour les besoins de services Azure, mais adaptée depuis à l'évolution de WSL.
Le tout communique via des sockets spécifiques, l'utilisateur récupérant l'interface graphique à travers un protocole d'accès distant (RDP), implémenté via FreeRDP. Il n'a pas à se préoccuper de gérer quoi que ce soit : la distribution compagnon se lance et s'arrête automatiquement, une fois que les applications Linux et WSL stoppées.
Ceux qui veulent en savoir plus peuvent lire ce billet de blog technique ou regarder cette présentation.

Comment tester WSLg ?
Comme évoqué précédemment, WSLg est présent à partir de la build 21364 de Windows 10. Pour y accéder, vous pouvez passer par le programme Insider ou télécharger une image ISO. Une fois le système installé, c'est assez rapide puisque les procédures d'installation et de mise à jour de WSL ont été simplifiées ces derniers mois.
- Rufus, UUP Dump : comment télécharger l'ISO de n'importe quelle branche de Windows 10
- Windows 10 : l'installation simplifiée de WSL, comment ça marche ?
Il suffit d'ouvrir un terminal (Administrateur) et de taper l'une des commandes suivantes selon votre cas :
wsl --install -d ubuntu
wsl --update
Bien entendu, pensez à activer les fonctionnalités de virtualisation de votre CPU via le BIOS/UEFI de votre carte mère si ce n'est pas fait. Le gestionnaire des tâches de Windows vous indiquera si c'est le cas (onglet Performance).
Si vous cherchez la liste des distributions pouvant être installées (Ubuntu 20.04 LTS dans notre cas), vous la trouverez dans le Microsoft Store. Vous n'avez rien de plus à faire, tout étant automatique. Il suffit ainsi par exemple de mettre à jour le système, d'installer et de lancer VLC pour l'utiliser :
sudo apt update && sudo apt full-upgrade
sudo apt install vlc
Notez que la première fois, les dépendances à récupérer peuvent être nombreuses. Dans le cas de VLC, nous avons ainsi dû récupérer 193 Mo de données, pour un espace occupé de 816 Mo une fois l'application installée. Dans la pratique, tout n'est pas parfait puisque l'on ne peut par exemple pas glisser/déposer un fichier dans VLC.
Nous avons également rencontré des soucis pour lire la version 4K de Tears of Steel au format MOV (6,27 Go) parfois saccadée, alors que celle en H.264 (1,21 Go) était lue sans problème.
Comment exploiter un GPU depuis WSLg ?
Pour que votre carte graphique soit prise en compte, il faudra utiliser un pilote adapté. Microsoft renvoie vers des versions pour les solutions graphiques des trois principaux constructeurs :
- Télécharger le pilote WSLg pour AMD
- Télécharger le pilote WSLg pour Intel
- Télécharger le pilote WSLg pour NVIDIA
Cela permettra de profiter d'une accélération via OpenGL rendue possible par l'intégration du pilote d3d12 au sein de Mesa 21.0. Nous avons essayé différentes applications dont Blender (2.82) en tirant parti de CUDA (OptiX n'est pas disponible) sur une GeForce RTX 2080 Super. Voici les résultats que nous avons obtenus :
De bonnes performances sous Blender, mais gare à l'usage CPU quand trop d'applications sont lancées
Comme on peut le voir, certaines applications apparaissent sous le logo d'un bureau distant, avec là aussi quelques souci puisque dans le cas de SuperTux Racer on ne peut pas déplacer la fenêtre par exemple. Mais on profite bien des performances du GPU en 3D via OpenGL et/ou via CUDA, avec une surprise : Blender WSLg est... plus rapide.
Impossible de lancer un jeu Vulkan via Steam. Nous avons réussi avec Borderlands 2 et Portal 2 mais le rendu était trop lent. Nous avons aussi noté que lorsque trop d'applications étaient lancées via WSLg, notamment avec rendu 3D, l'utilisation du CPU pouvait être élevée, et même parfois atteindre les 99 % (voir ci-dessus). Attention, donc.
Notez que pour que CUDA fonctionne, il faut suivre la documentation NVIDIA et taper les commandes suivantes :
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
sudo apt update
sudo apt install cuda-toolkit-11-3
Un premier pas intéressant
Bien entendu, WSLg va continuer d'évoluer. Son intégration à la branche stable de Windows 10 ne devrait pas se faire avant la fin de l'année et la version 21H2. Mais nos premiers tests indiquent que l'ensemble est déjà plutôt abouti. Et il s'agit d'une solution sans équivalent, qui a le potentiel pour séduire nombre d'utilisateurs qui hésitent parfois entre un écosystème Linux et Windows, et qui pourront trouver ici le meilleur des deux mondes.
Il n'y a plus qu'à attendre de voir la société porter ses efforts à Windows 10 on ARM et à nouer des partenariats avec des constructeurs de SoC plus diversifiés (et performants), Qualcomm ayant douché les espoirs d'une réussite d'un tel système ces dernières années. Windows 10 aura alors de quoi séduire même face à macOS 11.