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 !

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

Le , par Stéphane le calme

260PARTAGES

21  0 
Mise à jour du 20 / 10 / 2016 : la build 14951 de Windows 10 apporte le support d'Ubuntu 16.04

Si le Windows Subsystem for Linux (WSL) a été implémenté pour la première fois sur Windows 10 avec la mise à jour anniversaire et est toujours en version bêta, Microsoft continue de l’améliorer en proposant par exemple de nouvelles fonctionnalités. La dernière build de WSL s’accompagne du support d’Ubuntu 16.04, qui vient donc remplacer Ubuntu 14.04 sur les nouvelles installations sur Bash.

Cette build apporte également une interopérabilité entre Windows et WSL étant donné que les utilisateurs peuvent lancer des binaires Windows directement depuis une commande prompt WSL. « Dans un sens large, l'interopérabilité est la capacité à mélanger et assortir les binaires NT et Linux à partir du même shell. Par exemple, en utilisant bash.exe pour naviguer dans votre système de fichiers et lancer un éditeur graphique de texte NT depuis le répertoire. Un autre aspect est la possibilité pour les binaires NT et Linux de rediriger leur entrées et sorties ».



Source : blog Microsoft (interopérabilité), blog Microsoft (annonce build 14951 pour mobiles et PC)

En préambule de l’édition 2016 de la conférence Build, Kevin Gallo, corporate vice president for Microsoft’s Windows and Devices Group, a annoncé que « le shell Bash débarque sur Windows. Oui le vrai Bash arrive sur Windows », annonce qui a été saluée par une ovation de la salle.

Il faut rappeler que 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. Ses opérations fondamentales sont semblables à celles de tous les interpréteurs de ligne de commande :
  • il fournit une liste de commandes permettant d'opérer sur l'ordinateur (lancement de programmes, copie de fichiers, etc.) ;
  • il permet de regrouper ces commandes dans un fichier unique appelé script ;
  • il vérifie la ligne de commande lors de son exécution ou lors d'une éventuelle procédure de vérification et renvoie un message d'erreur en cas d'erreur de syntaxe ;
  • en cas de validation, chaque ligne de commande est interprétée, c'est-à-dire traduite dans un langage compréhensible par le système d'exploitation, qui l'exécute alors.

« Ce n'est pas une compilation croisée, ce n'est pas une machine virtuelle, c’est natif », a-t-il précisé. « Nous avons développé un partenariat avec Canonical pour apporter cette grande expérience, et vous serez en mesure de le télécharger depuis le Windows Store c'est le vrai, le véritable Bash sur Windows 10 ».

Comme Microsoft l'a expliqué, l'opération a été réalisée en partenariat avec Canonical, la société qui est le sponsor officiel de la distribution Ubuntu (dont elle assure le support technique et la certification), et passe par la création d'un sous-système dédié (Windows Subsystem for Linux) capable d'exécuter des binaires Linux. WSL a été silencieusement embarqué dans la build 14251 de Windows 10. À ce propos, Microsoft avait expliqué que « nous avons conçu une nouvelle infrastructure dans Windows, WSL, sur laquelle nous avons exécuté un véritable mode image utilisateur Ubuntu fourni par nos partenaires Canonical, créateurs d’Ubuntu Linux. La résultante est qu’il vous est désormais possible d’exécuter du Bash natif Ubuntu sur Windows ».

Du côté de Canonical, c’est Dustin Kirkland qui va venir rappeler qu’il ne s’agit pas là d’une variante Cygwin, le projet par lequel il a été porté sur Windows. « Une équipe de développeurs pointus chez Microsoft a travaillé dur pour adapter une technologie de Microsoft Research pour effectuer essentiellement la traduction en temps réel de Linux syscalls en syscalls Windows. Les geeks Linux peuvent penser à cela comme étant l'inverse de "WINE" - des binaires Ubuntu qui s’exécutent en mode natif sur Windows. Microsoft l’appelle un "sous-système Windows pour Linux" ».

Quant à savoir ce qui peut avoir motivé Microsoft à le faire, Kirkland a déclaré « développeurs, développeurs, développeurs. Microsoft reconnaît que si les développeurs de nos jours pouvaient se servir de Windows ou Mac (voire Ubuntu) sur leur desktop, inévitablement plusieurs d’entre eux vont finir par passer beaucoup de leur temps dans un shell Linux. Avant cette nouvelle fonctionnalité de Windows 10, les utilisateurs Windows avaient besoin d'exécuter une machine virtuelle (gourmande en ressources), un ssh à une instance de cloud (nécessite une connexion), ou bidouiller avec Cygwin (ce qui s’avère lent). Avec cette nouvelle fonctionnalité, un utilisateur de Windows appuie simplement sur le menu Démarrer et tape "bash" ou "ubuntu". Il sera alors dirigé vers un shell Ubuntu riche, qui va s’exécuter nativement et sans virtualisation ou recompilation ».

Et de poursuivre : « c’est une décision presque surréaliste de la part de Microsoft sur l'importance de l'open source pour les développeurs. Il s’agit là d’une opportunité fantastique d’incorporer la technologie libre et open source directement dans un desktop Windows 10 sur la planète. Et quel vecteur merveilleux dans l'apprentissage et l'utilisation que de faire usage de plus d’Ubuntu et de Linux dans les clouds ​​publics ».

Mike Harsh de chez Microsoft a quand même tenu à apporter quelques éléments de précision :
  • 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.


Source : vidéo de présentation, blog Dustin Kirkland, blog Mike Harsh

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

Avatar de AoCannaille
Membre émérite https://www.developpez.com
Le 31/03/2016 à 16:20
J'ai du vérifier.... non, le premier avril, c'est bien demain...
7  0 
Avatar de transgohan
Expert éminent https://www.developpez.com
Le 31/03/2016 à 15:52
Un Dieu m'aurait-il écouté ? A quelle religion dois-je me convertir !!!!?
C'est une grande nouvelle.

Non parce que ça fait longtemps que j'ai remplacé n'importe quel script windows par des scripts Python...
6  0 
Avatar de Zefling
Membre expert https://www.developpez.com
Le 31/03/2016 à 20:43
Windows est devenu «*case-sensitive » ?
5  0 
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 koyosama
Membre éprouvé https://www.developpez.com
Le 31/03/2016 à 16:34
Une tres bonne nouvelle. Pas mal d'outil que je peux utiliser maintenant.
3  0 
Avatar de Conan Lord
Expert confirmé https://www.developpez.com
Le 31/03/2016 à 17:06
Citation Envoyé par AoCannaille Voir le message
Pour ça, tu as toujours powershell, inclu dans windows depuis Windows 7

Et encore avant, le VBS, toujours fonctionnel!
Tout à fait, je me sers pas mal du powershell ! Cela dit, le temps d'apprentissage est chaque fois super long pour moi qui ne suis pas du métier (comme j'ai besoin d'un nouveau script tous les 6 mois environ, il faut que je réapprenne tout à chaque fois). Le Bash, je m'en sers à la maison pour faire joujou, et comme je suis plus portée sur le divertissement que sur le travail, je le connais mieux.
3  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 31/03/2016 à 21:00
Reste à se débarrasser de la couche Windows

Plus sérieusement, c'est intéressant sur le principe, mais je ne vois pas trop d’intérêt à l'usage. Linux c'est les scripts Bash, Windows c'est PowerShell, vbs. Chacun son identité. Ce que l'on fait avec l'un peut être fait avec l'autre dans les grandes lignes.

Peut-être pour Docker.
3  0 
Avatar de niuxe
Membre du Club https://www.developpez.com
Le 07/04/2016 à 0:25
Citation Envoyé par marsupial Voir le message

- GNU/Linux 2% de parts de marché


Je crois que tu es resté en l'an 2000 !

Android..... TV Samsung, Sony, tapis de courses, console, serveurs, etc., etc.

bon ok, je sors....
3  0 
Avatar de AoCannaille
Membre émérite https://www.developpez.com
Le 31/03/2016 à 16:46
Citation Envoyé par Conan Lord Voir le message
C'est-à-dire, seulement les outils Windows ? À défaut d'interagir avec Excel, est-ce que je pourrai interagir avec un autre tableur par exemple ? Autre question, j'imagine que je ne pourrai pas non plus interagir avec des fichiers XLSX ?
Sinon, c'est une très bonne nouvelle, mais ce sont des points qui m'auraient intéressée davantage.
Pour ça, tu as toujours powershell, inclu dans windows depuis Windows 7

Et encore avant, le VBS, toujours fonctionnel!
2  0 
Avatar de matrix788
Membre éprouvé https://www.developpez.com
Le 31/03/2016 à 20:04
Citation Envoyé par hymenoby Voir le message
mais là c'est trop top si cette information s'avère véridique là windows marque un grand coup face à linux
non seulement, cette information est officielle, puisque présenté lors de la build, mais en plus, Kevin Gallo a fait la présentation en lançant le Bash, et quelques commandes. La vidéo est disponible à la fin de cette news.
2  0