9 points par GN⁺ 2025-12-02 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • L’architecture des sous-systèmes de Windows NT a historiquement reposé sur une couche de conversion des appels API pour exécuter des programmes d’autres systèmes d’exploitation
  • WSL1 s’inscrivait dans cette continuité : en tant que couche de traduction légère, il convertissait les appels Linux en appels du noyau Windows
  • WSL2 a basculé vers une VM Linux complète basée sur Hyper-V pour résoudre les problèmes de performance, et exécute un noyau Linux réel
  • WSL2 propose une intégration plus poussée que les VM classiques grâce à la gestion dynamique de la mémoire, le montage des lecteurs Windows et l’intégration GUI via WSLg
  • Malgré des limites (gestion des fichiers peu pratique, dépendance aux images disque), la souplesse de tirer parti des forces et des faiblesses de WSL1 et WSL2 selon le cas d’usage reste essentielle

Le concept de sous-système dans Windows NT

  • Le sous-système (subsystem) de Windows NT désigne un jeu d’API et une couche de conversion d’appels pour exécuter des programmes d’autres systèmes d’exploitation
    • NT proposait autrefois des sous-systèmes comme OS/2 subsystem (OS2SS.EXE), POSIX subsystem (PSXSS.EXE), etc.
    • CSRSS.EXE est une couche de conversion de l’API Win32, dont certaines fonctions ont été déplacées en mode noyau (WIN32K.SYS)
  • Le sous-système POSIX était une implémentation minimale pour certification gouvernementale, puis a été remplacé par Interix-based Windows Services for Unix

WSL1 : couche Linux basée sur la traduction

  • WSL1 (Windows Subsystem for Linux) est une couche de traduction légère qui convertit les appels système Linux en appels Windows
    • À l’exécution, le processus bash utilise seulement quelques Mo de mémoire et apparaît comme un processus normal dans le Gestionnaire des tâches
    • La racine du système de fichiers existe comme une structure de fichiers individuelle sur NTFS, avec très peu de surcharge de stockage
  • Limites
    • Dégradation des performances I/O : coût de conversion lié aux différences entre les API de fichier Linux et Win32
    • Serveur X externe requis pour exécuter une GUI (par ex. X410)
    • Raw sockets non pris en charge, ce qui empêche l’exécution de traceroute, nmap, tcpdump, etc.

WSL2 : VM Linux basée sur Hyper-V

  • Face aux besoins des utilisateurs, Microsoft a introduit une VM Linux complète fonctionnant sur Hyper-V
    • La racine du système de fichiers est gérée via un fichier VHDX unique
    • La conversion WSL1↔WSL2 est possible avec la commande wsl --set-version "Ubuntu" 2
  • Caractéristiques de performance
    • Le démarrage initial est plus lent, mais il exécute un noyau Linux natif
    • L’utilisation mémoire est dynamique et peut monter jusqu’à la moitié de la mémoire physique maximale
    • Dans le test stress, l’usage mémoire augmente avec la charge puis se réduit automatiquement
    • Lorsque nécessaire, la VM peut être arrêtée avec la commande wsl --shutdown

Intégration et limites de WSL2

  • WSL2 renforce l’intégration avec Windows par rapport à une VM traditionnelle
    • Montage automatique des lecteurs Windows, accès aux lecteurs Linux via le chemin \\wsl$\\, exécution d’apps GUI via WSLg
    • Les applications GUI sont diffusées via le Remote Desktop Protocol, avec un réglage spécifique requis pour le DPI et la mise à l’échelle du texte
  • Problèmes de gestion des fichiers
    • Les données de travail Linux sont stockées dans l’image ext4.vhdx, avec des risques de portabilité et de récupération
    • L’exécution de wsl --unregister Distro supprime immédiatement toutes les données
    • Utiliser les lecteurs Windows (/mnt/c) entraîne des baisses de performance dues à la surcharge NTFS + VM
  • Protocoles de système de fichiers
    • WSL1 utilise drvfs, WSL2 utilise le protocole 9p de Plan9
    • Des cas de bugs résiduels liés à drvfs sont mentionnés pendant les conversions
  • Alternative
    • Il est recommandé de créer une image VHDX séparée et de la monter avec wsl --mount --vhd pour isoler les données de travail
    • La configuration automatique n’est pas possible dans .wslconfig, il faut la piloter via des scripts

Conclusion

  • La conception modulaire de Windows NT et son ABI noyau stable préservent la compatibilité avec d’anciens pilotes
  • WSL1 a l’avantage d’une faible consommation mémoire, tandis que WSL2 apporte une compatibilité et des performances supérieures avec un noyau Linux réel
  • WSL2 est une architecture qui minimise les inconvénients d’une VM tout en renforçant l’intégration avec l’OS hôte
  • Selon la définition classique, il s’apparente à une VM, mais il mérite d’être considéré comme un « sous-système » grâce à son intégration légère

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.