Compatibilité Windows

Noyau Linux sous Windows 10

Noyau Linux sous Windows 10
Comment fonctionne le nouveau sous-système Windows pour Linux (v2)?

Microsoft a récemment annoncé la livraison prochaine d'un noyau Linux intégré directement à Windows 10. Cela permettra aux développeurs de tirer parti de la plate-forme Windows 10 lors du développement d'applications pour Linux. En fait, il s'agit de la prochaine étape dans l'évolution du sous-système Windows pour Linux (WSL). Passons en revue la version 1 de WSL avant d'entrer dans le vif du sujet de l'intégration du noyau Linux et de ce que cela signifie.

Si vous voulez commencer avec WSL (v1) voici un guide pour cela.

1.  WSL version1

Le sous-système Windows pour Linux devrait vraiment être appelé un sous-système Linux pour Windows. Il offre un pilote (un sous-système) pour le système d'exploitation Windows, qui traduit les appels système Linux en appels système Windows 10 natifs que le noyau NT comprend.

Cela crée une illusion quelque peu crédible pour les binaires Linux qu'ils fonctionnent en fait sur un noyau Linux! Cela fonctionne assez bien pour que non seulement vous puissiez exécuter de simples binaires 64 bits compilés pour Linux, mais vous pouvez également exécuter un Userland entier (un.k.une distribution Linux comme Debian ou Ubuntu) en plus de WSL v1. Ainsi, lorsque vous installez Ubuntu à partir du magasin Microsoft, il récupère simplement les fichiers binaires de l'espace utilisateur Ubuntu fournis par Canonical pour l'environnement WSL v1 de Microsoft.

Cependant, WSL v1 est encore loin d'être parfait. Certaines sémantiques auxquelles un système Linux s'attendrait sont totalement inacceptables sous Windows. Par exemple, vous ne pouvez pas modifier le nom de fichier d'un fichier ouvert sous Windows, mais vous pouvez le faire sous Linux.

D'autres exemples évidents incluent les mauvaises performances du système de fichiers de WSL v1 et son incapacité à exécuter Docker.

2.  WSL v2 le noyau Linux

Cette nouvelle version de WSL résout tous ces problèmes en incluant le noyau Linux s'exécutant dans l'hyperviseur Hyper-V. Tout au long de leur annonce et de leurs démos, Craig Loewen et son collègue de Microsoft ont souligné qu'à l'avenir, Microsoft va investir énormément dans la technologie de virtualisation.

L'utilisation d'un noyau Linux résout tous les problèmes sémantiques qui ne peuvent pas être résolus en utilisant simplement une couche de traduction d'appels système. Ce noyau Linux va être très léger et sera maintenu par Microsoft avec toutes les modifications apportées au noyau Linux en open source. Dans leur démo, ils ont montré comment vous pouvez simplement migrer les applications WSL v1 existantes pour qu'elles s'exécutent sans modification dans un environnement WSL v2. Les performances du système de fichiers se sont améliorées de 3 à 4 fois et l'ensemble du système est beaucoup plus réactif.

3.  Comment ça marche?

Donc, fondamentalement, nous avons une machine virtuelle Linux avec beaucoup d'applications utilisateur, e.g, OpenSUSE ou Debian ou l'espace utilisateur Ubuntu. Vous obtenez plus d'une distribution sur votre machine Windows, avec une seule machine virtuelle Linux, donc c'est bien. Mais cela implique également qu'à chaque fois que vous ouvrez votre terminal WSL Ubuntu, vous démarrez une machine virtuelle complète! ça va prendre du temps, hein?

En fait non. Le noyau Linux est en fait suffisamment petit et léger pour que Microsoft ait pu obtenir des temps de démarrage insensés (~ 1 seconde). Ils y sont parvenus en supprimant tout le code du chargeur de démarrage et puisqu'il s'agit d'une machine virtuelle, ils chargent directement le noyau Linux dans son espace d'adressage dans la mémoire et configurent quelques états de la machine virtuelle que le noyau attend. C'est le même mécanisme qui alimente une autre nouvelle fonctionnalité de Windows 10 qui est Windows Sandbox.

Il a une très faible empreinte mémoire, il se charge en une seconde et le format natif du système de fichiers ext4 lui permet d'offrir une expérience utilisateur très fluide. La VM ne s'exécute que lorsque vous en avez besoin.

De plus, il n'est pas complètement isolé comme une VM traditionnelle. Vous pouvez très facilement interagir avec le reste du système Windows, y compris les fichiers de vos lecteurs Windows à l'aide de WSL v2. Ce n'est pas une VM isolée mais une partie intégrée de Windows 10. Comment y parvient-il?

4.  Vive le Plan 9

Avec WSL v1, accéder aux fichiers et répertoires sur vos invités Windows était trivial. Votre espace utilisateur Linux n'est qu'une application sur Windows, il peut donc lire et écrire des fichiers appartenant à l'origine au système d'exploitation natif assez facilement.

Avec WSL v2, vous avez une VM en cours d'exécution avec son disque dur virtuel (formaté avec ext4, bien sûr) et si nous voulons une expérience similaire à celle de WSL v1, nous avons besoin de mécanismes supplémentaires. Entrez dans le plan 9.

Plan 9, également écrit comme, 9P est un système d'exploitation développé à l'origine chez Bell Labs. Bien qu'il soit peu probable que vous le trouviez un jour en cours de production, il perdure car divers autres systèmes d'exploitation adoptent des idées intéressantes qui y sont incubées, notamment le protocole 9P pour un serveur de fichiers.

5.  Systèmes de fichiers

WSL v2 aura un serveur de protocole 9P exécuté sur votre hôte Windows 10 et un client 9P exécuté dans vos applications WSL. Cela vous permet d'accéder nativement aux fichiers Windows 10 dans votre environnement WSL. Le lecteur C: sera monté sur /mnt/c, tout comme WSL v1, et chaque fichier à l'intérieur de l'hôte Windows 10 peut être atteint par l'environnement WSL.

L'inverse sera aussi vrai. Il y aura un serveur de protocole 9P en cours d'exécution dans votre environnement Linux avec son client correspondant sur l'hôte Windows 10. Cela permettra aux utilisateurs d'accéder à leur système de fichiers Linux (ext4) à partir de l'environnement Windows 10. Vous permettant de modifier votre code source ou vos fichiers de configuration à l'aide de votre IDE préféré installé sur Windows, répertoriant tous les répertoires à l'aide de l'explorateur de fichiers Windows 10, et bien plus encore. Essentiellement, vous exécuterez vos distributions Linux préférées avec l'interface utilisateur de Windows 10.

6.  Docker

Dans son annonce, Microsoft a également laissé entendre que ce nouvel environnement sera également utilisé par Docker pour livrer leurs futures applications Docker pour Windows. Puisqu'il y a un noyau Linux, exécuter Docker dessus, ça va être assez facile. Dans la démo, ils ont exécuté Docker sur Ubuntu exécutant WSL v2 et cela a fonctionné comme s'il s'exécutait sur une installation native d'Ubuntu.

Pour donner un exemple très superficiel, si vous avez travaillé avec Dockerfiles sur un système Windows, vous devez avoir remarqué les problèmes de sécurité causés par le manque d'autorisations de fichiers comme Unix. Ce ne sera plus un problème. Docker sur Windows utilise déjà une machine virtuelle personnalisée pour fournir des conteneurs Linux, vraisemblablement, il utilisera désormais WSL v2 pour utiliser le noyau Linux fourni par Microsoft.

Conclusion

Dans l'ensemble, je suis très impressionné par ce que fait Microsoft pour offrir un refuge aux développeurs Linux qui souhaitent également utiliser Windows. Espérons qu'à long terme, cela encouragera beaucoup de pollinisation croisée entre les deux écosystèmes différents.

Si vous utilisez Windows 10 Home, Pro ou Enterprise Edition, vous pouvez avoir un avant-goût de WSL v2 en optant pour les versions Preview de Windows 10. Voici un guide sur la façon de le faire.

Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...
Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...
Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...