
Microsoft rend son sous-système Windows pour Linux (WSL) open-source, ouvrant le code aux membres de la communauté pour qu'ils y contribuent. Après avoir lancé WSL pour Windows 10 il y a près de neuf ans, Microsoft a déployé des efforts sur plusieurs années pour rendre open-source la fonctionnalité qui permet de créer un environnement Linux au sein de Windows. Le code WSL est désormais disponible sur GitHub, ce qui permet aux développeurs de le télécharger et de le construire à partir des sources, de participer aux corrections ou même d'ajouter de nouvelles fonctionnalités.
Lors de son évènement BUILD de cette année, Microsoft a annoncé rendre open source le sous-système Windows pour Linux (WSL). Lors de cet évènement, le géant technologique a fait d'autres annonces liées à l'open-source, notamment celle de son propre éditeur de texte CLI, appelé Edit. Le code source de WSL a été rapidement mis à disposition sur le GitHub de Microsoft.
WSL est une configuration de virtualisation spécialisée qui permet aux utilisateurs de Windows d'exécuter des distributions Linux à l'intérieur de Windows, avec une intégration étroite du système, des logiciels et du matériel. Le WSL a été conçu pour permettre aux développeurs qui ne souhaitaient pas utiliser une distribution Linux complète, mais qui avaient besoin de travailler avec des outils Linux, de le faire.
Microsoft explique qu'elle a décidé d'ouvrir le code source de la technologie pour la faire progresser, permettant ainsi à la communauté qui s'est formée autour de la technologie depuis son introduction de s'impliquer davantage dans le développement, la mise en forme et l'amélioration de la technologie à l'avenir. Certaines parties de WSL étaient déjà open source, notamment wslg (qui permet aux applications à interface graphique de fonctionner sur le bureau Windows), ainsi que le noyau Linux WSL 2 (Microsoft maintient son propre noyau Linux personnalisé pour Windows).
Les composants nouvellement mis en open source comprennent les divers exécutables de ligne de commande qui interagissent avec WSL, le service WSL qui gère la gestion des machines virtuelles, le démarrage des distros, le montage des points de partage de fichiers, etc. et les démons d'initialisation et de traitement. Cependant, tout ce qui concerne le WSL n'a pas été mis en open source. Quelques composants utilisés dans WSL 1 (la première version qui ne fonctionnait pas sur un noyau Linux) restent pour l'instant propriétaires. Mais étant donné que WSL 2 est la version actuelle, plus rapide et plus performante, ce n'est pas une grande perte.

WSL a été annoncé pour la première fois à BUILD en 2016 et a été livré pour la première fois avec la mise à jour Anniversaire de Windows 10. À l'époque, WSL était basé sur un fournisseur de processus pico, lxcore.sys, qui permettait à Windows d'exécuter nativement des exécutables ELF et d'implémenter des appels de système Linux à l'intérieur du noyau Windows. C'est finalement devenu ce que nous connaissons aujourd'hui sous le nom de « WSL 1 », que WSL prend toujours en charge.
Au fil du temps, il est apparu clairement que la meilleure façon d'assurer une compatibilité optimale avec Linux natif était de s'appuyer sur le noyau Linux lui-même. Le WSL 2 est né et a été annoncé pour la première fois en 2019. Au fur et à mesure que la communauté derrière le WSL grandissait, le WSL a gagné plus de fonctionnalités telles que le support des GPU, le support des applications graphiques (via wslg) et le support de systemd.
Il est finalement devenu évident que pour suivre la croissance de la communauté et des demandes de fonctionnalités, le WSL devait aller plus vite et être livré séparément de Windows. C'est pourquoi, en 2021, le WSL de la base de code Windows a été placé dans sa propre base de code. Ce nouveau WSL a été livré pour la première fois dans la version 0.47.1 sur le Microsoft Store, en juillet 2021. À l'époque, seul Windows 11 était supporté, et le paquet était marqué comme preview, seulement recommandé aux utilisateurs qui voulaient expérimenter la dernière et la meilleure version de WSL.
Microsoft a continué à développer ce nouveau « paquet WSL » jusqu'à ce qu'il soit prêt pour une disponibilité générale. Cela s'est produit en novembre 2022, avec WSL 1.0.0, qui a ajouté la prise en charge de Windows 10 et a été la première version « stable » de ce nouveau WSL.
À partir de là, ils ont continué à améliorer le WSL, avec l'objectif de faire passer tous les utilisateurs à ce nouveau package WSL, et d'abandonner le composant WSL livré avec Windows. Windows 11 24H2 a été la première version de Windows à faire passer les utilisateurs du WSL « intégré » au « nouveau » WSL. Microsoft a conservé wsl.exe dans l'image Windows, afin qu'il puisse télécharger le dernier paquet à la demande pour faciliter la transition.
En continuant à améliorer le WSL, WSL 2.0.0 est arrivé. Le WSL 2.0.0 a introduit des améliorations majeures telles que le réseau en miroir, le tunnel DNS, la prise en charge de la session 0, la prise en charge du proxy, la prise en charge du pare-feu et bien d'autres choses encore. Après tout cela, rendre open source consituait donc la prochaine étape pour Microsoft.
Vue d'ensemble des composants du WSL
Le WSL est constitué d'un ensemble de composants de distribution. Certains fonctionnent sous Windows, d'autres dans la machine virtuelle WSL 2. Voici un aperçu de l'architecture du WSL :
Le code du WSL peut être divisé en plusieurs zones principales :
- Les exécutables en ligne de commande qui sont les points d'entrée pour interagir avec le WSL : wsl.exe, wslconfig.exe et wslg.exe.
- Le service WSL qui démarre la VM WSL, démarre les distros, monte les partages d'accès aux fichiers, etc. : wslservice.exe
- Processus Linux init et daemon, binaires qui s'exécutent dans Linux pour fournir des fonctionnalités WSL : init pour le démarrage, gns pour le réseau, localhost pour la redirection des ports, etc.
- Partage de fichiers Linux vers Windows avec l'implémentation du serveur plan9 du WSL : plan9
Il s'agit d'un ajout aux composants WSL déjà open source :
- microsoft/wslg : Permettre au sous-système Windows pour Linux d'inclure la prise en charge de Wayland et des scénarios liés au serveur X
- microsoft/WSL2-Linux-Kernel : Source du noyau Linux utilisé dans le sous-système Windows pour Linux 2 (WSL2).
Les composants suivants font toujours partie de l'image Windows et ne sont pas encore en open source:
- Lxcore.sys, le pilote côté noyau qui alimente WSL 1
- P9rdr.sys et p9np.dll, qui exécutent la redirection du système de fichiers « \wsl.localhost » (de Windows vers Linux).

Source : Microsoft
Et vous ?


Voir aussi :



Vous avez lu gratuitement 13 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.