Comparaison des versions WSL

En savoir plus sur les différentes versions de WSL, notamment pourquoi WSL 2 est maintenant la version par défaut et les scénarios ou exceptions spécifiques qui peuvent justifier de passer de votre distribution Linux installée à l’architecture WSL 1 antérieure.

Comparaison entre WSL 1 et WSL 2

Ce guide compare WSL 1 et WSL 2, y compris les exceptions pour utiliser WSL 1 au lieu de WSL 2. Les principales différences entre WSL 1 et WSL 2 sont l’utilisation d’un noyau Linux réel au sein d’une machine virtuelle managée, la prise en charge de la compatibilité complète des appels système, et les performances sur les systèmes d’exploitation Linux et Windows. WSL 2 est la version par défaut actuelle quand vous installez une distribution Linux et utilise la technologie de virtualisation la plus récente et la meilleure pour exécuter un noyau Linux dans une machine virtuelle utilitaire légère. Le WSL2 exécute des distributions Linux en tant que conteneurs isolés à l'intérieur de la machine virtuelle gérée. Si votre distribution exécute actuellement WSL 1 et que vous souhaitez effectuer une mise à jour vers WSL 2, consultez Mise à jour de WSL 1 vers WSL 2.

Comparaison des fonctionnalités

Fonctionnalité WSL 1 WSL 2
Intégration entre Windows et Linux
Temps de démarrage courts
Faible empreinte des ressources comparé aux machines virtuelles traditionnelles
Exécutions avec les versions actuelles de VMware et VirtualBox
Machine virtuelle managée
Noyau Linux complet
Compatibilité complète des appels système
Performances dans les systèmes de fichiers du système d’exploitation
prise en charge systemd
Compatible avec IPv6

Comme vous pouvez le constater dans le tableau de comparaison ci-dessus, l’architecture de WSL 2 est plus performante que celle de WSL 1 de plusieurs points de vue, à l’exception des performances dans les systèmes de fichiers du système d’exploitation, qui peuvent être améliorées en stockant les fichiers de votre projet sur le même système d’exploitation que les outils que vous exécutez pour travailler sur le projet.

WSL 2 est uniquement disponible dans Windows 11 ou Windows 10, version 1903, build 18362 ou ultérieure. Vérifiez votre version de Windows en sélectionnant la touche Windows + R, tapez winver et sélectionnez OK. (Ou entrez la commande ver dans l’invite de commandes Windows). Vous devrez peut-être effectuer une mise à jour vers la dernière version de Windows. Pour les builds inférieures à 14 393, WSL n’est pas pris en charge du tout.

Pour plus d’informations sur les dernières mises à jour WSL 2, consultez le blog de ligne de commande Windows, y compris la prise en charge de Systemd est maintenant disponible dans WSL et Mise à jour WSL septembre 2023 pour plus d’informations sur la prise en charge IPv6.

Remarque

WSL 2 fonctionnera avec VMware 15.5.5+ et bien que VirtualBox 6+ indique qu’il existe une prise en charge WSL, il existe encore des défis importants qui empêchent sa prise en charge. Apprenez-en davantage dans nos Questions fréquentes (FAQ).

Nouveautés de WSL 2

WSL 2 est une révision majeure de l’architecture sous-jacente qui utilise la technologie de virtualisation et un noyau Linux pour activer de nouvelles fonctionnalités. Les principaux objectifs de cette mise à jour consistent à augmenter les performances du système de fichiers et à ajouter la compatibilité complète des appels système.

Architecture WSL 2

Une expérience de machine virtuelle traditionnelle peut être lente à démarrer, est isolée, consomme beaucoup de ressources et vous prend du temps pour la gérer. WSL 2 n’a pas ces attributs,

WSL 2 offre les avantages de WSL 1, y compris une intégration transparente entre Windows et Linux, des temps de démarrage courts et un faible encombrement des ressources. De plus, il ne nécessite aucune configuration ni gestion de machine virtuelle. WSL 2 utilise une machine virtuelle. Celle-ci est gérée et exécutée en arrière-plan, ce qui vous permet de jouir de la même expérience utilisateur qu’avec WSL 1.

Noyau Linux complet

Le noyau Linux dans WSL 2 est élaboré par Microsoft à partir de la dernière branche stable, en fonction de la source disponible sur kernel.org. Ce noyau a été spécialement réglé pour WSL 2, afin d’optimiser la taille et les performances pour offrir une expérience Linux exceptionnelle sur Windows. Le noyau sera géré par le biais des mises à jour Windows, ce qui signifie que vous obtiendrez les derniers correctifs de sécurité et les dernières améliorations du noyau sans avoir à gérer cela vous-même.

Le noyau Linux WSL 2 est disponible en open source. Si vous souhaitez en savoir plus, consultez le billet de blog Shipping a Linux Kernel with Windows rédigé par l’équipe qui l’a créé.

Pour plus d’informations, consultez Notes de publication pour le noyau du Sous-système Windows pour Linux.

Amélioration des performances d’E/S de fichier

Les opérations gourmandes en fichiers, comme par exemple git clone, npm install, apt update, apt upgrade, sont nettement plus rapides avec WSL 2.

L’augmentation de la vitesse réelle dépend de l’application que vous exécutez et de la manière dont elle interagit avec le système de fichiers. Les versions initiales de WSL 2 s’exécutent jusqu’à 20 fois plus vite que WSL 1 lors de la décompression d’un tarball compressé, et environ 2 à 5 fois plus vite lors de l’utilisation de git clone, npm install et cmake sur divers projets.

Compatibilité complète des appels système

Les binaires Linux utilisent des appels système pour exécuter des fonctions, telles que l’accès aux fichiers, la demande de mémoire, la création de processus et bien plus encore. Alors que WSL 1 utilisait une couche de traduction créée par l’équipe WSL, WSL 2 inclut son propre noyau Linux avec compatibilité complète des appels système. Les avantages sont les suivants :

  • Un tout nouvel ensemble d’applications que vous pouvez exécuter au sein de WSL, telles que Docker et plus encore.

  • Les mises à jour du noyau Linux sont toutes immédiatement prêtes à l’emploi. (Vous n’avez pas besoin d’attendre que l’équipe WSL implémente les mises à jour et ajoute les modifications).

Exceptions pour l’utilisation de WSL 1 à la place de WSL 2

Nous vous recommandons d’utiliser WSL 2 parce qu’il offre de meilleures performances et une compatibilité à 100 % des appels système. Toutefois, il existe quelques scénarios spécifiques où vous préférerez peut-être utiliser WSL 1. Envisagez d’utiliser WSL 1 dans les cas suivants :

  • Vos fichiers de projet doivent être stockés dans le système de fichiers Windows. WSL 1 offre un accès plus rapide aux fichiers montés à partir de Windows.
    • Si vous souhaitez utiliser votre distribution WSL Linux pour accéder aux fichiers de projet dans le système de fichiers Windows et que ces fichiers ne peuvent pas être stockés dans le système de fichiers Linux, vous obtiendrez de meilleures performances dans les systèmes de fichiers du système d’exploitation en utilisant WSL 1.
  • Un projet qui requiert une compilation croisée avec des outils Windows et Linux sur les mêmes fichiers.
    • Les performances des fichiers sur les systèmes d’exploitation Windows et Linux sont plus rapides dans WSL 1 que WSL 2. Par conséquent, si vous utilisez des applications Windows pour accéder à des fichiers Linux, vous obtiendrez actuellement de meilleures performances en termes de rapidité avec WSL 1.
  • Votre projet doit accéder à un port série ou à un périphérique USB. Toutefois, la prise en charge des appareils USB est désormais disponible pour WSL 2 par le biais du projet USBIPD-WIN. Si vous souhaitez connaître les étapes de configuration, consultez Connecter des appareils USB.
  • WSL 2 ne prend pas en charge l’accès aux ports série. Apprenez-en davantage dans les Questions fréquentes (FAQ) ou les problèmes signalés dans le dépôt du produit WSL sur GitHub sur la prise en charge des ports série.
  • Vous avez des exigences strictes en mémoire
    • L’utilisation de la mémoire de WSL 2 augmente et diminue à mesure que vous l’utilisez. Lorsqu’un processus libère de la mémoire, celle-ci est automatiquement renvoyée à Windows. Toutefois, actuellement, WSL 2 ne libère pas encore les pages mises en cache dans la mémoire pour renvoi à Windows tant que l’instance WSL est fermée. Si vous avez des sessions WSL de longue durée ou accédez à une très grande quantité de fichiers, ce cache peut prendre de la mémoire sur Windows. Nous continuons notre travail afin d’améliorer cette expérience sur le dépôt GitHub WSL, problème 4 166.
  • Pour ceux qui utilisent VirtualBox, veillez à utiliser la dernière version de VirtualBox et de WSL 2. Consultez la FAQ associée.
  • Si vous dépendez d’une distribution Linux pour avoir une adresse IP dans le même réseau que votre machine hôte, il peut être nécessaire de configurer une solution de contournement pour pouvoir exécuter WSL 2. WSL 2 s’exécute en tant que machine virtuelle Hyper-V. C’est un changement par rapport à la carte réseau reliée par un pont utilisée dans WSL 1 : ceci signifie que WSL 2 utilise un service de traduction d’adresses réseau (NAT) pour son réseau virtuel, au lieu de le relier par un pont à la carte d’interface réseau de l’hôte, ce qui se traduit par une adresse IP unique qui va changer au redémarrage. Pour plus d’informations sur le problème et la solution de contournement qui transfère les ports TCP des services WSL 2 au système d’exploitation hôte, consultez WSL GitHub repository issue 4150, NIC Bridge mode (TCP Workaround).

Notes

Envisagez de tester l’extension Remote WSL de VS Code pour pouvoir stocker vos fichiers de projet dans le système de fichiers Linux en utilisant les outils en ligne de commande Linux, mais également VS Code sur Windows pour créer, modifier, déboguer et exécuter votre projet dans un navigateur Internet sans les ralentissements de performances associés à l’utilisation des systèmes de fichiers Linux et Windows. Plus d’informations

WSL dans le Microsoft Store

WSL a enlevé la fonctionnalité de mise à jour de l’image de système d’exploitation Windows pour la mettre dans un package disponible via le Microsoft Store. Cela signifie que les mises à jour et la maintenance sont plus rapides dès qu’elles sont disponibles, au lieu d’attendre une mise à jour de votre système d’exploitation Windows.

À la base, WSL était inclus dans le système d’exploitation Windows en tant que composant facultatif qui devait être activé pour installer une distribution Linux. WSL dans le Windows Store offre la même expérience utilisateur et est le même produit, mais reçoit les mises à jour et la maintenance sous la forme d’un package du Store, plutôt que sous la forme d’une mise à jour entière du système d’exploitation. À compter de Windows version 19044 ou ultérieure, l’exécution de la commande wsl.exe --install installe la mise à jour de maintenance WSL à partir du Microsoft Store. (Consultez le billet de blog annonçant cette mise à jour.) Si vous utilisez déjà WSL, vous pouvez effectuer une mise à jour pour être sûr de recevoir les dernières fonctionnalités et la dernière maintenance de WSL du Store en exécutant wsl.exe --update.