Lors de la conférence Build, Microsoft a annoncé une nouvelle version de WSL 2, sa couche Linux au cœur de Windows, avec support du GPU, de DirectX et des applications graphiques Linux.

En lançant WSL (Windows Subsystem for Linux) en 2016, Windows avait bousculé l’univers du développement et ébranlé la communauté Linux qui rêve depuis toujours de voir Linux s’imposer sur le « Desktop ».

Ce rêve ne prendra probablement pas la forme à laquelle ils s’attendaient mais est en train de se concrétiser. D’un certain point de vue, Windows va bientôt pouvoir être considéré comme une distribution, certes atypique mais finalement très complète, de Linux !

Une compatibilité Linux à l’origine pensée pour les Devs…

Pour mémoire, Microsoft lance dans les prochains la version « 2004 » de Windows 10. Parmi les améliorations les plus attendues, l’arrivée de WSL2 est sans aucun doute l’innovation la plus marquante. Contrairement à WSL1 qui fournissait une interface noyau compatible Linux au-dessus Windows pour exécuter les batchs et outils en ligne de commandes Linux, WSL2 s’appuie sur un véritable noyau Linux intégré dans toutes les éditions de Windows 10 y compris l’édition familiale !

La vocation première de WSL est de permettre aux développeurs Web (majoritairement Linuxiens) de développer sous une machine Windows des applications à destination de serveurs Linux.

Windows, un Linux pas comme les autres ?

GIMP Linux tournant sous Windows via WSL2

Mais lors de sa conférence Build 2020, Microsoft a ouvert de nouvelles perspectives à cette utilisation des applications Linux sous Windows. Dans les prochains mois, l’éditeur va faire évoluer sa couche WSL2 pour lui offrir un support direct des GPU des machines. Officiellement, cette technologie doit permettre le développement et l’exécution sous Windows d’applications IA sous Linux en profitant des accélérations permises par les GPU en la matière.

Mais en y regardant de plus près, cette implémentation est beaucoup plus universelle. Elle va permettre à tous les utilisateurs d’exécuter directement sous Windows les applications graphiques conçues pour Linux. Et dès lors de faire de Windows un environnement d’exécution pour toutes les applications Linux avec une totale intégration au bureau Windows.

Il est déjà possible d’exécuter des applications graphiques Linux sous Windows (grâce à WSL) via une manipulation un peu complexe passant par l’installation d’un X-server. Mais on ne bénéficie pas pleinement des accélérations matérielles et la mise en œuvre est trop lourde pour des utilisateurs non experts.
Avec la prochaine mise à jour de WSL2, le support graphique sera natif et accéléré.

DirectX arrive à petits pas sous Linux

Le support des GPU et des apps graphiques Linux sous WSL2

À la surprise générale, cette adoption de Linux par Microsoft prend des proportions inattendues. On sait déjà que le navigateur Edge sera décliné sous Linux d’ici la fin de l’année. Mais lors de la Build, Microsoft a également révélé son intention de supporter DirectX sous WSL2 via un nouveau driver Kernel Linux « Dxgkrnl » (publié en open source). L’idée est de s’assurer que les applications OpenCL, OpenGL et Vulkan de l’univers Linux bénéficieront d’une exécution accélérée sous Windows via une conversion automatique des appels en DirectX.

Cette annonce a entraîné d’assez vives réactions dans l’univers Linux et une levée de boucliers quant à l’acceptation officielle de ce pilote Kernel dans Linux : en effet, ce driver appelle des bibliothèques (en User Space) qui sont, elles, propriétaires. Microsoft n’a en effet pour l’instant apparemment pas l’intention de publier DirectX 3D en open source, même si aujourd’hui plus rien ne semble impossible sous la houlette de Satya Nadella.

Quand Linux inspire Windows

WinGet lancé depuis Microsoft Terminal 1.0

Microsoft cherche de plus en plus à unifier les habitudes des développeurs Windows et Linux en adoptant des philosophies communes et des outils communs. Ainsi, le support des containers se généralise même chez les devs Windows. Par ailleurs, Microsoft vient d’officialiser son nouveau terminal en ligne de commandes, Microsoft Terminal 1.0 (en open source), avec onglets, destiné à remplacer l’ancien CMD. Il supporte l’invite de commandes Windows, PowerShell et les différents Bash Linux sous WSL, les volets, la prise en charge des caractères Unicode et UTF-8, un rendu de texte accéléré par GPU, ainsi que des thèmes, styles et configurations personnalisés.
Microsoft a également annoncé durant la Build 2020, son propre gestionnaire de package pour Windows, dénommé WinGet offrant la même facilité et rapidité de déploiements d’environnements que ce que l’on trouve dans l’univers Linux. Il existait des gestionnaires de package pour Windows comme Chocolatey, Scoop, Ninite, AppGet, OneGet… Microsoft a préféré partir sur sa propre solution, en open source, afin d’offrir un repository protégé par SmartScreen et une validation SHA256 afin d’éviter les problématiques de packages infectés et pervertis.