- Microsoft a annoncé que l’ensemble de WSL passe en open source, ce qui constitue aussi une réponse à la toute première issue du dépôt Microsoft/WSL : « Est-ce que cela deviendra open source ? »
- Il est possible de télécharger le code depuis Microsoft/WSL sur GitHub, de le compiler soi-même, d’y ajouter des fonctionnalités et de corriger des bugs
- Le code publié inclut les outils en ligne de commande, les services, les démons pour Linux, ainsi qu’un serveur de partage de fichiers basé sur Plan9
- WSL se compose de la partie exécutée sur Windows et de plusieurs composants fonctionnant dans une machine virtuelle (VM) Linux
- Outils CLI :
wsl.exe, wslconfig.exe, wslg.exe
- Service WSL :
wslservice.exe, chargé du démarrage de la VM, de l’exécution des distributions, du partage de fichiers, etc.
- Démons Linux :
init, gns, localhost, etc., qui assurent les fonctions réseau et le transfert de ports
- Serveur Plan9 : assure le partage de fichiers entre Windows et Linux
- Composants déjà publiés en open source auparavant
- WSLg : composants liés à l’environnement graphique prenant en charge Wayland et le serveur X
- WSL2-Linux-Kernel : code source du noyau Linux
- Composants qui ne sont pas encore ouverts
Lxcore.sys : pilote central de WSL1
P9rdr.sys, p9np.dll : système de redirection de fichiers qui prend en charge le chemin \\wsl.localhost sous Windows
Contexte du passage à l’open source et histoire de WSL
- WSL a été annoncé pour la première fois lors de BUILD 2016 et intégré à Windows 10 Anniversary Update
- WSL1 reposait sur une architecture basée sur
lxcore.sys, qui traitait les appels système Linux dans le noyau Windows
- WSL2 a été présenté pour la première fois en 2019 et a amélioré la compatibilité et les fonctionnalités en s’appuyant sur un véritable noyau Linux
- Il a ensuite évolué avec l’ajout de fonctions comme la prise en charge du GPU, l’exécution d’applications GUI (
wslg) et la prise en charge de systemd
- Depuis 2021, WSL est distribué sous forme de package autonome, séparé de Windows, via le Microsoft Store
- La première version publiée était la 0.47.1 (preview), puis la version 1.0.0 en 2022 a étendu la prise en charge jusqu’à Windows 10
- À partir de Windows 11 24H2, l’ancien WSL intégré est remplacé par le nouveau WSL basé sur un package
wsl.exe reste en place pour faciliter la transition des utilisateurs
Dernière version et fonctionnalités
- La dernière version est WSL 2.5.7, qui a été améliorée au fil de 4 ans à travers des notes de version GitHub représentant environ 9 pages
- Parmi les principales améliorations figurent le réseau en miroir, le tunneling DNS, Session 0, ainsi que la prise en charge des proxys et des pare-feu
Contribution de la communauté
- Pendant des années, la communauté a contribué à l’amélioration de WSL via des signalements de bugs, des propositions de fonctionnalités et des analyses non officielles
- Même avant la publication du code source, les contributions concrètes étaient déjà actives, et il est désormais possible de contribuer directement au code
- Microsoft remercie la communauté pour son soutien et espère une synergie encore plus forte pour faire progresser WSL à l’avenir
Comment contribuer
- Si vous souhaitez comprendre la structure du code source, l’implémentation des fonctionnalités, ou améliorer certains points
- vous pouvez participer via le dépôt microsoft/WSL
- il est possible de contribuer de différentes façons : compilation directe, soumission de PR, signalement d’issues, etc.
6 commentaires
Du point de vue de quelqu’un qui utilise Endeavour +lustre / Windows 11 + WSL + WSA
le second est plus pratique
mais en termes de performances, le premier est meilleur
On dirait que l’équipe WSL a aussi subi pas mal de coupes cette fois…
Ces temps-ci, la ligne de conduite de MS, c’est de passer en open source sous prétexte que c’est « community driven » dès qu’ils n’ont plus les effectifs lol...
C’est un moyen de liquider les restes, quoi.
WSL1 est la meilleure machine pour un environnement de développement cross-platform. Les entrées/sorties sont aussi rapides et les commandes basées sur Linux s’exécutent immédiatement. WSL2 est plus lent que WSL1 pour la compilation croisée.
Avis Hacker News
Chaque fois que je laisse un commentaire élogieux sur WSL sur Hacker News, j’ai l’impression de payer une taxe de karma. WSL me donne même l’impression d’être plus puissant que Linux, parce qu’il permet d’exécuter très facilement plusieurs versions de Linux en même temps sur une seule machine. La prise en charge d’outils comme Docker, le stockage local, le mapping réseau, etc., sans scripts spéciaux, et le fait que tout soit utilisable immédiatement sur un desktop ou un laptop sans configuration supplémentaire, sont de très gros atouts à mes yeux. Par exemple, si un projet a besoin d’Ubuntu 22 et un autre d’Ubuntu 24, c’est un vrai plaisir de ne pas avoir à se soucier des mises à jour de l’OS
Dire que c’est « plus puissant que Linux » est exagéré ; en réalité, WSL est une machine virtuelle. Sa principale force, c’est l’automatisation de nombreuses fonctions pratiques. Mais on peut soutenir qu’un environnement réellement plus pratique est justement celui qui n’a pas besoin de VM du tout. Des outils comme Distrobox et toolbx offrent des fonctions comparables, et sur NixOS aussi il est facile de tester un environnement Linux standard. En plus, on y gagne l’accélération matérielle, les applications graphiques qui fonctionnent directement, l’absence des lenteurs du pont 9p, et l’absence de problèmes comme les bulles mémoire des VM. WSL est révolutionnaire pour les utilisateurs de Windows, mais les utilisateurs de Linux n’ont tout simplement pas besoin de ce genre de VM
On peut faire la même chose sous Linux avec Distrobox, mais le fait de pouvoir utiliser Windows + WSL ensemble reste clairement séduisant. Si Microsoft sortait une édition Dev allégée en logiciels inutiles, publicité, Copilot et télémétrie excessive, avec en plus du matériel de type MacBook, je pense qu’ils pourraient tout à fait reconquérir des développeurs qui quittent Apple. À titre personnel, comme je navigue entre Mac et Linux, il y a des aspects où je préfère l’expérience Windows + WSL en matière d’ergonomie. PowerToys, WSL, PowerShell et l’automatisation de la configuration d’un PC via PowerShell + Winget DSC sont vraiment excellents, mais l’hostilité de Windows envers l’utilisateur et la durée interminable des mises à jour me sont insupportables. Ce serait encore mieux avec une base immutable et des mises à jour basées sur des images comme sur macOS. L’absence de performances au niveau d’un laptop M4 Pro est aussi un point faible côté Windows
Affirmer que « WSL est plus puissant que Linux » est le genre de remarque qui mérite effectivement une baisse de karma. J’aime bien WSL et je l’utilise tous les jours, mais sur du matériel pris en charge, lancer Linux directement offre objectivement une meilleure expérience. De la même manière qu’une VM ne peut pas être aussi bonne que le natif, les logiciels Windows fonctionnent mieux sur Windows. Par rapport au natif, j’ai constaté avec WSL des E/S plus lentes, du lag graphique, des bugs, parfois des crashs, une gestion mémoire inefficace, des anomalies réseau, etc. Sur une machine très puissante et pour un usage surtout CLI, WSL peut être pratique, mais au final tout dépend des besoins de chacun
En réalité, WSL, c’est bien Linux. Surtout depuis WSL2, qui repose carrément sur une architecture VM, alors que WSL1 tournait directement sur le kernel Windows, ce qui était impressionnant. En revanche, la lenteur du système de fichiers NTFS et le fait de devoir composer avec Windows lui-même sont de gros points négatifs. Quant au karma, ce ne sont que des chiffres, donc inutile de s’en préoccuper
Pour moi, WSL est plutôt instable, et chaque fois que le PC sort de veille, je dois redémarrer à cause de problèmes réseau entre la VM et l’hôte. Si je travaille dans le répertoire utilisateur Windows, les commandes
gitprennent plusieurs secondes à cause de la lenteur du pilote de système de fichiers, si bien que je finis par gérer deux répertoires home. Même pendant l’installation, il y a plein de problèmes obscurs à régler : DNS complexes, VPN, erreurs de priorité réseau, décalages de synchronisation horaire, etc. Au final, je me retrouve à redémarrer Windows en permanence. Je n’ai pas besoin de plusieurs OS, et au travail, la plupart des outils tournent de toute façon dans une VM Linux, ce qui est la seule approche raisonnable. L’OS hôte ne fait qu’ajouter des problèmes, et l’interaction entre deux OS impose des tâches plus complexes que nécessaireJ’étais très enthousiaste à la sortie initiale de WSL. J’avais l’impression que le rêve d’unifier jeu et développement sur un seul PC Windows devenait réalité. Mais avec le temps, les petits problèmes se sont multipliés : installation de paquets, frictions entre OS, etc., et l’ensemble est devenu de plus en plus pénible. Avec Proton de Valve et l’amélioration du support des jeux Linux récents, j’ai fini par passer complètement sur Ubuntu et NixOS. Il y a maintenant quelques inconvénients côté jeu, mais pour le développement c’est nettement plus confortable. À part quelques jeux AAA qui ne tournent pas, je considère l’expérience meilleure que Windows + WSL
J’ai eu à peu près la même expérience, et aujourd’hui j’en suis au point où installer Linux me paraît même plus simple. Les fonctions de type spyware de Windows me donnent encore moins de raisons de l’utiliser
Sauf si on utilise une carte graphique Nvidia
Je serais curieux de savoir quels jeux t’ont posé problème
Je pense que la plupart des gens ont vécu ça. Si Windows n’avait pas le jeu vidéo (et le GPU), il n’aurait probablement plus beaucoup de présence aujourd’hui. Je repense aussi au chaos des anciens projets où il fallait changer sans arrêt d’environnement de build entre
msvc,cygwin,msys2, etc. Aujourd’hui, WSL simplifie partiellement les builds, mais je trouve déjà épuisant de devoir modifier une simple variable d’environnement, et je n’ai aucune envie de revivre çaJe recommande plutôt l’approche inverse : utiliser Windows dans une machine virtuelle sous Linux. Si on commence à vouloir utiliser Linux depuis Windows, autant passer directement à Linux et ne plus revenir en arrière. Je ne suis pas retourné sur Windows depuis 15 ans. Vu l’état actuel de Windows, j’hésiterais même à l’utiliser dans une VM
Pour les tâches liées au GPU, comme les jeux ou Adobe suite, exécuter Windows dans une VM impose de faire du passthrough GPU dédié, et ceux qui n’ont pas de second GPU doivent accepter une absence d’accélération, donc l’approche VM n’est pas simple. Faire tourner Photoshop avec le pilote QEMU QXL donne des performances lamentables, et VirGL ne prend même pas en charge les invités Windows. VMWare et VirtualBox s’en sortent un peu mieux, mais ça reste loin du natif
Je pense qu’on voit clairement, dans la plupart des discussions sur Windows, une séparation entre ceux qui ont absolument besoin de Windows pour des applications de productivité et ceux qui n’en ont pas besoin. Dans mon cas, comme j’utilise des applications de productivité liées au GPU, la VM n’est pas une option et je dois utiliser Windows en natif. Pour des applications légères, une VM peut suffire, mais pour de vraies charges comme la CAO ou le jeu, ce n’est pas adapté
Après avoir utilisé Linux pendant des années, je suis revenu à Windows, puis à Mac. Entre les problèmes de compatibilité avec Wine, les alternatives logicielles incomplètes comme GIMP qui ne remplace pas Photoshop, et l’esthétique du desktop ruinée par le mélange d’apps Qt et GTK, Linux n’est pas une solution universelle
En contrepoint, d’après mon expérience, un casque VR comme le Valve Index ne fonctionne pas du tout correctement dans ce type de configuration, c’est-à-dire Linux avec Windows en VM. J’ai été un utilisateur Linux hardcore depuis mon enfance, mais il existe ce genre d’exceptions, donc il est difficile de généraliser de façon absolue
À titre d’info, il existe un lien officiel pour distribuer Windows sous forme d’images VM d’évaluation ; une fois l’évaluation expirée, le bureau devient noir et le PC s’éteint toutes les heures, entre autres limitations. Les images d’évaluation les plus récentes n’ont pas été mises à jour depuis plus de six mois, mais après inscription, un ISO est fourni
Le nom Windows Subsystem for Linux m’a toujours paru trompeur. Au premier abord, on pourrait croire à une sorte de version officielle de Wine, alors qu’en réalité c’est bien le sous-système Windows destiné à Linux. On dirait presque que Microsoft apporte des fonctionnalités à Linux, ce qui m’agace
Microsoft ne pouvait pas nommer le projet en commençant par « Linux », donc ils ont fini par choisir le nom WSL
Le nom vient de l’ancien projet Windows Subsystem for Unix. C’est un héritage qui a toujours fonctionné à rebours de ce qu’on attendait intuitivement du nom
Suggestion amusante d’une amélioration ambiguë du nom : le sous-système de Windows pour Linux
D’accord sur le fait que c’est un sous-système permettant d’exécuter Linux dans Windows, mais que le nom est déroutant
Ces dernières années, j’ai développé de temps en temps avec WSL. Quand tout marche, c’est excellent, mais dès que ça se dérègle, c’est un cauchemar. J’ai eu des problèmes constants avec le réseau, les VPN, XServer, le scaling Windows, l’accélération graphique matérielle, etc. J’ai vraiment l’impression d’avoir passé plus de temps à résoudre des problèmes qu’à développer, et je n’ai jamais vu d’amélioration. WSL est rapide et puissant, mais pour un usage quotidien c’est trop éprouvant pour moi. À la place, j’utilise surtout MSYS2 : c’est plus lent, mais au moins c’est stable, et c’est son plus grand avantage
Microsoft a procédé à de grands licenciements malgré des résultats records la semaine dernière ; je me demande si ce phénomène en est une conséquence indirecte
Dans une très grande entreprise, une vague de licenciements de l’ordre de 3 % n’a pratiquement aucun impact, sauf si cela implique la suppression totale d’une équipe ou d’un projet. Au contraire, le sureffectif est courant dans les grands groupes, donc ce niveau reste insignifiant
Ce genre de décision d’open source dans une grande entreprise, sa préparation et son exécution, ne peut absolument pas se faire en une ou deux semaines ; c’est un projet d’envergure
J’exprime quand même une inquiétude : vu l’ambiance générale actuelle, il est difficile de voir cette annonce liée à Build et les nouvelles associées comme quelque chose d’uniquement positif
Si l’on en croit l’annonce, c’est le résultat d’une préparation de longue date, donc sans rapport avec les licenciements récents
Je signale que
lxcore.sys, le driver côté kernel qui fait tourner WSL 1, n’est pas inclus dans cette mise en open source. Et je suis surpris d’apprendre que WSL 1 est encore pris en charge ; j’imagine qu’il est surtout en mode maintenanceLa seule partie qui m’intéresse vraiment, c’est
lxcore.sys. Je n’utilise encore que WSL1, et j’ai même fait des hacks assez particuliers pour traverser l’ABI ou tunneliser Windows vers un user space Linux. J’espère qu’avec l’open source, ce sera plus facile à manipulerEn réalité, j’ai entendu dire que WSL1 comme WSL2 sont tous deux pleinement pris en charge. La différence ne se résume pas au chiffre
Il faut vérifier la licence et les détails. Ça peut être positif, mais j’ai aussi des doutes : Microsoft pourrait chercher à obtenir de l’aide gratuite après avoir licencié des développeurs
Je ne suis pas utilisateur de Windows, mais j’estime que WSL est excellent. En revanche, beaucoup d’utilisateurs Windows critiquent surtout Linux parce qu’il « ne ressemble pas à Windows », alors que du point de vue d’un utilisateur Linux, c’est précisément mieux ainsi. J’espère que les utilisateurs Windows ne vont pas chercher à « windowsiser » Linux juste parce qu’ils veulent un Windows gratuit et sans pub. Si WSL permet de garder les utilisateurs Windows sur Windows, c’est presque une bonne nouvelle pour moi
J’espère qu’ils corrigeront enfin rapidement les bugs qui apparaissent quand on travaille sur le système de fichiers Windows depuis WSL