web-dev-qa-db-fra.com

Différences entre MSYS2 et Cygwin

Traditionnellement, MSH bash a été considéré comme inférieur à Cygwin bash. Le premier était un outil auxiliaire à l'intérieur de MinGW destiné à exécuter des scripts autoconf. Mais maintenant, il y a MinGW-w64 et MSYS2. Ce dernier est livré avec un pacman doux comme le gestionnaire de paquets et des coques élégantes comme zsh, donc je me demande s'il y a encore un écart dans la couche d'émulation.

Alors que les applications MinGW * sont des exécutables natifs de Windows, le logiciel MSYS2 nécessite une couche d'émulation POSIX, tout comme Cygwin. Au moins pour un utilisateur occasionnel, il est difficile de repérer les différences entre les deux.

  • Quelles sont les différences fonctionnelles entre les deux couches d'émulation (le cas échéant)?
  • Quelle émulation est plus rapide (plus efficace)?
46
antonio

Traditionnellement, MSYS bash a été inférieur, mais principalement parce que Cygwin est resté en développement actif, contrairement à MSYS. MSYS est issu de Cygwin version 1.3.3 et n'a jamais été resynchronisé, tandis que MSYS2 se resynchronise régulièrement avec le projet Cygwin.

Nous n'avons pas de "doux pacman comme gestionnaire de paquets", nous avons une recompilation aussi directe que possible du gestionnaire de paquets pacman d'Arch Linux.

MSYS2 n'a pas cygwin.dll mais il a msys-2.0.dll qui fait la même chose (et quelques autres d'ailleurs). Plus précisément, des arguments qui ressemblent à des chemins et à l’envoi PATH. var sont convertis au format Windows lors de l'exécution d'un logiciel natif Windows.

Quant à savoir s'il est plus lent, je m'attends à ce qu'il y ait très peu de différence, mais MSYS2 serait un peu plus lent en raison du travail de conversion supplémentaire. Là encore, il y a de fortes chances que vous exécutiez plus de logiciels natifs Windows à partir de MSYS2 (tels que les compilateurs MinGW-w64) que vous ne le feriez à partir de Cygwin, de sorte que les choses reviendront en faveur de MSYS2.

54
Ray Donnelly

Si je comprends bien, MSYS2 est un fork de Cygwin avec pour objectif principal de fournir la possibilité d'utiliser les packages MinGW-w64. Cet objectif est atteint au détriment du nombre total de logiciels disponibles. Comparez la liste de celle de MSYS2 et Cygwin .

Essentiellement, c'est tout. Ainsi, bien que vous n'ayez pas besoin de compiler quelque chose sous MinGW-w64, vous n'auriez guère de raison d'utiliser MSYS2 plutôt que Cygwin d'origine.

9
Dmitry Alexandrov