998Fermer1000
Kevin KoflerLe 23/11/2016 à 05:37
MinGW lui-même est très intégré à Windows (c'est du Win32/Win64 natif), mais ne fait pas tourner le code POSIX, notamment bash. Il y a des shells qui ont été portés en Win32 (et Win64?) natif, mais la compatibilité avec les scripts existants, qui attendent aussi un environnement POSIX, est un problème.

Le projet MinGW a donc inventé MSYS, une "version light" de Cygwin avec quelques bidouillages supplémentaires (en plus de ceux que Cygwin a déjà) pour l'intégration Win32/Win64, genre la traduction des chemins passés en paramètre. MSYS permet notamment de faire tourner bash et les scripts configure générés par autoconf. Et là, c'est (comme Cygwin) une implémentation de POSIX par dessus Win32/Win64, où un certain effort d'intégration a été fait, mais souvent très bidouillé. (Par exemple, si tu passes un paramètre à un programme Win32/Win64 natif qui ressemble à un chemin d'accès, il sera "converti" et donc cassé. C'est d'autant plus problématique que les programmes Windows attendent souvent des switches /x, qu'il faut écrire //x pour que ça passe.)

Là, Microsoft propose une implémentation totalement différente, POSIX à côté de Win32/Win64 plutôt que par dessus, qui a des avantages et des inconvénients différents.

Comme ça fait longtemps que je n'utilise plus Windows, et comme donc je n'ai essayé ni MSYS 2, ni la solution de Microsoft, seulement MSYS 1 et un Cygwin de la même époque, je ne peux pas dire quelle solution fonctionne mieux globalement.