Microsoft publie le code source du noyau Linux léger utilisé dans WSL2
Sous licence GPL version 2

Le , par Stéphane le calme

93PARTAGES

16  0 
WSL 2 est une nouvelle version de l’architecture qui permet au sous-système Windows pour Linux d’exécuter des fichiers binaires ELF64 Linux sous Windows. Cette nouvelle architecture, qui utilise un véritable noyau Linux, modifie la façon dont ces binaires Linux interagissent avec Windows et le matériel de votre ordinateur, tout en offrant la même expérience utilisateur que dans WSL 1 (la version actuellement disponible en version stable). WSL 2 offre des performances de système de fichiers beaucoup plus rapides et une compatibilité totale des appels système, ce qui vous permet d'exécuter davantage d'applications comme Docker!

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 2 fait partie des versions de développement de Windows 10 20H1, dont la sortie est prévue pour avril 2020.


Un référentiel GitHub du code source du noyau Linux utilisé dans WSL2

L’éditeur explique dans son référentiel 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.

Source : Microsoft

Voir aussi :

Windows 10 se rapproche de 50 % de part de marché, pendant que Chrome continue sa croissance, selon Netmarketshare
Windows : Jusqu'à 20% de réduction sur tous les logiciels ! Avantage Club developpez.com offert par GoodOffer24
Opera lance Opera GX, le premier navigateur au monde dédié aux jeux vidéo, actuellement disponible sous Windows
Apple met l'application iCloud à disposition des utilisateurs de Windows 10 au travers du Microsoft Store

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de abriotde
Membre expérimenté https://www.developpez.com
Le 01/07/2019 à 14:21
Pour moi le principe de match des appel système Linux vers appel système Windows (à la manière de Wine pour l'inverse) est ce qu'il y a de plus performant (même si l'on perd forcément en performances par rapport à du natif). C'est aussi ce qu'il y a de plus léger.
Maintenant Linux tourne dans une VM presque à côté de Windows en utilisant au mieux la virtualisation hardware. (par rapport a une classique virtualisation dans Windows ou Windows est utilisé comme hyperviseur.) Mais dans ce cas on perd la mémoire d'un noyaux, plus une couche de virtualisation, avec toutes les failles que cela inclut... ce qui perd de l'intérêt surtout dans le cas général ou rien ne tourne dessus. Le seul intérêt est une compatibilité total puisqu’alors aucun appel système n'est pas implémenté. Mais en avait on vraiment besoin? Oui si Windows est très en retard sur Linux...
Pour moi la seul vrai raison explicable de faire ainsi ait que Windows voulait en donner plus, plus de Linux sans ce casser la tête, ils se sont dis tant pis, on virtualise on s'en fiche de la perte mémoire que cela occasionne, de toutes façon les PC sont puissant maintenant... Et ce raisonnement surtout pour un OS est très business mais mauvais à long terme... le patch de patch n'est pas viable...
1  0 
Avatar de earhater
Membre confirmé https://www.developpez.com
Le 01/07/2019 à 16:48
@abriote d'autant plus que ça utilise hyper-v disponible uniquement dans les versions pros de windows :/
1  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 01/07/2019 à 19:24
@abriote d'autant plus que ça utilise hyper-v disponible uniquement dans les versions pros de windows :/
Je pense que c'est utilisable avec la version standard également. Et il s'agit je pense d'un conteneur, pas d'une VM, hyper-v peut gérer les deux.
0  0 
Avatar de cd090580
Membre actif https://www.developpez.com
Le 01/07/2019 à 23:00
Ce qui veut die qu'on ne pourra plus utiliser d'autre logiciels de virtualisation( VirtualBox, QEMU,....) et qu'en plus on va devoir consommer quelques gigas de plus pour l'installation de Hyper-V (uniquement sur Win Pro en plus)
0  0 

 
Contacter le responsable de la rubrique Libres & Open Source

Partenaire : Hébergement Web