Publié le 26 novembre 2016 - par

Windows Bash

winbuntu_lgoQuand l’info était tombé pour la première fois, ça ressemblait un peu à une grosse blague et bien sûr comme à chaque fois que les noms Linux et Windows se trouvent dans le même texte les trolls s’en étaient donné à cœur joie. Pensez donc, Windows embarquant un sous-système Linux c’est un rêve d’admin$ et de développeur multi-os que l’on n’avait même pas le droit de faire sous peine d’être transformé en pomme … Seulement voilà, depuis quelques temps, Microsoft s’est ouvert sur l’open source et au monde Linux et les évolutions dans ce sens tapent très fort.

WSL

Le Raspberry PI a le mérite d’avoir fait découvrir Linux à beaucoup d’utilisateurs et c’est très bien, mais de là à les convaincre de migrer leur PC vers cet OS c’est une autre histoire. Tout simplement pour des raisons d’ergonomie, de compatibilité d’existant, d’offre logicielle ou juste de facilité d’utilisation. Donc pour pouvoir avoir les 2 OS sur une même machine, il fallait soit utiliser des solutions douteuses, de la virtualisation ou avoir recours au multi-boot. Depuis la mise à jour anniversaire d’Aout 2016, Microsoft a jeté un énorme caillou sur la banquise en proposant ‘Bash’. Une console permettant d’utiliser les commandes Linux au travers d’une API nommée WSL (Windows Subsystem Linux) reposant sur un sous-système Linux (Ubuntu) complet. Il est donc désormais possible de travailler (ou de s’amuser) en Linux directement depuis Windows.

wsl

Installation 

Si votre Windows 10 est à jour, il suffit d’activer le mode ‘développeur’. Ce mode vous proposera des fonctionnalités Windows supplémentaires dont ‘Sous-système Windows pour Linux (beta)’. Pour activer le mode développeur, rendez-vous dans :

Paramètres > Mise à jour et sécurité > Pour les développeurs et activez Mode développeur.

bashwindows1

Après un redémarrage, depuis le panneau de configuration > Programmes et fonctionnalités > Activer ou désactiver des fonctionnalités Windows, cochez la case ‘Sous Système Windows pour Linux’. Windows va vous demander de confirmer l’installation et ensuite proposer un redémarrage.

bashwindows2

A ce stade la fonctionnalité est installée. Il ne reste qu’à installer l’OS Linux. Pour ça, depuis la ligne de commande, exécutez ‘bash’. Au premier lancement, il va vous être demandé si vous voulez installer l’OS, répondez oui. Une fois l’installation terminée, votre système Linux est prêt. Vous pouvez démarrer une console soit par une commande ‘bash’ ou utiliser l’icône ‘Bash sur Ubuntu sur Windows’ depuis le menu Démarrer.

bashwindows3

 

A quoi ça sert 

Les premiers satisfaits seront les admin$ qui ont à gérer les 2 systèmes. En tant qu’admin$, pouvoir utiliser des commandes Linux directement depuis Windows est incontestablement un plus. Les évolutions permettront peut être un vrai serveur SSH natif et pourquoi pas aussi un serveur GUI (Au point ou on en est, on peut rêver de tout non ? …)

Pour les développeurs, c’est aussi une bonne nouvelle. Pouvoir compiler du Linux depuis Windows sans avoir recours à de la cross-compilation entre plusieurs machines. J’ai testé il y a quelques semaines cette solution ‘bash’ associée aux outils de développement Linux pour Visual Studio et cela m’a permis de développer et compiler très simplement une appli. Linux depuis mon IDE de travail habituel sous Windows sans avoir recours à une autre machine ou VM.

Pour les utilisateurs de Raspberry PI qui veulent découvrir et apprendre Linux, cela va leur permettre d’utiliser tous le confort d’un PC de bureau sans avoir renoncer à leurs OS  favori. Même si Ubuntu n’est pas Debian, les 2 distributions ont beaucoup de similitudes en ligne de commande et c’est principalement à eux que je pense en écrivant cet article.

Plus généralement cela permet d’utiliser des commandes et de faire tourner très simplement des applis Linux sous Windows comme si on y était. Rien de bien nouveau si on regarde bien. D’autres solutions et bidouilles existaient déjà, mais cette fois ci,  plus besoin d’outils tiers pas toujours très fiables et simple à installer, il s’agit bien là d’une fonctionnalité  intégrée nativement dans Windows. A quand une version de XBill installée par défaut avec les jeux Windows 🙂

xbill

Efficacité 

Bien sûr tout ça est encore en version bêta mais nul doute que cela va continuer de mûrir. En terme de performances brutes, là ou la solution pêche encore comparée à une solution Kernel Linux c’est notamment au niveau des temps d’accès disques du fait de la surcouche entre le système Linux et NTFS mais il semblerait que ça bosse sur cette carence et qu’elle fera l’objet d’une prochaine mise à jour. Sur d’autres points, la solution WSL égale et même  arrive à surpasser les performances de son hôte natif comme l’explique cet article. Il semblerait qu’il y ait toutefois quelques bug par ci par là, mais à ce jour, je ne les ai pas encore trouvé (Il faut dire que je n’en fais pas un usage intensif non plus). A l’heure actuelle, ce n’est pas destiné a faire tourner un serveur de prod Linux sous Windows (même si cela fonctionne), mais qui sait ….

Conclusion 

Bien sur les anti-M$ vont encore crier au scandale en refusant d’accepter que le diable puisse avoir des pingouins sous sa tente. Il va pourtant falloir vivre avec cette idée puisque Microsoft a rejoint la Linux Foundation. Là où ça rigole moins c’est du côté de la concurrence et notamment chez Oracle depuis que MS a décidé de libérer le Framework.Net mais aussi de porter SQLServer sous Linux (oui oui, vous lisez bien, SQLServer sous Linux) . Quoi qu’il en soit nous avons tous toujours reproché à MS d’être trop fermé et trop propriétaire et force est de constater que ce reproche s’effrite de plus en plus et je trouve que c’est plutôt une bonne nouvelle pour les codobricoloux et makers de tout poil, donc NOUS. Coté pro, je suis moins optimiste, mais on n’est pas là pour parler boulot hein …

J’avais déjà sorti ma blague favorite : Installer Wine, c’est comme jeter un pingouin par la fenêtre. Si je devais la mettre au gout du jour, je dirais peut être : WSL, c’est un peu mettre un pingouin sur le carreau … 😉

 

 

 

 

 

Share Button

29 réflexions au sujet de « Windows Bash »

  1. Me Capello ;)

    Bonjour,
    Inutile de publier ce commentaire mais juste corriger la phrase de votre article :
    ‘les 2 distributions on beaucoup de similitudes’
    Merci beaucoup

    Répondre
    1. François MOCQ

      Bonjour
      merci pour cette correction
      c’est important car la qualité du blog, c’est aussi l’absence de fautes d’orthographe
      du coup… je mets un euro dans le nourrain pour vous remercier 🙂
      cordialement
      François

      Répondre
    1. Bud 'Robert' Spencer Auteur de l’article

      Bien sur. De mon coté, j’ai de plus en plus le reflexe d’utiliser cette commande plutôt que ‘putty’. pour me connecter à mes PI et mes serveurs Linux.

      Répondre
    1. S.POURRE

      Article effectivement intéressant.
      Sans être anti-microsoft primaire mais en ayant un peu d’ancienneté, on peut raisonnablement douter de l’altruisme de MS dans cette démarche.
      Ils se mettent à Linux par que Linux est devenu une part non négligeable du marché (certes pas sur les PC).
      L’histoire nous apprend que MS pratique toujours la technique de « embrasser pour étouffer ». Les plus anciens se souviennent des utilitaires de compression disques, RAM intégrés peu à peu dans Windows.
      Plus récemment, l’intégration d’un anti-virus, pas plus mauvais que d’autres.
      N’oublions pas non plus le rachat de SCO qui se disait propriétaire d’UNIX pour lancer une campagne de terreur contre Linux.
      Pour rester dans le domaine des blagues:
      – Windows, c’est comme une clim: ça fonctionne mieux si on ferme toutes les fenêtres.
      – Windows est le seul OS réellement multitâche: Il est capable de démarrer et de se planter en même temps.

      Sylvain

      Répondre
      1. msg

        Les deux frères rapetou sur PC ont bien sorti leurs cartes propriétaires de développement concurrentes au RPi .
        La Microsoft Galiléo et la Intel Edison .

        Etant donné qu’elles coûtent largement plus cher , peu de monde s’y intéresse et donc ça va finir comme pour les mobiles M$-Phone , en solde puis aux oubliettes de l’histoire .

        Répondre
        1. Bud 'Robert' Spencer Auteur de l’article

          Je relis tout ca, mais il y a un truc qui m’échappe. Juste pour ma culture perso, c’est quoi que tu appelles ‘2 frères rapetou sur PC’

          Répondre
    1. Bud 'Robert' Spencer Auteur de l’article

      Il y a une vidéo sympa sur ce sujet. Elle montre un peu les limites de Xming mais je l’avais trouvé intéressante dans le sens ou elle met en avant l’utilisation d’apt-get avec bash.

      Répondre
  2. Matthieu

    Bonjour,

    Lors de la première installation, avec AVAST j’ai eu un bloquage lors du dépaquetage.
    Après désinstallation de ce dernier, lorsque je lance le bash, je suis déja avec le prompt de root@xxx.
    Quelle est la commande pour relancer l’installation de linux ?

    Cdt,
    Matthieu

    Répondre
  3. Quentin

    Un bug tout con : les liens symboliques pointant vers un répertoire ne fonctionnent pas. Essayez, créez en un et tentez d’aller dans le répertoire via la lien symbolique. Vous pourrez y entrer indéfiniment ^^

    Répondre
    1. Bud 'Robert' Spencer Auteur de l’article

      Attention de ne pas se gourer. Bash n’a absolument pas vocation à remplacer un système Linux et encore moins celle de combler un besoin pour Windows. C’est juste une option qui permet d’utiliser des commandes et des fonctionnalités Linux depuis Windows sans avoir à utiliser une VM, ni plus ni moins. Cela peut évidemment faire bien plus mais à considérer uniquement à titre d’expérimentation.

      Répondre
  4. zeb

    Révolutionnaire, des commandes UNIX sous Windows !
    Enfin, on est en 2016 !

    Petit rappel sur les palliatifs et leur année de création, quand on est coincé dans la fenêtre
    GnuWin32 (1995)
    Cygwin (1995)
    MinGW32 (1998)

    Bref, comme on dit d’in ch’nord : « Avec du brin, i’ fait du neu » !

    Répondre
    1. Bud 'Robert' Spencer Auteur de l’article

      Effectivement, la première chose a noter c’est que c’est du pure Microsoft ce qui est déjà une révolution en soit. La seconde, c’est la méthode utilisée qui n’a absolument rien a voir avec les ‘palliatifs’. L’API ne ‘simule’ pas un système mais sert de support à un vrai Linux et techniquement la différence est énorme (sous réserve que l’on s’intéresse et que l’on comprenne un peu la technique).

      Répondre
      1. S.POURRE

        Je plussoie que c’est plus qu’une API. MS considère même que c’est un nouveau système (ou qu’à minima, ça impacte lourdement W10) puisqu’il crée le répertoire Windows.old qui pèse plus de 18 Go.
        Ceux qui ne souhaitent pas revenir en arrière pourront le supprimer sans danger. Pour le faire proprement, il suffit de passer par l’outil de nettoyage. Pour les autres, il faut prendre en compte ce volume si vous êtes un peu juste sur le C:
        Je souligne que l’OS socle reste Windows 10, qui est certainement l’OS le plus inquisiteur du marché. Comme je le fais tourner dans une VM, je vois 5 bridges (ponts) ouverts (et des tunnels) là où un Linux n’en n’utilise qu’un.
        Ces connections permettent de remonter énormément d’informations privées vers les serveurs de MS, même ;en restreignant au maximum les autorisation . Pas d’install par défaut en cliquant next next next . attention aux mises à jour qui rétablissent souvent le mode le plus verbeux.
        Vmware m’alerte à chaque lancement que ces ponts veulent passer la carte Ethernet en mode promicuous afin d’épier tout le réseau.

        Sylvain

        Répondre
        1. Bud 'Robert' Spencer Auteur de l’article

          « Je plussoie que c’est plus qu’une API. MS considère même que c’est un nouveau système (ou qu’à minima, ça impacte lourdement W10) puisqu’il crée le répertoire Windows.old qui pèse plus de 18 Go. »

          Ne pas tout mélanger. C’est la mise à jour Windows Anniversaire qui créer un dir .old et ça n’a rien à voir avec ‘Bash’ et l’option développeur. ‘Bash’, n’est qu’une babiole mineure dans le contenu de cette mise à jour. Le dir .old est créé à chaque mise à jour majeur et a beaucoup d’importance puisque cela permet de faire ‘machine arrière’ en cas de problème avec les applications et les drivers tiers déjà installés. Une fois l’installation finalisée et validée, le dir .old peut être ‘nettoyé’ si l’on n’envisage pas de retour en version antérieur. A préciser aussi que la taille de ce dir. n’est pas fixe mais est dépendante des options installées (et des différentes versions de Windows). Ne pas confondre non plus les canaux /IP ouvert par l’os lui-même et ceux instanciés part des processus tiers. Contrairement aux idées reçues, il est tout à est possible de museler complètement un Windows 10 (ou autre version) par simple paramétrage mais souvent aux prix de fonctionnalités perdues qui peuvent être bien pratique.

          Répondre
  5. Christian

    Hello,

    une petite question technique :
    est ce que du coup on peut installer Jarvis (http://domotiquefacile.fr/jarvis/) sur la partie linux en utilisant un kinect installé sur le windows ?
    en gros, est que le linux partage le matériel connecté sur le widnows en usb ?

    Parce que kinect sur le raspberry ne fonctioone pas avec jarvis…

    Répondre
    1. Bud 'Robert' Spencer Auteur de l’article

      Ce n’est pas fait pour ca, mais en charognant, tout est possible. Perso, je ne suis pas convaincu que ce soit une bonne idée de monter un projet qui s’appuis en même temps sur 2 os différents, mais si on s’en tient au coté ludique, ca peut être sympa à expérimenter.

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.