Ainsi, il n'était plus question d'assurer une conversion et une gestion partielle, mais bien d'embarquer tout le nécessaire pour retrouver ce qui fait un système Linux complet, virtualisé sous Windows.
De quoi fondamentalement changer l'expérience WSL, tout en gardant ce qui fait sa force : un lancement très rapide, sans outil spécifique ou configuration d'une machine virtuelle n'ayant accès qu'à une portion de la puissance de la machine hôte. Mais WSL 2 apporte surtout de nouvelles possibilités, documentées au fil des mois (comme la gestion mémoire).
Là encore le rapprochement avec Canonical a été essentiel, les deux entreprises communiquant main dans la main sur ce que permet WSL 2, à longueur de billets de blogs et autres vidéos :
Une liste de lecture complète de Canonical et Microsoft évoquant WSL 2
Il en est de même pour Docker qui propose ainsi un accès de choix à ses outils aux développeurs sous Windows, qui peuvent désormais très facilement les exploiter, les interfacer avec Visual Studio Code, etc.
WSL 1 et 2 ont pour le moment vocation à coexister, l'utilisation du premier étant parfois plus pertinente. Pour Microsoft, c'est notamment le cas « 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 ». De manière générale, le système de fichiers de WSL 1 est ainsi jugé plus performant pour le moment « si vous utilisez des applications Windows pour accéder à des fichiers Linux ».
Mais le système de fichiers de WSL 2 offre de meilleures performances lorsque vous utilisez des fichiers Linux depuis des applications Linux. La conversion des permissions de l'un à l'autre et ses paramètres sont détaillés ici.
Contrairement à ce qui est indiqué par Microsoft, les versions récentes de VMWare et VirtualBox peuvent cohabiter avec Hyper-V/WSL
Faire de Windows 10 LA distribution Linux de bureau pour les développeurs
Microsoft a profité de cette période pour travailler en parallèle sur son nouveau Terminal, lui aussi entièrement repensé et profitant de ce qui fait le succès de nombreuses applications du genre : gestion plus étendue des caractères, accélération graphique, possibilité d'ouvrir plusieurs onglets et panneaux, de personnaliser l'interface, etc.
Prochaine étape : le gestionnaire de paquets, avec WinGet (qui demande encore du travail). L'éditeur voudrait-il ainsi faire de Windows 10 la première distribution Linux de bureau ? D'une certaine manière. Mais il veut surtout que les développeurs trouvent dans son OS le meilleur des deux mondes, pour les inciter à y rester.
Un travail de longue haleine, trouvant sa première implémentation publique avec Windows 10 Mai 2020, qui perdurera avec le support des GPU pour le calcul, des interfaces graphiques, etc. Notez que Visual Studio Code a spécialement été adapté pour profiter du sous-système Linux. Une extension spécifique est ainsi proposée aux utilisateurs (en préversion) : Remote - WSL. Sa documentation détaillée est disponible par ici.
Installer et configurer WSL 2
L'activation du sous-système Linux n'a jamais été un processus parfaitement simple et fluide. Ce n'est pas tellement un problème pour un outil s'adressant principalement aux développeurs, mais Microsoft a déjà promis que cela changerait dans une prochaine version de Windows 10, une unique commande devant suffire. Tant mieux.
D'ici là, il faut encore un peu de travail manuel. La v2 n'a d'ailleurs rien arrangé puisqu'elle nécessite que la virtualisation soit activée sur le système. Cela peut d'ailleurs poser quelques problèmes, notamment aux utilisateurs déjà dans un environnement virtualisé (comme un PC Shadow par exemple). Mais aussi ceux qui utilisent l'outil de gestion Ryzen Master d'AMD qui refuse d'être lancé sur une machine où la virtualisation est active, allez savoir pourquoi.
Il faut tout d'abord activer le sous-système Linux et la plateforme de machine virtuelle dans la liste des fonctionnalités Windows (OptionalFeatures.exe
). Vous pouvez également passer par ces commandes PowerShell (Administrateur) :
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Redémarrez ensuite votre machine. Puisque WSL v1 et v2 coexistent, une distribution peut être installée dans une version ou l'autre, être convertie de l'une à l'autre, etc. Par défaut, v1 est utilisée. Pour que ce soit la v2, il faut que le noyau Linux soit installé. Ce n'est pas encore automatique, il faut donc le télécharger :
Une fois que ce sera fait, validez cette commande :
wsl --set-default-version 2
Vous pouvez ensuite vous rendre sur le Microsoft Store ou en suivant la procédure manuelle pour télécharger et installer la distribution de votre choix comme Alpine, Debian, Kali Linux, OpenSUSE, Ubuntu, etc.
Voici une liste de quelques commandes utiles :
wsl // lance la distribution par défaut dans WSLwsl -l // affiche la liste des distributions installées--all // même celles en cours de (dé)installation--running // seulement celles en cours-- quiet // seulement les noms -- verbose // tous les détailswsl -s distribution // définit la distribution à utiliser/lancer par défautwsl --set-version distribution version // convertit une distribution à WSL (1) ou WSL 2 (2)wsl --shutdown // arrête toutes les distributions et la VM WSL 2wsl -t distribution // arrête une distribution en particulier
Vous pouvez également demander à une distribution d'exécuter une commande précise :
wsl -e commande-d distribution // vise une distribution en particulier-u utilisateur // vise un utilisateur en particulier
Les distributions peuvent être exportées et importées via une archive au format TAR, pour WSL v1 ou v2 :
wsl --export distribution fichierwsl --import nom_de_distribution dossier_de_destination fichier --version 1/2
Par défaut, l'espace de stockage passe par un disque dur virtuel (VHD), alloué jusqu'à un maximum de 256 Go. Si vous deviez avoir besoin d'un quota plus élevé, il faudra en passer par une procédure spécifique, détaillée ici. Vous pouvez également limiter l'accès aux ressources : mémoire (80 % par défaut), cœurs CPU, etc. La procédure est détaillée par là.
Accéder aux fichiers et au réseau d'une distribution WSL 2
Les fichiers des distributions Linux sont accessibles depuis votre disque système dans l'explorateur, mais pour éviter tout conflit, le plus efficace est d'utiliser l'interface mise en place par Microsoft. Pour cela, deux solutions s'offrent à vous. La première permet d'ouvrir l'explorateur de fichiers dans le répertoire courant depuis le bash WSL :
explorer.exe .
Dans ce dernier, vous pouvez également vous rendre à l'emplacement réseau \\wsl$\
qui affichera l'ensemble des distributions Linux du système accessibles via WSL et actuellement actives. Pendant la bêta de Windows 10 Mai 2020, l'ajout d'une section Linux à l'Explorateur de fichiers avait été évoqué, mais elle n'est pas encore présente.
Si Visual Studio Code est installé sur la machine, vous pouvez le lancer en ouvrant le dossier courant d'une simple commande (voir ci-dessus). Pensez également à installer l'extension Remote - WSL.
code .
Du point de vue du réseau, les différentes distributions Linux ne vont pas chercher leurs paramètres (IP, DNS, etc.) au niveau de votre routeur et du serveur DHCP. Elles sont vues comme faisant partie de la machine, avec un périphérique réseau virtuel Hyper-V gérant leur adresse IP (172.x.x.x dans notre cas), l'accès internet, etc.
Ainsi, si vous exposez des services via des conteneurs Docker, un serveur HTTP ou autre, ils seront accessibles depuis l'hôte via l'IP 127.0.0.1 (ou localhost). Mais il est pour le moment impossible d'y accéder simplement depuis une autre machine de votre réseau local, et donc d'exposer ces services à l'extérieur. Plusieurs méthodes (notamment via des redirections) sont néanmoins exploitables en attendant que Microsoft améliore la situation, dans de prochaines versions.
Adieu Touch Bar, je ne te regretter...
Caddy, l'unique serveur web à utili...
Burkina Faso / Gabon (TV / Streamin...
Ce que le futur du travail ne sera...