L'ancien sous-système Windows pour Linux utilisait un noyau qui fournit la même API que le noyau Linux, mais était entièrement écrit par Microsoft. De façon brossée, son rôle est de transformer les appels système Linux en appels système Windows NT. Depuis Windows 10 Anniversary Update, ce processus s’appuie sur les pilotes lxcore.sys et lxss.sys implémentés comme des wrappers autour des appels système du noyau NT. Il s’agissait donc d’une espèce de couche de compatibilité. Toutefois elle exhibait un certain nombre de tares : il n'était pas possible de faire usage des pilotes Linux, en particulier ceux des systèmes de fichiers ; les performances de son système de fichiers superposé au NTFS de Windows étaient souvent moins bonnes comparé à un vrai noyau Linux ; il s'appuyait sur une API équivalente à la version 4.4 du noyau Linux publiée en 2016 et ce qu'il faut même dire à ce propos c'est que les API sont implémentées de façon partielle, ce, pour répondre aux besoins d'applications spécifiques.
Tout ceci a changé avec la version 2 du sous-système Windows pour Linux (WSL 2). WSL 2 s’appuie non plus sur une couche de compatibilité, mais sur un « noyau taillé sur mesure pour le sous-système Windows pour Linux ». WSL 2 exécute un noyau Linux complet dans une machine virtuelle légère. La taille de ce noyau est adaptée à ce cas d'utilisation particulier.
En s'appuyant sur le noyau Linux lui-même, Microsoft obtient toutes les fonctionnalités du système d'exploitation open source gratuitement. Grosso modo, avec l’intégration d’un noyau Linux à Windows, on anticipait déjà sur des améliorations significatives des performances en ce qui concerne des tâches courantes : extraction d’archives compressées, clonage de dépôts Git, etc. C’est en droite ligne avec ces bases que Microsoft annonce « l’ajout de la prise en charge des applications GUI Linux dans WSL » qui permet « d'exécuter des éditeurs, outils, utilitaires et applications Linux préférés » et « d’améliorer la capacité à créer des builds, tester, déboguer et exécuter des applications Linux sous Windows 10. » L’utilisation de ces diverses possibilités est soumise à installation de ladite prise en charge. Ensuite, il suffit d’ouvrir une fenêtre WSL et y lancer une application graphique Linux sans avoir à configurer un serveur X à chaque fois.
Depuis sa sortie, le Windows Subsystem for Linux n’a pas manqué de susciter l’intérêt des développeurs et cette nouvelle version reste sujette à des questionnements sur certains détails. En effet, WSL 2 s’appuie sur Hyper-V pour la virtualisation de l’espace d’adressage. Il vient donc la question de savoir si les cas de virtualisation imbriquée ne poseront pas de problème ; ça pourrait par exemple coincer avec une tentative d’exécution du WSL 2 sur Windows 10, ce, dans des cas d’exécution de Windows 10 lui-même au sein d’une machine virtuelle. Toutefois, l’une des issues serait de faire usage d’un hyperviseur compatible avec Hyper-V comme QEMU ou VirtualBox.
S'inscrire pour participer à l'Open Source Week de Microsoft
Source : Microsoft
Et vous ?
Êtes-vous un utilisateur du WSL 2 ? Quel intérêt y a-t-il à faire du développement Linux sur son poste de travail Windows ?
La disponibilité du WSL 2 est-elle une raison valable pour les décideurs en entreprise de faire passer tous les serveurs sous Windows ?
Quelles fonctionnalités continuent de faire défaut au WSL 2 ?
Voir aussi :
La MàJ WSL dans Windows 10 build 1903 vous donne accès aux fichiers Linux depuis Windows, les outils en ligne de commande sont également améliorés
Windows 10 : le sous-système Linux (WSL) quitte la phase bêta, la fonctionnalité sera entièrement supportée dans Windows 10 Fall Creators Update
Microsoft parle des évolutions du sous-système Linux WSL qui vont accompagner la MàJ Creators Fall Update attendue le 17 octobre
Microsoft améliore le sous-système Linux de Windows 10 pour couvrir la majorité des scénarios auxquels font face les développeurs chaque jour
Microsoft rend un échantillon du sous-système Windows pour Linux open source à l'intention des mainteneurs de distributions