Nous sommes le 6 juin 2019 et Microsoft dévoile aujourd’hui la toute nouvelle architecture du sous-système Windows pour Linux: WSL 2! Les modifications apportées à cette nouvelle architecture permettront: une augmentation spectaculaire des performances du système de fichiers et une compatibilité totale des appels système, ce qui signifie que vous pouvez exécuter davantage d'applications Linux dans WSL 2 telles que Docker.
Les principales demandes de la communauté WSL ont été d’augmenter les performances du système de fichiers et d’intégrer davantage d’applications dans WSL (c.-à-d.: Améliorer la compatibilité des appels système). Microsoft a entendu nos commentaires et est heureux d'annoncer que WSL 2 va résoudre ces problèmes.
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 modifie l’interaction de ces fichiers binaires Linux avec Windows et le matériel de votre ordinateur, tout en offrant la même expérience utilisateur que dans WSL 1(la version actuelle largement disponible). Les distributions Linux individuelles peuvent être exécutées en tant que distribution WSL 1 ou en tant que distribution WSL 2, peuvent être mises à niveau ou rétrogradées à tout moment. Vous pouvez également exécuter des distributions WSL 1 et WSL 2 côte à côte. WSL 2 utilise une architecture entièrement nouvelle qui utilise un véritable noyau Linux.
Oui, vous venez de lire cette rubrique correctement! Microsoft va livrer un véritable noyau Linux avec Windows qui permettra une compatibilité totale des appels système. Ce n’est pas la première fois que Microsoft publie un noyau Linux, en 2018 il l'a fait lors de l'annonce Azure Sphere. Cependant, ce sera la première fois qu'un noyau Linux est livré avec Windows, ce qui montre à quel point Microsoft aime Linux! Nous allons construire le noyau en interne à partir de la dernière branche stable, basée sur la source disponible sur kernel.org. Dans les versions initiales, c'est la version 4.19 du noyau qui sera fournie.
Ce noyau a été spécialement optimisé pour WSL 2. Il a été optimisé pour sa taille et ses performances afin de donner une expérience Linux étonnante sous Windows. Ce noyau Linux dera livré par le biais de mises à jour Windows, ce qui signifie que vous obtiendrez les derniers correctifs de sécurité et améliorations du noyau sans avoir à le gérer vous-même !
Enfin, ce noyau Linux sera bien entendu entièrement ouvert! Lorsque WSL 2 sera publié, la configuration complète sera disponible en ligne sur Github afin que vous puissiez voir comment cela fonctionne et le construire vous-même. Si vous souhaitez en savoir plus sur ce noyau, vous pouvez consulter ce blog rédigé par l’équipe qui l’a construit.
WSL 2 utilise la technologie de virtualisation la plus récente et la plus performante pour exécuter son noyau Linux au sein d’une machine virtuelle utilitaire légère. Cependant, WSL 2 ne sera PAS une expérience de machine virtuelle traditionnelle. Lorsque vous pensez à une machine virtuelle, vous pensez probablement à quelque chose de lent à démarrer, qui existe dans un environnement très isolé, qui consomme beaucoup de ressources informatiques et qui nécessite votre temps pour le gérer. WSL 2 ne possède pas ces attributs. Il restera néanmoins doté des avantages remarquables de WSL 1: niveaux d'intégration élevés entre Windows et Linux, temps de démarrage extrêmement rapides, faible encombrement des ressources et, au mieux, ne nécessitera aucune configuration ou gestion de machine virtuelle.
Les opérations gourmandes en fichiers telles que git clone, npm install, apt update, apt upgrade, etc. seront nettement plus rapides. L’augmentation réelle de la vitesse dépend de l’application que vous utilisez et de la manière dont elle interagit avec le système de fichiers. Les tests initiaux indiquent que WSL 2 est environ 20 fois plus rapide que lors de la décompression d’une archive compressée, et environ 2 à 5 fois plus rapide lorsque vous utilisez git clone, npm install et cmake sur différents projets.
Les fichiers binaires Linux utilisent les appels système pour exécuter de nombreuses fonctions telles que l’accès aux fichiers, la demande de mémoire, la création de processus, etc. Dans WSL 1, Microsoft a créé une couche de traduction qui interprète nombre de ces appels système et leur permet de fonctionner sur le noyau Windows NT. Toutefois, il est difficile d’implémenter tous ces appels système, ce qui empêche certaines applications de fonctionner dans WSL 1. Maintenant que WSL 2 inclut son propre noyau Linux, il offre une compatibilité totale avec les appels système. Ceci introduit un tout nouvel ensemble d'applications que vous pouvez exécuter dans WSL. Quelques exemples très intéressant sont la version Linux de Docker, ainsi que FUSE!
L'utilisation de WSL 2 signifie que vous pouvez également obtenir les améliorations les plus récentes du noyau Linux beaucoup plus rapidement que dans WSL 1, car vous pourrez simplement mettre à jour le noyau WSL 2 plutôt que de devoir réimplémenter les modifications vous-mêmes.
WSL 2 sera une plate-forme beaucoup plus puissante sur laquelle vous pourrez exécuter vos applications Linux et vous permettra d’en faire encore plus avec un environnement Linux sous Windows.
Les versions initiales de WSL 2 seront disponibles via le programme Windows Insiders d'ici la fin du mois de juin 2019.