Cygwin

Un article de Wikipédia, l'encyclopédie libre.
Cygwin
Description de l'image Cygwin logo.svg.
Description de l'image Cygwin X11 rootless WinXP.png.
Informations
Développé par Red Hat, Cygnus Solutions et CygwinVoir et modifier les données sur Wikidata
Première version Voir et modifier les données sur Wikidata
Dernière version 3.5.3-1 ()[1]Voir et modifier les données sur Wikidata
Dépôt cygwin.com/git/newlib-cygwin.git, cygwin.com/git/newlib-cygwin.git et git://cygwin.com/git/newlib-cygwin.gitVoir et modifier les données sur Wikidata
Écrit en C++ et CVoir et modifier les données sur Wikidata
Système d'exploitation Microsoft WindowsVoir et modifier les données sur Wikidata
Environnement Microsoft WindowsVoir et modifier les données sur Wikidata
Type FrameworkVoir et modifier les données sur Wikidata
Licence Licence publique générale GNU version 3 et licence publique générale limitée GNU version 3.0 ou ultérieure (d)Voir et modifier les données sur Wikidata
Site web cygwin.comVoir et modifier les données sur Wikidata

Cygwin continu Cygwin/X, un serveur d'affichage.

Cygwin est une collection de logiciels libres à l'origine développés par Cygnus Solutions permettant à différentes versions de Windows de Microsoft d'émuler un système Unix. Il vise principalement l'adaptation à Windows de logiciels qui fonctionnent sur des systèmes POSIX (tels que les systèmes GNU/Linux, BSD, et Unix). Cygwin simule un environnement Unix sous Windows, rendant possible l'exécution de ces logiciels après une simple compilation[2]. Les programmes ainsi portés sur Cygwin, fonctionnent mieux sur Windows NT[3], Windows 2000 et Windows XP que sur les versions antérieures de Windows, mais certains peuvent s'exécuter de façon tout à fait acceptable sur Windows 95 et Windows 98. La version 1.5.24-2 du 31 janvier 2007 est la dernière à être officiellement compatible avec Windows 95/98/Me.

Cygwin est actuellement maintenu par Red Hat et d'autres programmeurs.

Présentation[modifier | modifier le code]

Cygwin se compose :

Le développement de Cygwin remonte à 1995[6]. Dès 1999, Cygnus Solutions avait mis au point une série de logiciels (Cygnus Insight, Source-Navigator et Code Fusion) offrant à l'utilisateur de MS Windows un environnement de programmation de type Unix, et Cygwin marqua la synthèse de ces efforts[3] ; le système X Window, XFree86 a été implémenté en 2001 sous Cygwin (nom : Cygwin/X). Cette implémentation a ensuite été remplacée par X.Org en raison de l'incompatibilité de XFree86 avec la licence GNU.

La bibliothèque Cygwin est une DLL nommée cygwin1.dll. Il s'agit d'une API simulant les principales fonctionnalités d'un environnement de type Unix sous Windows, sans utiliser les bibliothèques dynamiques (dll) propres à Windows ; le projet MinGW (lancé en 2000) utilise au contraire autant que possible les dll de Windows pour atteindre un objectif similaire. Les besoins de MinGW, en mémoire et espace disque, sont moins importants que ceux de la bibliothèque Cygwin. De plus, MinGW est distribuée sous une licence moins contraignante, et peut se lier à n'importe quel logiciel, mais n'implémente pas autant de spécifications POSIX que le fait la bibliothèque de Cygwin[7].

Cygwin rend possible en particulier l'exécution d'un shell (bash le plus souvent) dans un environnement Windows, ce qui permet d'utiliser un PC sous Windows de manière très similaire à un ordinateur sous une version d'Unix. Pour porter les codes POSIX C sous Windows, Cygwin intègre un interpréteur de séquence d'échappement ANSI pour convertir les frappes clavier sous la console Windows : cet interpréteur utilise des descripteurs de fichier Cygwin, et le rendu est assuré grâce aux primitives graphiques de cygwin1.dll. Il est même possible de lancer une interface graphique comme surcouche de Cygwin, par exemple KDE ou GNOME[8].

Licence[modifier | modifier le code]

Red Hat avait placé la bibliothèque de Cygwin sous la licence libre GNU GPLv3 mais donnait la possibilité à tout logiciel libre dont la licence se conforme aux conditions de source disponible de se lier à la bibliothèque (Red Hat rend également possible de distribuer des programmes sous licence commerciale et d'intégrer la bibliothèque Cygwin dans des distributions propriétaires). Au mois de juin 2016, la société a publié qu'à partir de la Version 2.5.2, les DLL de Cygwin passaient sous licence LGPLv3[9] : ces dll peuvent donc être utilisés sans contrainte par tout programme propriétaire.

Cygwin comme plate-forme de développement[modifier | modifier le code]

Cygwin est souvent utilisé pour exécuter les outils de compilation gcc sous Windows : associés à un éditeur de texte, Cygwin et gcc fournissent ainsi un environnement de développement libre et gratuit pour ce système d'exploitation. Les exécutables compilés avec gcc requièrent la présence de la bibliothèque Cygwin (cygwin1.dll) pour s'exécuter.

Cygwin est livré avec d'autres outils pour les développeurs : make bien sûr, mais aussi des langages de scripts comme Perl, Python, Tcl et Ruby.

Notes et références[modifier | modifier le code]

  1. « cygwin 3.5.3-1 », (consulté le )
  2. (en) « Cygwin : What is it/ What it isn't », sur Home of the Cygwin project (consulté le )
  3. a et b (en) Daniel Lazenby, « Cygwin: For Windows NT », Linux Journal, no 75,‎ , p. 14 (lire en ligne)
  4. (en) Machtelt Garrels, « Cygwin: Changing the Face of Windows Software », Linux Journal,‎ (lire en ligne)
  5. (en) « Cygwin- FAQ », sur Home of the Cygwin project (consulté le )
  6. (en) Geoffrey J. Noer, « Cygwin32: A Free Win32 Porting Layer for UNIX® Applications », USENIX Windows NT Symposium, Seattle (Washington), no 2,‎ (lire en ligne [PDF])
  7. Devyn C. Johnson, « Introducing MinGW and Cygwin », sur Forum Linux.org, (consulté le )
  8. (en) « Cygwin Ports project », sur sourceware.org (consulté le )
  9. (en) Corinna Vinschen, développeur Cygwin pour Red Hat, Inc., « Cygwin library now available under GNU LGPL », sur Cygwin Mailing List (consulté le )

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]