La différence principale entre WSL2 et sa version précédente concerne l’architecture du logiciel. Tandis que WSL1 met en place une couche de compatibilité pour traduire l’exécution du code entre Windows et Linux, WSL2 s’appuie sur la virtualisation d’un système d’exploitation Linux. La machine virtuelle qui en résulte fonctionne sur l’hyperviseur natif de Windows, Hyper-V, un outil particulièrement performant.
Tandis que l’interface de Linux mise en place par WSL1 avait un panel de fonctionnalités limité, WSL2 propose un noyauLinux complet. Il s’agit d’un noyau spécialement optimisé pour WSL2 en termes de taille et de performance, basé sur le code original stable de « kernel.org ». En pratique, cette installation se traduit par une accélération de l’exécution du code, de deux à vingt fois plus rapide. De plus, WSL2 nécessite moins de mémoire vive que sa version précédente. Particulièrement confortable pour l’utilisateur, la maintenance du noyau est assurée dans le cadre des mises à jour régulières de Windows.
Comme WSL1 utilise une couche de traduction pour transmettre les appels système entre Linux et Windows, certains logiciels spécialisés de Linux sont exclus du processus. À l’inverse, la virtualisation du noyau de WSL2 assure la compatibilité complète des appels système. En pratique, cela signifie que l’on peut même travailler avec des logiciels complexes, comme Docker, dans le cadre de WSL2. Par ailleurs, à partir de l’environnement Linux, on peut accéder au processeur graphique, ce qui est particulièrement avantageux, notamment pour les applications avec de grands sets de données, comme l’apprentissage automatique et la science des données.
Même si l’utilisation de WSL2 est recommandée sur les systèmes modernes, les deux versions peuvent fonctionner en parallèle. Il faudra déterminer la version de WSL la plus adaptée en fonction de la distribution Linux que l’on souhaite piloter.