IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

850PARTAGES

6  0 
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

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Aurelien.Regat-Barrel
Expert éminent sénior 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).
5  0 
Avatar de nikau6
Membre extrêmement actif 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.
2  0 
Avatar de youx
Membre du Club https://www.developpez.com
Le 18/10/2016 à 7:54
Sur la stratégie de Microsoft dans le domaine cela me fait penser à leur vieux adage remis au goût du jour par la nouvelle équipe de direction:" Étreindre, Étendre, Éteindre".

Avec leur direction open source et d'ouverture ils essais de ce rendre indispensable pour pléthore de service sur le thème "avec moi c'est plus simple que la concurrence". Techniquement intéressant comme projet, c'est tout pour moi.
2  0 
Avatar de 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...
1  0 
Avatar de Aurelien.Regat-Barrel
Expert éminent sénior 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?
1  0 
Avatar de 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.
1  0 
Avatar de helper_moi
Membre régulier https://www.developpez.com
Le 07/04/2016 à 11:48
C'est une bonne nouvelle pour moi ancien linuxien, on attend la suite ...
1  0 
Avatar de 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é.
1  0 
Avatar de jlliagre
Modérateur https://www.developpez.com
Le 17/04/2016 à 0:05
Il s'agit bien de ça (sauf qu'Ubuntu n'est pas certifié POSIX), mais c'est en fait beaucoup plus car un environnement Ubuntu (Debian), même limité à la ligne de commande, est largement plus riche et étendu que ce que définit POSIX.

L'exécution de binaires et bibliothèques dans un format non natif (ELF au lieu de PE) est bien la nouveauté sous Windows.
1  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 08/05/2016 à 2:57
Que vient faire WINE dans un partenariat entre Microsoft et Canonical ?

Après le but de Microsoft reste au fond le même. Ils s'en foutent DU MOMENT QUE ça tourne sur des solutions Microsoft. Si le libre leur permet d'atteindre cet objectif alors tant mieux pour eux.
1  0