Windows 10 : la première build avec le support du Shell Unix Bash est disponible
Pour les testeurs du programme Windows Insider

Le , par Michael Guilloux, Chroniqueur Actualités
Build 2016, la conférence annuelle de Microsoft dédiée aux développeurs s’est déroulée la semaine dernière et a livré une série d’annonces intéressantes. Parmi celles-ci, le support de Bash dans Windows 10 était l’une des plus surprenantes, mais également des plus appréciées par les développeurs. Pour rappel, Bash (l’acronyme de Bourne Again Shell) est un interpréteur de ligne de commande de type script et le Shell Unix du projet GNU.

Comme Microsoft l’a expliqué, il ne s’agit ni d’une compilation croisée ni d’une machine virtuelle qui permettra d’exécuter l’interpréteur de ligne de commande sous Windows 10. L’exécution de Bash sous Windows 10 sera native, et cela grâce à un partenariat avec Canonical qui a permis la création d'un sous-système dédié, Windows Subsystem for Linux (WSL), capable d’exécuter des binaires Linux. WSL a été discrètement débarqué dans la build 14251 de Windows 10. « La résultante est qu’il vous est désormais possible d’exécuter du Bash natif Ubuntu sur Windows », a annoncé Microsoft lors de sa conférence.

À peine une semaine après l’annonce, les développeurs membres du programme Windows Insider pourront déjà commencer à tester l’interpréteur de ligne de commande, dont le support vient de débarquer dans une nouvelle build de l’OS. En effet, dans un billet de blog dédié à la sortie de la build 14316, Microsoft a annoncé hier que « vous pouvez exécuter Bash en mode natif sous Windows comme annoncé la semaine dernière à la Build 2016 ». La société fournit également les instructions pour installer l’interpréteur de ligne commande sous Windows 10.

Toutefois, avant de se lancer, il est important de rappeler quelques précisions fournies la semaine dernière par Mike Harsh de Microsoft :

  • tout d’abord, c’est la première fois que cet outil est proposé (et est catégorisé « bêta » pour cette raison) : nous savons qu’il y aura des choses qui ne fonctionneront pas comme vous vous y attendiez. N’espérez pas voir des scripts Bash qui vont fonctionner à la perfection. Mais essayer cette fonctionnalité nous permet de savoir ce sur quoi nous avons besoin de travailler afin de l’améliorer ;
  • ensuite, bien que vous serez en mesure d’exécuter du Bash en natif ainsi que plusieurs lignes de commande Linux sur Windows, il est important de garder à l’esprit que c’est une boîte à outils développeurs qui a été pensée pour vous aider à écrire et concevoir vos codes pour vos scénarios et plateformes. Il ne s’agit pas là d’une plateforme serveur sur laquelle vous pourrez héberger vos sites, exécuter des infrastructures serveur, etc. ;
  • enfin, rappelez-vous que Bash et les outils Linux ne peuvent pas interagir avec les applications et outils Windows. Alors vous ne serez pas en mesure de lancer Notepad depuis Bash ou de lancer Ruby sur Bash depuis PowerShell.

Si le Shell Bash ne sera pour l'instant disponible que pour les Windows Insiders, la nouvelle fonctionnalité pourrait débarquer chez tout le monde l’été prochain, avec la mise à jour anniversaire de Windows 10.

Source : Microsoft

Et vous ?

Qu’en pensez-vous ?

Voir aussi :

Microsoft apporte le Shell Unix Bash à Windows 10, le résultat d'une collaboration avec Canonical


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de Aurelien.Regat-Barrel Aurelien.Regat-Barrel - Expert éminent https://www.developpez.com
le 07/04/2016 à 10:20
Citation Envoyé par Michael Guilloux Voir le message
enfin, rappelez-vous que Bash et les outils Linux ne peuvent pas interagir avec les applications et outils Windows. Alors vous ne serez pas en mesure de lancer Notepad depuis Bash ou de lancer Ruby sur Bash depuis PowerShell.
Ils ont donc réellement implémenté un nouveau subsystem ! Faut savoir qu'à la base, NT dispose de 3 sous-systèmes : Win32 (avec option GUI ou console), OS/2, et... POSIX. Un sous-système est en quelque sorte une API user mode qui s'interface directement avec le kernel. C'est vraiment un environnement d'exécution à part, "natif", au lieu d'un couche supplémentaire à la Cygwin implémentée au dessus de Win32. Là, il n'y a pas de Win32 du tout. Du coup il devrait y avoir un respect de la casse dans les noms de fichiers, du fork de process (que le kernel supporte)...

L’existence du sous système OS/2, c'est lié à l'histoire de NT qui était à l'origine un projet pour remplacer l'OS/2 16 bits d'IBM (=> OS/2 NT). POSIX 1, il me semble que c'est parce que le DoD demandait cela comme condition d'acceptation d'un OS dans leur administration. Ces deux sous systèmes ont été supprimés avec Windows XP... Qui aurait cru que cette "fonctionnalité" allait refaire surface !

Mais là où je me pose une question, c'est que normalement, il va y avoir un nouveau flag spécifique de créé au niveau du format exécutable (PE Header). Et donc gcc & clang (enfin leur linker plus précisément) vont devoir être patchés pour savoir cibler ce sous-système. Je sais pas comment ils vont gérer cela de façon la plus transparente possible (si on veut faire des compilations).
Avatar de jlliagre jlliagre - Modérateur https://www.developpez.com
le 07/04/2016 à 10:44
Il ne s'agit pas de binaires classiques Windows (PE) mais de binaires Linux ELF, crées par le gcc natif d'Ubuntu, puisqu'on installe directement un userland Ubuntu.

Le sous système POSIX renaît donc sous la forme d'un sous système Gnu/Windows...
Avatar de RyzenOC RyzenOC - Inactif https://www.developpez.com
le 07/04/2016 à 11:15
cool, moi qui pensait que c'était une poisson d'avril (la news était apparue le 31 mars).

Le seul bémol, c'est qu'on ne pourra visiblement pas interagir avec windows, il sera impossible par exemple d’accéder au systeme de fichier et donc par exemple a un simple fichier texte stocker dans C:\monfichier.txt

Ce qui je trouve est un grosse limitation. Autant ne pas pouvoir lancer des .exe je comprend que c'est impossible, autant ne pas pouvoir accéder au système de fichier, sa limite vachement.

Sinon sera t'il possible de lancer des programmes graphiques voir une gui complète ?
Avatar de Aurelien.Regat-Barrel Aurelien.Regat-Barrel - Expert éminent https://www.developpez.com
le 07/04/2016 à 11:16
Cool Je me suis fait la réflexion après coup sans trop y croire, mais à bien y réfléchir c'est en effet le plus simple d'un point de vue technique. Mais bash lui-même, c'est une appli Win32 ou un executable ELF? Le loader de Windows a-t-il été mis à jour pour gérer les binaires ELF et les charger le sous système dédié? Ou dit autrement : peut-on lancer n'importe quel exe Linux depuis Explorer au même titre qu'on lance une appli DOS?
Avatar de jlliagre jlliagre - Modérateur https://www.developpez.com
le 07/04/2016 à 11:29
Citation Envoyé par sazearte Voir le message
il sera impossible par exemple d’accéder au systeme de fichier et donc par exemple a un simple fichier texte stocker dans C:\monfichier.txt
A priori, si: les volumes Windows sont accessibles sous /mnt/c, /mnt/d, etc.

Ce qui je trouve est un grosse limitation. Autant ne pas pouvoir lancer des .exe je comprend que c'est impossible
C'est pourtant la grosse limitation, cygwin sait très bien lancer les .exe.

Sinon sera t'il possible de lancer des programmes graphiques voir une gui complète ?
Il n'y a pas de support du serveur X11. Je ne sais pas ce qu'il en est des clients.
Avatar de helper_moi helper_moi - Membre du Club https://www.developpez.com
le 07/04/2016 à 11:48
C'est une bonne nouvelle pour moi ancien linuxien, on attend la suite ...
Avatar de nikau6 nikau6 - Membre confirmé https://www.developpez.com
le 07/04/2016 à 14:20
Ça, c'est LA fonctionnalité qui va me faire tomber amoureux de Windows 10.

Citation Envoyé par sazearte Voir le message
...
Le seul bémol, ..., il sera impossible par exemple d’accéder au systeme de fichier et donc par exemple a un simple fichier texte stocker dans C:\monfichier.txt
...
Il ne sera pas possible de lancer des exécutables Windows depuis ce Bash, mais les interactions avec le système de fichier Windows seront possibles.
Avatar de - https://www.developpez.com
le 08/04/2016 à 7:42
http://www.mingw.org/
ou
https://www.cygwin.com/

Très pratique quand j'étais encore un étudiant et surtout ne souhaitant pas installer Linux (chose qui n'a pas durée) sur mon défunt ASUS A3N (clé de produit Microsoft Windows XP toujours valide ou compatible avec un autre PC de marque ASUS?).

Ou plutôt un peu ignorant de la gestion de mémoires vives.
32 Bits peut accepter 16 Go de mémoires vives chez Microsoft "Windows Serveur"...

Je crois que la différence est là. Même pour les systèmes embarqués hors de l'environnement de l'automatisation ou de la robotique.
Avatar de mhtrinh mhtrinh - Membre habitué https://www.developpez.com
le 14/04/2016 à 23:31
Quelqu'un peu m'expliquer l'utilite de la chose ??
Ca sert a quoi d'executer bash tout seul dans son coins ? C'est quoi l'avantage comparer a cygwin ? OK, c'est natif, etc ... et alors ? Ca execute plus rapidement ? 50% plus rapide ? Qui execute un script pure bash (sans utiliser autre programme) pendant des heures ? Et sur Window ? Pour faire des backups ?

Si tu veux apprendre a faire du bash, une machine virtuel s'installe en 5 minutes de nos jours avec Ubuntu. Ce Bash sous Window ressemble a un Bash dans une machine virtuelle : on execute des scripts bash sans intereagir avec les programmes de Window.
Avatar de jlliagre jlliagre - Modérateur https://www.developpez.com
le 15/04/2016 à 1:41
Citation Envoyé par mhtrinh Voir le message
Ca sert a quoi d'executer bash tout seul dans son coins ?
À rien s'il ny avait que bash, mais tous les binaires Ubuntu s'installent, avec la commande native apt-get, et beaucoup de ceux qui se limitent à la ligne de commande semblent s'exécuter correctement d'après ce que j'ai pu lire, car je n'ai pas testé.C'est quand même une version bêta, donc il reste des problèmes.

L'intérêt principal par rapport à cygwin, c'est le nombre de logiciels disponibles dans le repository Ubuntu.

Le désavantage, c'est le cloisonnement. À part l'accès au système de fichiers windows (/mnt/c, etc.), il ne semble pas qu'il y ait d'interaction possible avec Windows alors que cygwin est beaucoup plus intégré.
Contacter le responsable de la rubrique Accueil