WSL wut ?
WSL Kesako ?
Ah les introductions Wikipédia !
Alors Windows Subsystem for Linux (WSL) ou en français sous-système Windows pour Linux est une couche de compatibilité permettant d’exécuter nativement fichiers ELF (binaires exécutables) Linux sur Windows 10 et Windows Server 2019. Pour être plus clair, WSL1 - dont la version initiale a été ajoutée lors de la mise à jour 1607 de Windows 10 - est une fonctionnalité optionnelle qui fournit aux utilisateurs un environnement léger intégrant une console Linux dans le système d’exploitation de Microsoft.
Et concrètement ça fonctionne comment ton bidule ?
Eh bien, les binaires Linux utilisent des appels système pour effectuer de nombreuses fonctions telles que l’accès aux fichiers, la demande de mémoire, la création de processus, etc. Dans WSL 1, la couche de traduction permet interpréter bon nombre de ces appels système et leur permet de fonctionner sur le noyau Windows NT.
Cette fonctionnalité suit les ambitions de Microsoft d’apporter nativement l’expérience Linux dans Windows. Les systèmes d’exploitation Linux sont très populaires pour leurs performances, leur légèreté et leur stabilité. Avec l’implémentation du WSL, le géant de Redmond tente d’apporter le meilleur des deux mondes au plus grand nombre.
Ok c’est bien mais on s’en sert quand ?
La question serait plutôt quand n’en as-tu besoin ? Mais pour te répondre plus sérieusement voilà les principaux cas d’usage :
- Pour les outils en ligne de commande Linux
- Pour un accès au système de fichiers Windows 10
- Quand tu ne veux pas mobiliser de ressources pour faire tourner une VM en fond
Le WSL permet aux développeurs et aux administrateurs système d’utiliser les principaux outils et services en ligne de commande mais avant tout ; le shell bash. La disponibilité de gestionnaire de package tels que apt
et dpkg
offre aux développeurs une pléthore d’applications GNU accessible ou installable en ligne de commande.
Le système de fichiers et les lecteurs Windows 10 sont accessibles et gérés dans la console WSL elle-même. Les partitions de lecteur sont montées au lancement dans le chemin de /mnt/
. Tu peux donc accéder à l’ensemble de tes fichiers Windows depuis WSL.
Tu disais WSL1 ils en ont sorti une version 2 ?
Oui absolument et la crois moi ils ne se sont pas contentés de refaire la peinture. WSL2 est le digne successeur de WSL1, qui est disponible à partir de la version 2004 de Windows 10. L’architecture WSL2 est intrinsèquement différente de WSL1. Contrairement à WSL1, qui s’exécute comme une couche de traduction, cette nouvelle version dispose, via une machine virtuelle, d’un réel noyau Linux qui peut immédiatement réagir aux appels système. Une telle architecture permet des capacités d’appel Full System.
Le noyau Linux développé par Microsoft utilisé dans l’architecture WSL2 est open source. Avec une refonte importante de son prédécesseur, WSL2 a véritablement changé, atténuant certains des inconvénients de la version originale.
Un peu de technique ! :
Fonctionnalité | WSL1 | WSL2 |
---|---|---|
Intégration entre Windows et Linux | ✅ | ✅ |
Temps de démarrage courts | ✅ | ✅ |
Faible encombrement des ressources | ✅ | ✅ |
Machine virtuelle managée | ❌ | ✅ |
Noyau Linux complet | ❌ | ✅ |
Compatibilité complète des appels système | ❌ | ✅ |
Exécutions avec les versions actuelles de VM Ware et VirtualBox | ✅ | ❌ |
Performances dans les systèmes de fichiers du système d’exploitation | ✅ | ❌ |
Ok c’est toujours pareil avec vous les devops, tout nouveau tout beau, mais ça donne quoi à l’utilisation ?
Pour te faire une idée, je ne saurai trop te recommander de lire le retour d’expérience de Dorian !
Passons en revue ces améliorations un peu plus en détail et voyons en quoi cela améliore ton expérience :
- Un véritable noyau Linux ;
- Une capacité d’appel système complète ;
- Des performances de socket / réseau ;
- Des performances du système de fichiers.
Il s’agit d’une refonte majeure du concept original de WSL, passant de la traduction des appels système Linux à la livraison dans Windows d’un noyau Linux complet. Le fait d’avoir un hyperviseur natif aide l’implémentation d’éliminer tous les inconvénients de WSL1.
Par exemple, la disponibilité d’un véritable noyau Linux permet à l’utilisateur de s’assurer la compatibilité complète des appels système. Ainsi, la plate-forme devient beaucoup plus puissante pour gérer les applications Linux, comme Docker (❤️) par exemple.
Les performances d’E / S de fichiers sont nettement améliorées. Par conséquent, les opérations telles que apt installs
, npm installs
sont plus rapides, cela devrait également être le cas pour tous les services de lecture et d’écriture.
Enfin, une simple ligne de commande permet le changement de version. Parallèlement à cela, les performances de mise en réseau et de socket ont connu des améliorations considérables.
Génial, on l’installe maintenant ?
L’installation et l’utilisation seront les sujets de mon prochain billet. Alors d’ici-là, et comme je te sens enthousiaste, je te propose quelques ressources complémentaires à lire :