Quelles sont les différences entre Windows Bash et Cygwin?

65

Quelles sont les différences entre Windows Bash et Cygwin?

La nouvelle mise à jour de Windows avec Bash "Linux" est nouvelle, mais quelles différences y a-t-il avec Cygwin qui pourrait vous amener à choisir l’une sur l’autre?

Martijn van Wezel
la source
1
Je suppose que Windows bash est mieux intégré et mieux pris en charge par Microsoft.
Panther
2
Je pense que cette question concerne le sujet, car Windows Bash est un produit pris en charge par Canonical. Cela peut être hors sujet car peut-être l'opinion plutôt que le soutien.
Panthère

Réponses:

65

Cygwin est un excellent outil si vous souhaitez vivre entièrement sous Windows et piloter / automatiser des tâches Windows à l'aide de scripts bash. Cygwin ne peut toutefois pas exécuter de fichiers binaires Linux non modifiés.

C'est là qu'intervient WSL:

Le sous-système Windows pour Linux (WSL) est une nouvelle couche du noyau Windows qui vise à fournir un degré élevé de compatibilité avec l’ABI du noyau Linux. Cela permet aux binaires Linux ELF64 natifs, non modifiés, de s'exécuter sur WSL.

C’est ainsi que WSL peut exécuter une véritable distribution distante d’Ubuntu, ainsi que tous les paquets que vous téléchargez à partir d’apt-get, ou des paquets .deb d’ailleurs, sans aucune modification.

Le but de WSL est de permettre aux développeurs travaillant sur Windows d’exécuter de nombreux outils et de travailler sur de nombreux projets, qui dépendent de binaires Linux, de fonctionnalités, de comportements, de disposition du système de fichiers, de modèle de processus, etc.

Bien que WSL en soit encore aux premiers stades de son implémentation, nous travaillons d'arrache-pied pour améliorer l'étendue et la profondeur de nos implémentations syscall afin d'améliorer constamment la capacité de WSL à exécuter un ensemble toujours plus grand d'outils et à prendre en charge un nombre croissant de nœuds Ruby, Java et , etc. forfaits et projets.


Mise à jour: 2017-09-07

Depuis la rédaction de ce qui précède, nous avons livré la mise à jour de Windows 10 Creators, mise au point qui MASSIVEMENT améliore la compatibilité de WSL avec BEAUCOUP d’outils que vous souhaitez / devez exécuter.

Le développement s'est également poursuivi sans relâche et nous avons envoyé les versions Win10 Insiders au cours des derniers mois, en prévision de la livraison de la Mise à jour des créateurs d'automne (FCU) en octobre 2017.

Dans FCU, nous ajoutons la possibilité d’installer et d’exécuter plus d’une distribution côte à côte: Ubuntu, openSUSE et SLES sont actuellement disponibles, avec Fedora et d’autres en cours. WSL prend également en charge les communications série USB, le montage de stockage USB et les partages réseau, ainsi que d’autres améliorations apportées à nos appels système, ce qui améliore la compatibilité avec davantage d’outils.


Mise à jour: 2019-08-22

Les deux dernières années ont été très occupées depuis l'annonce et la publication de WSL, puis de la prise en charge de plusieurs distributions via le magasin et de l'annonce de WSL v1.0 HTH.

Lors de la construction 2019, nous avons annoncé le nouveau terminal Windows ( vidéo de session Terminal ici ) et WSL 2 ( vidéo de session WSL 2 ici ), qui introduit une toute nouvelle approche de l'exécution de Linux sous Windows.

Pour plus de détails et les mises à jour futures, visitez le blog Windows en ligne de commande toutes les deux semaines, où nous publions de nombreuses actualités connexes.

Rich Turner
la source
9
Je suis un utilisateur de cygwin depuis des années. WSL est une idée fantastique qui fonctionne généralement bien ... Cependant, à ce stade, la vitesse d’accès aux fichiers est lente. Je vais dire d'une lenteur prohibitive. Faire même des opérations de taille moyenne avec quelque chose comme GIT prend environ 30 secondes ou moins par seconde sous Cygwin. J'espère qu'ils vont pouvoir régler ça.
Damien Sawyer
9
La performance des disques est un problème connu: nous travaillons sur quelques améliorations de performances pour Win10 CU, d'autres améliorations substantielles étant prévues pour 2017.
Rich Turner
3
Fantastique. Je ne peux pas attendre. Ça va être un bon produit :-)
Damien Sawyer
2
@ DamienSawyer cela fait plus de 6 mois. Vos plaintes relatives à la vitesse ont-elles été réduites ou sont-elles toujours les mêmes?
WinEunuuchs2Unix
3
@RichTurner puis je vais lancer la mise à jour: D
Martijn van Wezel
15

Sous-système Windows pour Linux

J'utilise WSL sous Windows 10 depuis quelques mois. Enfin, je peux démarrer Windows pour les jeux tout en continuant d'accéder à l'invite bash et d'exécuter CLI et de nombreux programmes d'interface graphique. Il existe des limitations, telles qu'aucun des répertoires virtuels familiers du noyau Linux. La planification est nécessaire pour partager le même script Bash entre Ubuntu et WSL sur une machine à double démarrage.

Il y a beaucoup de choses que j'aimerais voir améliorées, mais je peux vivre avec elles telles quelles pendant environ un an.

Source fermée

Une chose à garder à l'esprit est que Microsoft est un système fermé, et vous ne rencontrez pas le flot de tierces parties écrivant des mises à jour telles que vous les appréciez sous Linux. Mais toutes choses considérées, vous achetez un nouvel ordinateur portable et il est livré avec Windows 10 de toute façon afin que vous puissiez dire que c'est "gratuit" au moins :)

Cygwin est contrôlé par Red Hat Linux, qui n'est pas connu pour donner des choses gratuitement. Leur distribution "libre" de Fedora apparaît comme un "terrain d’essai" pour certains.

Cycles de maintenance

Cygwin a 15 ans de mises à jour. Il convient de noter que le même chef de projet est en place depuis 2003. Il y a beaucoup de mainteneurs à temps plein et beaucoup plus de contributeurs bénévoles.

WSL fournit des mises à jour majeures deux fois par an, chaque printemps et chaque automne. Des mises à jour mineures hebdomadaires sont disponibles pour les utilisateurs figurant sur la liste d'abonnement de développeurs. Bien que Microsoft dispose de ressources pour engager des milliers de personnes dans le développement WSL, il semble que vous puissiez compter les membres de l’ équipe avec vos doigts.

Problèmes de vitesse

Vous verrez beaucoup de plaintes sur la vitesse WSL. Par exemple, la peinture d'écran prend beaucoup plus de temps dans Windows 10 que dans Ubuntu 16.04, autrement dit, vous pouvez voir le curseur bouger dans Windows 10:

WSL bash startup.gif

Il faut environ 5 secondes à l'écran de démarrage WSL Bash pour peindre. Par comparaison, il faut environ 1 1/2 seconde pour le même écran de démarrage dans Ubuntu 16.04:

Ubuntu terminal splash.gif

Cygwin a sa propre part de plaintes relatives à la vitesse avec Bash .


Affichage original ci-dessous pour référence historique.

La réponse ici a un an, alors je pense qu’une petite mise à jour s’impose. Sous Windows 10 Home, s’il s’agit de Windows 32 bits, cela signifie qu’il n’exécutera pas le sous-système Ubuntu / Windows 64 bits comme Microsoft nous le dit ici ( sous-système Windows Linux dans Win10 HOME BASIC ).

C'est comme un rêve devenu réalité de faire fonctionner Ubuntu sous Windows avec son support de jeu supérieur pour Nvidia, mais avant de vous épuiser et d'acheter un ordinateur portable neuf (ou usagé), assurez-vous qu'il est doté de Windows 10 64 bits et non de la version domestique 32 bits si vous voulez exécuter Ubuntu / Linux de manière native sous Windows. Sur les sites Web de Microsoft, ils se réfèrent en fait à l'édition d'anniversaire de Windows comme condition préalable à l'exécution du sous-système Windows pour Linux.


Toutefois, si vous ne voulez pas débourser plus de 200 USD pour Windows 10 et que vous disposez d'un ordinateur portable plus ancien exécutant Windows 8.1 64 bits comme moi, et que vous disposez d'un ordinateur portable encore plus ancien exécutant Windows Vista 64 bits comme moi, alors Cygwin est la réponse.

Cygwin prend en charge plusieurs versions de Windows en tant que liste de leurs sites Web :

On peut s’attendre à ce que Cygwin s’exécute sur toutes les versions récentes et publiées de Windows. Etat janvier 2016, cela inclut Windows Vista, Windows Server 2008 et toutes les versions ultérieures de Windows jusqu'à Windows 10 et Windows Server 2016. La version 32 bits de Cygwin fonctionne également dans l'environnement WOW64 32 bits sur les versions 64 bits publiées de Windows, la version 64 bits. version bit bien sûr uniquement sous Windows 64 bits.

N'oubliez pas que Cygwin ne peut faire que ce que le système d'exploitation sous-jacent prend en charge. De ce fait, Cygwin se comportera différemment et présentera différentes limitations pour les différentes versions de Windows.

WinEunuuchs2Unix
la source
2
La question est de savoir quelles sont les différences entre cygwin et bash pour Windows. Cygwin n'est même pas mentionné dans votre réponse. Veuillez préciser comment cela répond à la question.
Seth
@Seth, j'ai expliqué comment WSL est spécifique à la version alors que Cygwin fonctionne sur toutes les versions prises en charge de Windows. Merci d'avoir signalé mon oubli.
WinEunuuchs2Unix
1
Nous avons été très clairs sur le fait que WSL requiert Windows 64 bits et qu'il est disponible dans toutes les références Windows 10, à l'exception de l'actuel LTSB - WSL sera ajouté à la prochaine version de LTSB. WSL va également être inclus dans Windows Server publié à l'automne 2017.
Rich Turner
@RichTurner Votre site Web le définit clairement. Ce qui n’est pas clair pour moi (et ce n’est pas de votre faute), c’est la raison pour laquelle le fournisseur vend un processeur i7 quad core 7700 avec un processeur graphique NVIDIA 1050 et 12 Go de RAM système avec Windows 10 home. Quelqu'un a supprimé le lien d'origine, mais le voici . Ils n'épelent pas c'est 32 bits. Voulez-vous dire que chaque Windows 10 est en 64 bits?
WinEunuuchs2Unix
1
Il est vendu comme un PC de jeu. Étant donné que la plupart des joueurs n’ont pas besoin des fonctionnalités supplémentaires de Win10 Pro, ce dernier a choisi Home pour empêcher le client de payer pour quelque chose dont il n’aurait probablement pas besoin. Windows 10 est également proposé en variantes 32 bits pour ceux qui le souhaitent, mais je serais étonné que quelqu'un vende une machine avec plus de 4 Go de RAM et installe un système d'exploitation 32 bits, car le système d'exploitation et les applications qu'il exécute ne le pourraient pas. pour accéder à quoi que ce soit> 4 Go.
Rich Turner