WSL 2 inclut donc un véritable noyau Linux qui vous permet d’exécuter davantage de logiciels Linux sous Windows et offrant de meilleures performances que WSL 1.
Cette nouvelle version de WSL 2 utilise les fonctionnalités Hyper-V pour créer une machine virtuelle légère avec un noyau Linux minimal. Il faut s’attendre à une meilleure compatibilité avec les logiciels Linux, y compris la prise en charge de Docker, et « une augmentation spectaculaire des performances du système de fichiers ».
La machine virtuelle se lancera automatiquement au démarrage et utilisera un peu de mémoire en arrière-plan, mais Microsoft promet qu'elle « a une petite empreinte mémoire ». Vous pouvez exécuter la commande wsl --shutdown si vous souhaitez arrêter la machine virtuelle en arrière-plan.
WSL sera livré en avril 2020
WSL 2 fait partie des versions de développement de Windows 10 20H1, dont la sortie est prévue pour avril 2020. L'éditeur a d'ailleurs confirmé qu'il sera de la partie et a indiqué quelques modifications :
« WSL2 sera bientôt officiellement disponible dans le cadre de Windows 10, version 2004! Alors que nous nous préparons pour la disponibilité générale, nous voulons partager un changement supplémentaire : mettre à jour la façon dont le noyau Linux à l'intérieur de WSL2 est installé et entretenu sur votre machine. Nous avons entendu de nombreux commentaires de la communauté selon lesquels l'expérience d'installation pourrait être rationalisée, et nous faisons le premier pas vers cela en améliorant le modèle de maintenance du noyau Linux. Nous avons supprimé le noyau Linux de l'image du système d'exploitation Windows et le livrerons à votre ordinateur via Windows Update, de la même manière que les pilotes tiers (comme les graphiques ou les pilotes du pavé tactile) sont installés et mis à jour sur votre ordinateur aujourd'hui. Cette modification vous donnera plus d'agilité et de flexibilité par rapport aux mises à jour du noyau Linux dans WSL2 ».
Comment vais-je remarquer ce changement ?
Microsoft explique que « Notre objectif final est que ce changement soit transparent, un changement où votre noyau Linux est mis à jour sans que vous ayez besoin d'y penser. Par défaut, cela sera entièrement géré par Windows, tout comme les mises à jour régulières sur votre machine. Dans la version initiale de Windows 10, version 2004, et dans la dernière version de la Windows Insiders Slow Ring Preview, vous devrez temporairement installer manuellement le noyau Linux et recevrez une mise à jour dans quelques mois qui ajoutera des capacités d'installation et de maintenance automatiques. Nous avons apporté cette modification maintenant et aurons un correctif plus tard pour garantir que tous les utilisateurs de la version générale initiale de WSL2 seront desservis via ce modèle dynamique, et personne ne restera dans un état intermédiaire en utilisant le système précédent ».
Installation et mises à jour automatiques
Si vous avez déjà accédé à vos paramètres Windows et cliqué sur « Rechercher les mises à jour », vous avez peut-être vu certains autres éléments mis à jour comme les définitions de logiciels malveillants Windows Defender, ou un nouveau pilote de pavé tactile, etc. Le noyau Linux dans WSL2 sera désormais proposé via cette même méthode, ce qui signifie que vous obtiendrez la dernière version du noyau indépendamment de la consommation d'une mise à jour de votre image système Windows. Vous pouvez vérifier manuellement les nouvelles mises à jour du noyau en cliquant sur le bouton «Rechercher les mises à jour», ou vous pouvez laisser Windows vous tenir à jour comme d'habitude.
Si vous installez WSL pour la première fois, Windows va vérifier les mises à jour et installer le noyau Linux pour vous pendant le processus d'installation de WSL.
Un référentiel GitHub du code source du noyau Linux utilisé dans WSL2
Rappelons que l’éditeur avait déjà expliqué dans le référentiel WSL2 que « le noyau Linux est fourni uniquement selon les termes de la licence publique générale GNU version 2 (GPL-2.0), comme indiqué dans LICENSES / preferred / GPL-2.0, avec une exception syscall explicite décrite dans LICENSES / exceptions / Linux-syscall-note , comme décrit dans le fichier COPYING ».
La licence décrite dans le fichier COPYING s'applique au code source du noyau dans son ensemble, bien que les fichiers source individuels puissent avoir une licence différente qui doit être compatible avec la GPL-2.0. Il s’agit notamment de :
- GPL-1.0 +: Licence publique générale GNU v1.0 ou ultérieure
- GPL-2.0 +: Licence publique générale GNU v2.0 ou ultérieure
- LGPL-2.0 : Licence publique générale de la bibliothèque GNU v2 uniquement
- LGPL-2.0 +: Licence publique générale de la bibliothèque GNU v2 ou ultérieure
- LGPL-2.1: Licence publique générale limitée GNU v2.1 uniquement
- LGPL-2.1 +: Licence publique générale limitée GNU v2.1 ou ultérieure
De plus, des fichiers individuels peuvent être fournis sous une double licence, par exemple. une des variantes compatibles GPL et sous une licence permissive telle que BSD, MIT, etc.
Les fichiers d’en-tête UAPI (User-space API), qui décrivent l’interface des programmes de l’espace utilisateur avec le noyau, constituent un cas particulier. Selon la note contenue dans le fichier COPYING du noyau, l’interface syscall est une frontière claire, qui n’étend les exigences de la GPL à aucun logiciel qui l’utilise pour communiquer avec le noyau. Étant donné que les en-têtes UAPI doivent pouvoir être inclus dans tout fichier source créant un exécutable s'exécutant sur le noyau Linux, l'exception doit être documentée par une expression de licence spéciale.
La manière habituelle d’exprimer la licence d’un fichier source consiste à ajouter le texte passe-partout correspondant dans le commentaire supérieur du fichier. En raison du formatage, des fautes de frappe, etc., ces "passe-partout" sont difficiles à valider pour les outils utilisés dans le contexte du respect des licences.
Une alternative au texte passe-partout est l'utilisation d'identificateurs de licence SPDX (Software Package Data Exchange) dans chaque fichier source. Les identificateurs de licence SPDX sont des analysables par machine et des raccourcis précis pour la licence sous laquelle le contenu du fichier est ajouté. Les identifiants de licence SPDX sont gérés par le groupe de travail SPDX de la Linux Foundation et ont été approuvés par les partenaires du secteur, les fournisseurs d'outils et les équipes juridiques.
Le noyau Linux requiert l'identifiant SPDX précis dans tous les fichiers source. Les identifiants valides utilisés dans le noyau sont décrits dans la section Identifiants de licence et ont été extraits de la liste officielle des licences SPDX à cette adresse, ainsi que des textes de licence.
Nouvelles commandes WSL
Il ne faut pas oublier que WSL2 s’accompagne de nouvelles commandes pour vous aider à contrôler et afficher vos versions et distributions WSL.
wsl --set-version <Distro> <Version>Utilisez cette commande pour convertir une distribution utilisant l’architecture WSL 2 ou l’architecture WSL 1.
: la distribution Linux spécifique (par exemple «Ubuntu»)
: 1 ou 2 (pour WSL 1 ou 2)
wsl --set-default-version <Version>Modifie la version d'installation par défaut (WSL 1 ou 2) pour les nouvelles distributions.
wsl --shutdownArrête immédiatement toutes les distributions en cours et la machine virtuelle à utilitaire léger WSL 2.
« La machine virtuelle qui alimente les distributions WSL 2 est quelque chose que nous souhaitons gérer entièrement pour vous. Nous la mettons donc en place lorsque vous en avez besoin et la fermons lorsque vous en avez fini. Dans certains cas, vous souhaiterez peut-être l’arrêter manuellement. Cette commande vous permet de le faire en mettant fin à toutes les distributions et en arrêtant la machine virtuelle WSL 2 ».
wsl --list --quietNe liste que les noms de distribution.
Cette commande est utile pour les scripts car elle ne sort que les noms des distributions que vous avez installées sans afficher d’autres informations telles que la distribution par défaut, les versions, etc.
wsl --list --verboseAffiche des informations détaillées sur toutes les distributions.
Cette commande répertorie le nom de chaque distribution, l’état de la distribution et la version qu’elle exécute. Elle indique également les distributions par défaut avec un astérisque.
Microsoft a tenu à remercier ses partenaires : « Merci à nos partenaires de distribution WSL: Canonical, Debian, openSUSE, Kali Linux et Pengwin pour avoir ajouté une modification à leur lanceur de distribution pour aider à soutenir cette expérience ! »
Source : Microsoft