Voilà une histoire qui n’intéressera pas tout le monde, évidemment, et n’ayant moi-même aucune machine Windows et n’étant pas développeur, je trouve ça intéressant uniquement pour la culture générale et par curiosité pour comprendre comment ce genre de choses peut fonctionner.
La source :
https://blogs.msdn.microsoft.com/commandline/2017/05/11/new-distros-coming-to-bashwsl-via-windows-store/Ça commence par ça :
- Citation :
- We continue our partnership with our friends at Canonical to bring Ubuntu to the Windows Store app
Vous noterez en passant « nos amis de Canonical », ce qui paraît paradoxal à ceux qui n’ont pas suivi l’évolution de Microsoft qui, ces dernières années, est bien sorti de sa tour d’ivoire traditionnelle. Les clouds de Microsoft sont en Linux depuis pas mal de temps et bien des fleuves impétueux sont passés sous les ponts depuis lors.
Et ça continue même avec ça :
- Citation :
- We are also working with the great teams at SUSE and Fedora to bring their Linux distro’s to the Windows Store & Windows Subsystem for Linux (WSL)
Donc, en lecture brute, on apprend que Microsoft va carrément distribuer directement sur son Store en ligne, Ubuntu dans un premier temps puis d’autres distributions Linux comme Suze et Fedora…
Il avait déjà été question d’installer une couche d’Ubuntu dans Windows pour le développement mais pas aussi ouvertement au point de distribuer du Linux de cette façon.
Les puristes diront d’ailleurs que dans ce cas précis, c’est du Gnu, certes, mais justement pas du Linux. C’est exact comme on me verra plus loin : c’est un fait, Linux c’est le noyau, pas ce qui tourne par dessus. Or de noyau, il n’y en a point dans cette affaire.
J’avais déjà parlé
ici, il y a peu, d’un projet d’intégrer Ubuntu dans Windows 10 pour apporter les outils de développement classiquement disponibles dans les distributions Linux aux malheureux développeurs de Windows qui en manquent cruellement. Il s’agissait alors de faire tourner un vrai bureau Ubuntu dans une fenêtre Linux, ce qui était assez lourdingue.
Par contre dans ce qu’on voit plus bas, le seul bureau visible est le bureau de Windows et les fenêtres du terminal Bash sont des fenêtres de Windows. Il s’agit donc d’une véritable intégration. Tous les éléments graphiques affichés sont du pur Windows, il n’est plus question de bureau Ubuntu ou autre, ni de quelque application graphique Linux que ce soit.
Qui plus est, on voit que, simultanément, dans chaque fenêtre tourne une autre distribution : une Ubuntu, une Fedora et une openSuze.
Il ne s’agit pas d’avoir un Ubuntu, un Fedora ou un openSuze complet, dans tous les cas n’est conservée que la couche au-dessus du noyau et en-dessous du bureau.
Aucune application graphique Linux ne peut tourner puisqu’il n’y a aucun serveur graphique (X11 ou autre).
Par contre on peut faire tourner tout outil, utilitaire ou application en mode terminal pur. C’était bien dès le départ le but de la manœuvre.
Gag : vous remarquerez sur la copie d’écran ci-dessus, l’indication de la version du « noyau Linux » : x86_64 Linux 4.4.0.43-Microsoft
En fait il n’y a pas de noyau Linux du tout…
Il est remplacé par une couche qui traduit les appels systèmes des binaires Linux en leurs équivalents Windows (lorsqu’ils existent).
Cette couche, le kernel mode driver (lxss et lxcore), joue le rôle du noyau Linux pour les binaires Linux et leur permet d’accéder au matériel et à des opérations nécessitant des droits élevés. Apparemment accorder les droits d’une opération sudo (comme si on était temporairement root, typique de Linux mais aussi de la couche Unix du Mac) pose encore quelques problèmes.
Pour comprendre plus en détail, tout est clairement et même simplement expliqué ici (je crois que j’ai presque tout compris, c’est dire…) dans la première vidéo (en anglais, évidemment) intitulée
Windows Subsystem for Linux: Architectural Overview, et qu’on trouve sur cette page, toujours chez Microsoft :
https://blogs.msdn.microsoft.com/commandline/learn-about-bash-on-windows-subsystem-for-linux/En résumé, l’intérêt de toute l’affaire pour Microsoft est qu’aucun portage n’est nécessaire.
Ce serait d’ailleurs une tâche quasi-impensable : portage du code de chaque outil, de toutes les bibliothèques associées puis débogage.
Plus tard portage de chaque mise à jour et on recommence le débogage.
Absence des contributions supplémentaires dues à l’« éco-système » Linux, à moins de portage mais là encore avec toute l’artillerie derrière…
Alors que dans cette structure, les binaires sont d’origine et tournent sans émulation à une vitesse à peine inférieure à celle qu’on aurait directement dans un vrai système Linux.
Tous les ajouts, mises à jour, bibliothèques supplémentaires ne demande aucun travail, juste un téléchargement…
C’est encore en début de développement et il y a beaucoup de boulot à faire pour que ce soit vraiment fonctionnel. Vu l’enjeu pour Microsoft, on ne doute pas qu’ils mettent de gros moyens dans ce projet pour y arriver.
[mise à jour pour corriger une hénorme coquille ! mais il y en a sûrement d’autres…]