Bonjour, Habr!
Alors que la
vente d'été bat son plein, nous aimerions vous inviter à discuter de l'un des sujets les plus ambitieux sur lesquels nous avons travaillé ces derniers temps - l'interaction de Windows et Linux, liée notamment au développement du système
WSL . WSL 2 est en route, et votre attention est invitée à un bref aperçu des fonctionnalités qui nous attendent dans ce sous-système, ainsi qu'à une prévision pour une intégration plus poussée de Windows et Linux.

En mai de cette année, Microsoft a annoncé que WSL2, la dernière version du sous-système Windows sous Linux, fonctionnera sur un noyau Linux à part entière assemblé dans l'entreprise.
Ainsi, pour la première fois, Microsoft inclut le noyau Linux dans Windows comme l'un de ses composants. Microsoft introduit également une ligne de commande sur Windows qui étendra les capacités de PowerShell et WSL.
Le noyau Linux pour WSL2, créé par Microsoft, et la nouvelle ligne de commande Windows intéressent principalement les développeurs.
«Il s'agit de l'action la plus puissante du match contre AWS», a déclaré Joshua Schwartz, responsable de la numérisation chez AT Kearney, une société de conseil.
L'avenir de Microsoft n'est pas lié au marché des PC, même s'il continuera de conserver sa position dans ce segment. Il sera beaucoup plus important de prendre pied sur le marché du cloud, dont l'un des composants pourra à l'avenir devenir des PC de bureau.
Que fait WSL2
WSL2 est la dernière infrastructure de sous-système Windows pour Linux. Il vous permet d'améliorer considérablement les performances du système de fichiers et offre une compatibilité totale avec les appels système.
L'une des principales demandes de la communauté WSL concernait le raffinement des fonctionnalités. WSL2 possède beaucoup plus d'outils Linux que WSL, en particulier Docker et FUSE.
WSL2 gère des opérations de fichiers intensives, en particulier git clone, npm install, apt update et apt upgrade. L'augmentation réelle de la vitesse dépend de l'application spécifique et de la façon dont elle interagit avec le système de fichiers.
Les premiers tests ont montré que WSL2 est environ 20 fois plus rapide que WSL1 pour déballer le goudron du zip. Lors de l'utilisation de git clone, npm install et cmake dans divers projets, le système a montré une augmentation de productivité de deux à cinq fois.
Cela aidera-t-il à gagner la confiance des développeurs?
En substance, Microsoft cherche à gagner la reconnaissance et la confiance dans la communauté du développement en se chargeant du développement de sa propre version du noyau Linux pour prendre en charge les processus WSL2, a déclaré Cody Swann, PDG de Gunner Technology.
«Outre le développement strictement pour Windows, la création de toutes les autres applications - cloud, mobiles, applications Web - sur le PC était extrêmement gênante, c'est pourquoi le développeur a dû en quelque sorte télécharger la distribution Linux en parallèle avec le système d'exploitation Windows. Microsoft l'a reconnu et a proposé une solution », conclut-il.
Il est peu probable que l'introduction du noyau Linux natif affecte sérieusement le travail avec le système du point de vue d'un utilisateur ordinaire. Cependant, dans ce cas, des opportunités se présentent pour une interaction plus étroite entre les services Microsoft et le système d'exploitation Linux.
Une telle décision de la part de Microsoft est vraiment très compétente, car elle permet de pénétrer plus profondément dans la communauté des développeurs, ainsi que d'utiliser activement les produits que quelqu'un d'autre développe - c'est-à-dire de se connecter à l'open source, a déclaré Swann.
Bienvenue dans le nouveau microsoft
La tendance à la création et à la prise en charge du noyau Linux «spécifiquement pour Windows» reflète la tendance décisive au développement vers l'open source, qui est promue par le PDG Satya Nadella. Microsoft n'est pas le même que sous Gates et Balmer, quand tout était gardé derrière une clôture de piquetage propriétaire, et personne ne pensait à l'interopérabilité.
«Satya a complètement transformé Microsoft en une plate-forme beaucoup plus moderne, et cette stratégie a largement porté ses fruits. Salut, une capitalisation de milliers de milliards de dollars », déclare Schwartz.
Selon Charles King, analyste en chef chez Pund-IT, les deux principaux atouts de Microsoft sont l'efficacité et la sécurité.
«En utilisant activement ses propres réalisations sérieuses - ressources et outils -, la société peut garantir aux clients que le noyau sera entièrement à jour et équipé des derniers correctifs et correctifs pour garantir une sécurité complète», ajoute-t-il.
Les développeurs sont également gagnants
Les binaires Linux exécutent de nombreuses fonctions à l'aide d'appels système, par exemple, accéder à des fichiers, demander de la mémoire et créer des processus. WSL1 s'appuie sur une couche de traduction qui interprète bon nombre de ces appels système et leur permet d'interagir avec le noyau Windows NT.
La partie la plus difficile est de mettre en œuvre tous les appels système. Comme cela n'a pas été fait dans WSL1, certaines applications ne pouvaient pas y fonctionner. WSL2 introduit de nombreuses nouvelles applications qui fonctionnent normalement dans cet environnement.
La nouvelle architecture permet à Microsoft de réaliser les dernières optimisations du noyau Linux beaucoup plus rapidement qu'avec WSL1. Microsoft peut mettre à jour le noyau WSL2, plutôt que de réimplémenter toutes les restrictions.
Outil open source complet
Le développement par Microsoft de son propre noyau Linux a été l'aboutissement de nombreuses années de travail du Linux Systems Group, ainsi que de nombreuses autres équipes à travers Microsoft, a déclaré Jack Hammons, responsable de programme pour Linux Systems Group, Microsoft.
Le noyau fourni pour WSL2 sera entièrement open source et Microsoft publiera des instructions sur la façon de construire un tel noyau sur GitHub. L'entreprise interagira avec les développeurs qui souhaitent aider le projet et stimuler les changements à la hausse.
Les développeurs Microsoft ont créé WSL2 en utilisant les systèmes d'intégration continue et de livraison continue de l'entreprise. Ce logiciel sera maintenu via le système de mise à jour Windows et sera complètement transparent pour l'utilisateur. Le noyau restera pertinent et inclura toutes les fonctionnalités de la dernière branche Linux stable.
Pour garantir la disponibilité des sources, l'entreprise met en miroir les référentiels localement et surveille également en permanence le contenu de la liste de diffusion Linux sur les problèmes de sécurité, et travaille également avec plusieurs sociétés qui prennent en charge l'utilisation de bases de données dans un environnement virtuel d'entreprise (CVE). Cela garantit que les dernières mises à jour Linux sont prises en compte dans le noyau Linux de Microsoft et que toutes les menaces émergentes sont éliminées.
Les changements en amont sont contraignants
Microsoft garantit que tous les changements du noyau seront distribués en amont - c'est un aspect important de la philosophie Linux. La prise en charge des correctifs en aval est associée à une complexité supplémentaire; en outre, cette pratique n'est pas généralement acceptée dans la communauté du libre développement.
Le but de Microsoft, qui utilise activement Linux, est de devenir un membre discipliné de cette communauté et de mettre les changements à la disposition de la communauté. Pour assurer la stabilité des branches associées à une prise en charge à long terme, certains correctifs - par exemple, contenant de nouvelles fonctionnalités - peuvent être inclus uniquement dans les nouvelles versions du noyau et ne pas être portés vers la version actuelle de LTS en mode de compatibilité descendante.
Lorsque les sources du noyau WSL sont disponibles, elles seront constituées de liens vers un ensemble de correctifs et à partir d'une partie stable de longue durée des sources. Microsoft s'attend à ce que cette liste diminue avec le temps à mesure que les correctifs se répandent dans le sens amont, et de nouveaux correctifs locaux seront ajoutés pour prendre en charge les dernières fonctionnalités WSL.
Conception de fenêtre plus agréable
Microsoft a également annoncé la sortie de la prochaine version «hiver» de Windows Terminal, une nouvelle application pour les utilisateurs travaillant avec des outils de ligne de commande et des shells, en particulier, Invite de commandes, PowerShell et WSL.
Terminal WindowsWindows Terminal 1.0 propose de nombreux paramètres et options de configuration qui donnent plus de contrôle sur la conception de la fenêtre du terminal, ainsi que sur les shells / profils qui devraient s'ouvrir en tant que nouveaux onglets.
Les paramètres seront enregistrés dans un fichier texte structuré, ce qui les rendra faciles à configurer et à concevoir la fenêtre du terminal à votre goût.
Microsoft arrête de mettre à jour la console Windows existante et en crée une nouvelle à partir de zéro, en décidant d'adopter une nouvelle approche. Windows Terminal s'installe et s'exécute en parallèle avec l'application console Windows existante, qui sort de la boîte.
Comment ça marche
Lorsqu'un utilisateur Windows 10 lance directement Cmd / PowerShell / etc, le processus attaché à l'instance de console standard se déclenche. Le mécanisme de configuration du nouveau terminal permet aux utilisateurs de Windows de créer de nombreux profils pour tous leurs shells / applications / outils souhaités, que ce soit dans PowerShell, en ligne de commande, Ubuntu, ou même avec des connexions SSH aux appareils Azure ou Internet of Things.
Ces profils peuvent inclure leur propre combinaison de conception et de taille de police, de thèmes de couleurs, de niveaux de flou ou de transparence de l'arrière-plan. De plus, les utilisateurs pourront choisir une nouvelle police monospace pour que la fenêtre du terminal soit plus moderne et plus cool. Cette police fournit des ligatures de programmeur, elle sera placée dans le domaine public et sera stockée dans son propre référentiel.
Les principaux avantages de la nouvelle interface de commande Windows sont de nombreux onglets et un beau texte. La prise en charge de nombreux onglets était considérée comme la demande la plus populaire pour le développement du terminal. Un beau texte est obtenu grâce au moteur de rendu basé sur DirectWrite / DirectX, équipé d'une accélération GPU.
Le moteur affiche des icônes de texte, des glyphes et des caractères spéciaux dans les polices, notamment des idéogrammes chinois, japonais et coréens (CJK), des emojis, des caractères CPL, des icônes et des ligatures de programmeur. De plus, ce moteur affiche le texte beaucoup plus rapidement que le GDI précédemment utilisé dans la console.
La compatibilité descendante reste dans l'ordre, bien que vous puissiez essayer Windows Terminal si vous le souhaitez.
Chronologie: comment ce sera
Microsoft fournira Windows Terminal via le Microsoft Store dans Windows 10 et le mettra à jour régulièrement. Ainsi, les utilisateurs travailleront toujours avec les dernières versions et les dernières améliorations - sans pratiquement aucun effort supplémentaire.
Microsoft prévoit de lancer un nouveau terminal cet hiver. Une fois que Microsoft a déployé Windows Terminal 1.0, les développeurs continueront de gérer de nombreuses fonctionnalités déjà mises de côté dans le backlog.
Le code source de Windows Terminal et de la console Windows est
déjà téléchargé sur GitHub.
Que pouvons-nous attendre à l'avenir?
La possibilité que Microsoft utilise son propre noyau Linux à d'autres fins, par exemple pour développer sa propre distribution Linux, semble aujourd'hui quelque peu hypothétique.
Le résultat dépend probablement de la capacité de Microsoft à détecter une demande notable pour un tel produit et des opportunités commerciales qu'un tel développement peut potentiellement ouvrir, explique Charles King.
Il pense que dans un avenir prévisible, l'entreprise concentrera son travail principal sur la compatibilité toujours plus étroite de Windows et Linux et de leur complément mutuel.
Joshua Schwartz estime que dans ce cas, il sera nécessaire de peser quels investissements seront réalisés dans ce travail et quel en sera le retour. Si aujourd'hui Microsoft était une très jeune entreprise, elle ferait probablement tout basé sur Linux. Cependant, le portage de toutes les meilleures pratiques que Microsoft possède déjà sur l'architecture Linux native semble aujourd'hui être un projet coûteux et complexe qui ne paie guère. Les amateurs de Linux obtiendront Linux pour eux-mêmes et l'architecture de base restera intacte.
Quand Apple a réinventé Mac OS en 2000, le système d'exploitation était basé sur BSD Unix, qui est plus similaire à Linux qu'à DOS. Aujourd'hui, la nouvelle version de Microsoft Windows est créée spécifiquement sur la base de Linux.
Peut-être qu'une nouvelle porte s'ouvre devant nous?
Le noyau Linux de Microsoft pourrait ouvrir la voie à une collaboration plus étroite entre les services Windows et le système d'exploitation Linux. En fait, ces développements Microsoft témoignent du fait que Microsoft lui-même comprend déjà qu'aujourd'hui, il n'y a presque aucun client qui préfère exister dans un monde où Windows est partout.
Il est beaucoup plus sage d'utiliser des technologies et des systèmes hétérogènes qui répondent le mieux aux exigences commerciales et aux situations pratiques spécifiques.
La question stratégique la plus importante est la suivante: quelles nouvelles opportunités stratégiques cette évolution ouvre-t-elle pour la plate-forme Microsoft elle-même?
Azure, l'écosystème cloud de Microsoft, fournit déjà une excellente prise en charge de Linux. Auparavant, Windows supportait bien Linux avec les machines virtuelles.
Les changements fondamentaux qui se produisent aujourd'hui sont liés au fait que désormais les processus Linux seront exécutés nativement sur le noyau Windows, ce qui signifie que travailler avec Linux à partir de Windows ira beaucoup plus vite que sur les machines virtuelles. Il est probable qu'en conséquence, Azure sera enrichi par toute une couche d'ingénieurs utilisant Linux à l'échelle industrielle.