Le sous-système Windows pour Linux est un utilitaire développé par Microsoft pour permettre aux développeurs et aux amateurs de Linux d'exécuter leur environnement Linux préféré nativement sur Windows 10 sans les frais généraux de l'exécution d'une machine virtuelle. La façon dont cela fonctionne est similaire à la façon dont le vin fonctionne sur Linux. WSL permet aux binaires Linux d'exécuter sur Windows à l'aide d'un calque de compatibilité qui traduit les appels système Linux en appels système Windows.
Architecture
Sans doute, WSL fonctionne mieux sur Windows, que le vin sur Linux et la raison qui le derrière est parce que Linux est particulier en termes d'architecture. Alors que la plupart des systèmes d'exploitation sont constitués d'un noyau et d'une suite de bibliothèques et de fonctionnalités construites autour de ce noyau, Linux n'est qu'un noyau. La plupart des distros GNU / Linux prennent ce noyau et construisent une pile de système d'exploitation par-dessus. Selon la façon dont vous avez choisi de construire cette pile, vous obtenez différentes distributions comme Debian, Redhat, etc.
Pour exécuter un environnement Linux sur Windows, vous devrez activer la fonction WSL (nous le couvrirons sous peu), puis aller au Microsoft Store pour obtenir une copie de votre distribution préférée (Ubuntu, Debian, OpenSuse, etc.).
La première étape permet à la couche de traduction syscall et la deuxième étape apporte une pile de logiciels légère pour vous donner un système d'exploitation Linux complet pour exécuter la fonction WSL. Faire le contraire, c'est-à-dire que l'exécution d'applications Windows sur Linux est beaucoup plus difficile car Windows est bien plus que le noyau NT.
Pour cette raison, il n'y a pas de machine virtuelle impliquée dans la mise en œuvre de WSL, ce qui en fait une option attrayante. Vous n'aurez aucune perte de performance car aucune machine virtuelle n'est impliquée, juste une couche de traduction syscall de poids légère native.
Installation et configuration
Sur votre PC Windows 10, recherchez «Tournez les fonctionnalités Windows ON ou désactivez» en cliquant sur la touche Windows et en tapant la même chose dans le menu Démarrer. Une fois le menu des fonctionnalités Windows ouverte, faites défiler en bas où vous trouverez la fonctionnalité «Sous-système Windows pour Linux». Cochez cette case et cliquez sur OK.
Windows prendrait soin de la configuration à partir d'ici et une fois que tout sera fait, vous obligerait à redémarrer votre système pour finaliser les modifications. Après le redémarrage, vous pouvez aller au Microsoft Store et chercher votre distribution préférée là-dedans.
Vous pouvez rechercher dans le magasin votre distribution préférée. Vous trouverez ci-dessous une capture d'écran de certaines des distributions les plus utilisées. Vous pouvez voir deux variantes d'OpenSuse, une application Debian et Kali Linux.
Bien sûr, la distribution la plus populaire est toujours Ubuntu avec les deux 16 ans.04 et 18.04 LTS disponibles dans le magasin.
Maintenant, il vous suffit de choisir la distribution que vous souhaitez et d'installer l'application correspondante. Nous installerons Ubuntu 18.04 LTS pour notre environnement WSL. Il mesure environ 215 Mo, beaucoup plus petit qu'une installation entière d'Ubuntu.
Une fois que l'application est installée, vous pouvez le lancer directement à partir de l'application Microsoft Store ou en la recherchant dans votre menu de démarrage. Après avoir été lancé pour la première fois, il faudra du temps pour mettre les choses pour vous.
Cela peut prendre jusqu'à 5 minutes, mais une fois cela fait, vous serez invité à entrer votre nouveau nom d'utilisateur et mot de passe Unix et vous êtes prêt à partir!
Le terminal lancé vous offrira presque toutes les fonctionnalités d'un système Ubuntu, à l'exception de l'interface graphique. Étant donné que la plupart des capacités UNIX / Linux viennent pour la puissance du terminal, cela peut vous faire un long chemin.
Par exemple, nous pouvons commencer à utiliser cet environnement en mettant à jour tous les packages installés dedans.
$ sudo apt Update && sudo apt upgrade -y
Des choses que vous pouvez et ne pouvez pas faire dans l'environnement WSL
Maintenant, la question qui se pose dans l'esprit de tout le monde est - quelle est la prise?
Considérons le cas opposé. Avec des technologies comme le vin, nous savons que tout ce qui peut être fait sous Windows ne peut être fait sur Linux. Les bibliothèques système de bas niveau comme DirectX ne seront pas disponibles sur Linux et de nombreuses applications sur Windows reposent sur ces bibliothèques.
Les systèmes d'exploitation comme Windows 10, FreeBSD ou Illumos sont des systèmes d'exploitation à part entière, pas seulement le noyau. Avec Windows car la plupart des bibliothèques sont propriétaires et cela rend la question plus difficile. Cela rend le travail d'un projet comme le vin, beaucoup plus difficile.
En essayant d'imiter Linux sur Windows, l'inverse est vrai. L'ensemble serré de Linux d'appels (ou de systèmes) de Linux est tout ce dont vous avez besoin pour traduire par Windows pour tout exécuter. Si nous essayons de demander à l'ubuntu sur WSL quel noyau il fonctionne, il vous donnera un numéro de version du noyau Linux, avec Microsoft mentionné aux côtés du numéro de version pour indiquer qu'il ne s'agit pas de la branche de tête du projet de noyau Linux.
$ uname -a
Si nous creusons plus profondément, nous constatons que si les fonctionnalités de haut niveau comme la disposition du système de fichiers et les configurations de réseau sont affichées, les activités de niveau inférieur comme la disposition du stockage de blocs ne fonctionneront pas.
Par exemple, les commandes suivantes fonctionneraient comme prévu:
$ df -h
$ ifconfig
Les deux commandes vous indiquent des informations sur votre système natif qui exécute réellement Windows. Ce n'est pas comme l'exécution d'une machine virtuelle où il existe différentes interfaces réseau et différents systèmes de fichiers.
Cependant, des commandes comme lsblk ne fonctionnera pas, car le stockage de blocs de niveau inférieur n'est pas ce que Linux s'attend. De même, l'installation d'OpenZFS est futile car OpenZFS installe quelques modules de noyau chargé et nous n'avons pas de noyau Linux juste une illusion de celui-ci.
Il en va de même si vous essayez d'exécuter Docker. Lors de l'installation de Docker, Ubuntu ne se plaindra pas, cependant, le service Docker ne démarre pas, car il dépend de SystemD qui est absent dans ce sous-système.
Vous pouvez cependant gérer une pléthore de services et des utilitaires de bash pour vous faciliter la vie. Si vous gérez des serveurs Linux pour gagner votre vie, vous n'avez pas besoin d'avoir également Linux sur votre bureau. Vous pouvez exécuter des clients SSH, un client Docker, Bash, des services publics comme Grep et AWK, ainsi que votre langage de programmation préféré de Python à Rust dans cet environnement sans polluer votre système Windows.
Vous pouvez également exécuter votre automatisation CD / CI en utilisant Ansible, Puppet ou toute autre technologie que vous préférez. C'est-à-dire que tout ce qu'un DevOP, un développeur Web ou d'application ou un testeur auraient besoin d'un système Linux peuvent être obtenus avec WSL, à l'exception des personnes travaillant avec le logiciel système et / ou le développement du noyau.
Obtenez vos propres pensées ou expérience avec le sous-système Windows sur Linux? Ou peut-être que vous avez encore des questions auxquelles vous avez besoin de réponses. Contactez-nous avec vos requêtes et nous couvrirons ce sujet pour vous.