La société Microsoft a présenté la version de l'outil WSL 3.0 (Windows Subsystem for Linux), permettant d'exécuter des applications Linux sur Windows. Cette nouvelle version se distingue par la possibilité d'exécuter des conteneurs Linux sous Windows et le passage à l'utilisation du noyau Linux 6.18. Le code des utilitaires en ligne de commande de WSL, des processus d'arriÚre-plan pour les environnements Linux, des services pour exécuter des conteneurs et des machines virtuelles, ainsi que de la pile graphique wslg est ouvert sous la licence MIT. Les modifications pour le noyau Linux sont fournies sous la licence GPLv2.
WSL fournit une machine virtuelle avec un noyau Linux complet (basĂ© sur la version 6.18), dans laquelle des distributions Linux peuvent ĂȘtre exĂ©cutĂ©es. Le noyau inclut des modifications spĂ©cifiques Ă WSL, telles que des optimisations pour rĂ©duire le temps de dĂ©marrage et la consommation de mĂ©moire, la possibilitĂ© pour Windows de rĂ©cupĂ©rer la mĂ©moire libĂ©rĂ©e par les processus Linux, et des rĂ©glages pour exclure les pilotes et sous-systĂšmes inutiles. Le systĂšme est installĂ© dans une image disque distincte (VHD) avec un systĂšme de fichiers ext4 et un adaptateur rĂ©seau virtuel.
La nouvelle version inclut un outil pour créer, déployer et exécuter des conteneurs Linux sur Windows, comprenant une interface en ligne de commande wslc (WSL Containers) et une API associée, permettant d'exécuter des conteneurs Linux depuis des programmes Windows. Les principales fonctionnalités de wslc :
- OpĂ©rations pour gĂ©rer le cycle de vie des conteneurs, telles que la crĂ©ation, le dĂ©marrage, l'arrĂȘt, l'exportation, le nettoyage, l'inspection, la vĂ©rification de l'Ă©tat, la transmission d'Ă©vĂ©nements d'activitĂ© des conteneurs, et la copie de fichiers vers et depuis le conteneur.
- Limitation de la consommation de CPU et de mémoire pour chaque conteneur.
- Création, chargement, envoi, importation, sauvegarde et vérification des images systÚme. Commandes pour afficher les listes d'images disponibles. Opérations en lot sur plusieurs images. Possibilité d'empaqueter plusieurs images dans une seule archive tar.
- Création et gestion de réseaux virtuels. Rattachement des conteneurs à plusieurs réseaux. Création de types de réseaux personnalisés. Transfert de ports réseau.
- Création, affichage et suppression de partitions. Gestion des disques virtuels (VHD).
- AccÚs au GPU depuis les conteneurs et fourniture de bibliothÚques permettant aux utilisateurs non privilégiés de travailler avec le GPU.
- Création de sessions à la demande, attribution de noms aux sessions, emplacement de stockage configurable.
- SDK avec API pour automatiser le travail avec des conteneurs Ă partir de programmes en C++ et C#/WinRT.
- Commande « wslc logs » pour visualiser et extraire des données des journaux. Affichage des statistiques de fonctionnement du conteneur. Surlignage des sorties dans l'utilitaire « wslc ».
- Intégration avec MSBuild et CMake.
- Prise en charge de la gestion par le biais de stratégies de groupe ADMX.
- Prise en charge de l'extension VS Code dev container pour exécuter et construire du code en développement dans un conteneur.
- Possibilité d'utiliser wslc comme runtime pour exécuter des conteneurs dans l'outil Aspire.
- Extension vscode-container-client pour gérer les conteneurs depuis l'éditeur de code VS Code.
- Gestion des conteneurs wslc via l'interface texte Lazywslc ou l'application de bureau WinUI 3.
- Wrapper pour exécuter des conteneurs Linux à partir des distributions Linux exécutées dans WSL.

Les conteneurs utilisent par défaut le systÚme de fichiers « virtiofs », qui montre un doublement de la vitesse d'accÚs aux fichiers Windows, et le mode réseau « consomme », assurant une meilleure compatibilité avec différentes configurations réseau (VPN, proxy, etc.). En mode «consomme», le trafic Linux est redirigé via Windows, ce qui permet aux applications Linux de tirer parti de toutes les capacités du réseau Windows, y compris les politiques de sécurité et les outils d'intégration avec les systÚmes d'entreprise.
L'exécution des conteneurs est assurée par le service Windows privilégié wslservice.exe, qui lance machines virtuelles et les utilise pour exécuter Linux. Contrairement à WSL, le service wslservice.exe crée pour les conteneurs un processus enfant wslcsession.exe, exécuté avec les droits de l'utilisateur actuel et prenant en charge des opérations telles que la création de conteneurs, le montage de répertoires et le passage de ports réseau. Différentes sessions sont strictement isolées les unes des autres et fonctionnent dans des processus séparés. à chaque session est lié un stockage VHD distinct, situé dans le répertoire %AppData%\Local\wslc\sessions. Il est possible de monter des chemins Windows dans le conteneur Linux pour partager des fichiers.

Source : opennet.ru
