Comment fonctionne vraiment le nouveau «Bash sur Windows 10»?

25

J'ai lu en ligne qu'Ubuntu et bash arrivent sur Windows 10. J'ai également lu que ce n'est pas un émulateur ou une machine virtuelle fonctionnant sur Windows, mais autre chose. Alors, comment tout cela se réunit-il exactement? Et est-ce que ça va être aussi stable et convivial que bash dans ubuntu?

Maaverik
la source
Cela ne donne pas vraiment une bonne idée de ce qui se passe réellement sous le capot.
Maaverik
@maaverik Nous avons depuis produit une série d'articles de blog et de vidéos d'accompagnement expliquant les caractéristiques internes du WSL. Voir ma réponse ci-dessous pour les liens :)
Rich Turner

Réponses:

21

Ce n'est pas un émulateur de la même manière que WINE n'est pas un émulateur. C'est-à-dire qu'ils ont ajouté une interface de noyau Linux à leur noyau Windows. Lorsqu'une application essaie d'utiliser le noyau Linux, elle est traduite en appel système natif Windows et toutes les réponses du noyau sont traduites en réponse Linux native. L'application pense donc qu'elle fonctionne sur un noyau Linux et n'a donc pas besoin d'être modifiée.

Cependant, il s'agit purement d'une technologie Windows, donc si vous voulez plus de détails, vous devriez les obtenir auprès d'un groupe de support Windows ou quelque chose. Windows continue d'être un système d'exploitation propriétaire, je m'attends donc à un nombre limité de détails.

Et est-ce que ça va être aussi stable et convivial que bash dans ubuntu?

Du point de vue d'Ubuntu, nous fonctionnons simplement sur un noyau Linux primitif, comparable à l'exécution d'un bureau moderne sur un serveur X primitif. Si vous n'utilisez que les fonctionnalités prises en charge par le faux noyau, il sera stable et convivial. Si vous utilisez des fonctionnalités non prises en charge, ce sera instable.

Ce ne sera pas loin d'une expérience complète d'Ubuntu dans un avenir proche.

Jo-Erlend Schinstad
la source
2
"Pas un émulateur" appartient probablement aux guillemets; comme vin est un émulateur, mais pas au niveau du matériel , mais au niveau de l' API. Les deux entraînent une perte de performances en fonction de ce que vous faites (c'est-à-dire du nombre d'appels système que vous effectuez).
thomasrutter
2
@thomasrutter Désolé, je ne suis pas d'accord. Votre définition d '«émulateur» est trop vague. Selon une interprétation comme celle-ci, nous devons également appeler des émulateurs de proxy (mais ils ne le sont pas). Un émulateur, par définition, émule des choses. WSL (et les mandataires) n'émulent pas les choses, ils transforment et transmettent les choses et renvoient une réponse.
Segfault
21

Pour les curieux de savoir comment fonctionne le sous-système Windows pour Linux (WSL) et comment il exécute les binaires Linux ELF-64 natifs, nous avons publié une série de billets de blog et de vidéos d'accompagnement expliquant l'architecture WSL, les processus, les appels système et la prise en charge du système de fichiers .

Scott Hanselman a également réalisé une excellente vidéo pas à pas couvrant le processus d'installation et la configuration de Bash sur Ubuntu sous Windows:

HTH

Rich Turner
la source
3
Le premier lien ne fonctionne plus, je pense qu'il a déménagé ici: blogs.msdn.microsoft.com/commandline/…
dpritch
Bonne prise - merci. Correction du lien pour pointer vers notre lien raccourci.
Rich Turner
2

Les portions bash fonctionnent très bien en WSL.

Les parties du noyau ne sont pas là. Par exemple, /sys/class/backlight/intel_backlight/brightnessvous ne pouvez pas accéder à la luminosité de l'écran. Il existe des commandes Powershell que vous pouvez facilement appeler pour le faire si cela ne vous dérange pas les noms de champs très longs de style COBOL. MS Powershell peut être appelé directement depuis bash. Vous pouvez donc dire que de puissantes fonctionnalités Windows sont désormais intégrées à bash. De la même manière, MS Powershell peut appeler bash je crois. Donc, si le vrai Powershell a accès à des fonctions comme grep,awk , head, tail, etc.

L'interface graphique pour Ubuntu Desktop (gedit , nautilus, etc.) ne fonctionne que après l' installation VcXsrvou quelque chose de similaire.

Le partage de fichiers entre Linux et Windows WSL est compliqué à configurer. Lorsque, lors du déplacement de fichiers entre le dossier partagé WSL + Linux NTFS, j'ai eu une certaine autorisation de fichier "bizarre" soit en raison de mon ignorance ou de déficiences logicielles.

La vitesse est beaucoup plus lente en WSL qu'en Ubuntu. Vous pouvez réellement voir la peinture d'écran caractère par caractère lorsque vous exécutez calou toilet: Quelles sont les différences entre Windows Bash et Cygwin?

Je pense que WSL est un bon produit et j'aime le bricoler lors du double démarrage dans Windows-World. Cela ne deviendra jamais un excellent produit en raison du manque de financement de MS et ils ne veulent vraiment pas avoir une excellente distribution Linux Free-Ware. Si vous aviez suffisamment de RAM, vous seriez probablement plus heureux avec une machine virtuelle. Avec seulement 8 Go moi-même et les prix de la RAM augmentant jusqu'à la mi-2019 environ, je me contenterai de WSL et renoncerai à la mise à niveau de 32 Go de RAM pour l'instant.

J'ai visité quelques forums MS et je dois dire que Rich Turner et les membres de son équipe WSL sont parmi les meilleurs professionnels que j'ai vus.

WinEunuuchs2Unix
la source