Noyau Linux dans Windows Top 10

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

Microsoft a récemment annoncé qu'ils expédieront bientôt un noyau Linux intégré à 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, c'est la prochaine étape du sous-système Evolution of Windows pour Linux (WSL). Prendons la version 1 WSL avant d'entrer dans le grenier à grille de l'intervention du noyau Linux et ce que cela signifie.

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

WSL Version1

Le sous-système Windows pour Linux devrait vraiment être appelé un sous-système Linux pour Windows. Il propose un pilote (un sous-système) pour le système d'exploitation Windows, qui traduit les appels du système Linux dans les appels du 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 courent en fait sur un noyau Linux! Cela fonctionne suffisamment bien pour que non seulement vous exécutez des binaires 64 bits simples compilés pour Linux, mais que vous pouvez exécuter un terres utilisateur entier (un.k.Une distribution Linux comme Debian ou Ubuntu) au-dessus de WSL V1. Ainsi, lorsque vous installez Ubuntu de Microsoft Store, il récupère simplement les binaires Ubuntu Userland que Canonical Ships pour l'environnement WSL V1 du Microsoft.

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

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

WSL V2 le noyau Linux

Cette nouvelle version de WSL résout tous ces problèmes en incluant le noyau Linux fonctionnant 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é au point que, à 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 uniquement 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 de l'open source du noyau Linux fait. Dans leur démo, ils ont montré comment vous pouvez simplement migrer les applications WSL V1 existantes pour s'exécuter 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 se sent beaucoup plus réactif.

Comment ça marche?

Donc, en gros, nous avons une machine virtuelle Linux avec beaucoup d'applications d'utilisateur, E.G, OpenSuse ou Debian ou Ubuntu Userland. Vous obtenez plus d'une distribution sur votre machine Windows, avec une seule machine virtuelle Linux, donc c'est soigné. Mais cela implique également que chaque fois que vous ouvrez votre terminal WSL Ubuntu, vous démarrez une machine virtuelle complète! Ça va prendre un certain temps, juste?

En fait non. Le noyau Linux est en fait assez petit et suffisamment léger pour que Microsoft ait pu obtenir des temps de démarrage insensés avec (~ 1 seconde). Ils l'ont atteint en supprimant tout le code de chargeur de démarrage et comme c'est 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é Windows 10 qu'est Windows Sandbox.

Il a une très petite empreinte mémoire, il se charge dans une seconde et le format de système de fichiers EXT4 natif lui permet de fournir une expérience utilisateur très fluide. La machine virtuelle ne fonctionne que lorsque vous en avez besoin.

De plus, il n'est pas complètement isolé comme une machine virtuelle 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 machine virtuelle isolée mais une partie intégrée de Windows 10. Comment cela réalise-t-il?

Vive le plan 9

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

Avec WSL V2, vous avez une machine virtuelle en cours d'exécution avec son disque dur virtuel (formaté avec EXT4, bien sûr) et si nous voulons une expérience similaire comme celle de WSL V1, nous avons besoin de mécanismes supplémentaires. Entrez le plan 9.

Plan 9, également écrit comme, 9p est un système d'exploitation à l'origine à Bell Labs. S'il est peu probable que vous le trouviez en production, il vit toujours à mesure que divers autres systèmes d'exploitation adoptent des idées intéressantes qui y sont incubées, y compris le protocole 9P pour un serveur de fichiers.

Systèmes de fichiers

WSL V2 aura un serveur de protocole 9P exécutant sur votre hôte Windows 10, et un client 9P exécutant à l'intérieur de vos applications WSL. Cela vous permet d'accéder aux fichiers Windows 10 nativement dans votre environnement WSL. Le lecteur C: sera monté à / 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 également vrai. Il y aura un serveur de protocole 9p exécutant 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 de configuration de fichiers à l'aide de votre IDE préféré installé sur Windows, de répertorier tous les répertoires à l'aide de Windows 10 File Explorer, et bien plus encore. Essentiellement, vous exécuterez vos distros Linux préférés avec l'interface utilisateur Windows 10.

Docker

Dans leur annonce, Microsoft a également laissé entendre que ce nouvel environnement sera également utilisé par Docker pour expédier son futur Docker pour les applications Windows. Puisqu'il y a un noyau Linux, qui exécute Docker dessus, va être assez facile. Dans la démo, ils ont dirigé Docker au-dessus d'Ubuntu en cours d'exécution WSL V2 et cela a fonctionné comme s'il fonctionnait sur une installation d'Ubuntu native.

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 en raison du manque d'autorisations de fichiers 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 que Microsoft expédie.

Conclusion

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

Si vous exécutez Windows 10 Home, Pro ou Enterprise Edition, vous pouvez avoir un avant-goût de WSL V2 en optant pour les versions de prévisualisation de Windows 10. Voici un guide sur la façon de faire cela.