Cygwin /ˈsɪɡwɪn/ - è una distribuzione di software libero, sviluppata originariamente da Cygnus Solutions, che consente a diverse versioni di Microsoft Windows di svolgere alcuni compiti in maniera esteticamente e funzionalmente simile a un sistema Unix. Lo scopo principale della sua esistenza è il porting di software che gira su sistemi POSIX (come i sistemi Linux, o quelli basati sulla BSD, e altri ancora) su Microsoft Windows, in maniera tale che sia necessaria poco più di una ricompilazione dai sorgenti degli stessi per ottenere un funzionamento corretto.

Cygwin
software
Logo
Logo
Cygwin in esecuzione su Windows XP
Cygwin in esecuzione su Windows XP
Cygwin in esecuzione su Windows XP
GenereEmulatore
SviluppatoreRed Hat ed altri
Data prima versione1995
Ultima versione3.5.3-1 (3 aprile 2024)
Sistema operativoMicrosoft Windows
LinguaggioC++
C
LicenzaGPL
(licenza libera)
Sito webwww.cygwin.com/

Descrizione modifica

Cygwin è costruito intorno a una libreria condivisa (cygwin1.dll) che implementa le chiamate di sistema dello standard POSIX per mezzo di chiamate di sistema Windows.[1] Include, tra le altre cose, una toolchain completa di sviluppo GNU (tra cui vi sono GCC e GDB, per citare gli applicativi più noti) per consentire lo svolgimento di elementari procedure di sviluppo software, e diversi programmi applicativi che si comportano in maniera simile alle loro controparti UNIX. Il supporto all'X Window System è stato aggiunto nel 2001.

In confronto a MinGW, che si appoggia alla libreria nativa MSVCRT (libreria C di runtime) inclusa in Windows, si può notare che MinGW utilizza meno memoria RAM, ha un impatto minore sulle memorie di massa, ed è distribuito con una licenza non-copyleft; per contro, MinGW implementa meno funzioni POSIX della libreria di Cygwin.

Cygwin si basa su UTF-8 e non supporta direttamente Unicode,[2] né supporta le codifiche dei caratteri che non siano già supportate da Windows stesso (che variano a seconda della localizzazione del sistema: ad esempio, per un utente russo, le uniche codifiche disponibili saranno CP1251 e CP866, mentre non sarà possibile utilizzare KOI8-R, ISO 8859-5 ecc.). Per ovviare al problema è fornito il programma iconv, che consente di ricodificare i dati, ma la conversione va effettuata manualmente.

Attualmente il software è disponibile sia in versione a 32 bit che in versione a 64 bit.

È possibile iscriversi a una delle mailing list che hanno per argomento Cygwin alla pagina apposita.

Licenza modifica

Red Hat concede in licenza la libreria di Cygwin secondo la GNU General Public License,[3] con un'eccezione che permette il collegamento della stessa a ogni software libero la cui licenza sia conforme ai criteri della Open Source Definition[senza fonte]. Red Hat vende anche licenze commerciali a coloro che desiderano ridistribuire programmi che usano la libreria di Cygwin secondo crismi tipici del software proprietario.[senza fonte]

A partire dalla versione 2.5.2, Cygwin è disponibile anche con licenza LGPL, che consente maggiori opportunità per utilizzi di tipo commerciale.[4]

Storia modifica

Cygwin nacque nel 1995 come progetto di Steve Chamberlain, un ingegnere che lavorava per Cygnus e che si rese conto che Windows NT e Windows 95 utilizzavano il formato COFF per i loro file oggetto, e che il progetto GNU supportava già l'architettura x86 e il formato COFF, e la libreria C newlib; quindi, almeno in teoria, riconfigurare la GCC e ottenere un cross-compilatore che generasse eseguibili in grado di funzionare su Windows non avrebbe dovuto essere troppo complicato. Questa teoria fu presto confermata dalla pratica, con la costruzione di un prototipo.

Il passo successivo fu quello di creare un compilatore GNU nativo per Windows: questo richiedeva, però, un livello di emulazione di UNIX sufficiente a consentire il funzionamento dello shell script GNU configure, che richiede una shell come bash, che a sua volta richiede capacità di fork e funzioni di input/output. Windows fornisce funzionalità simili, sicché la libreria Cygwin deve soltanto tradurre le chiamate e gestire dati privati, come i descrittori di file.

Nel 1996, altri sviluppatori si unirono al progetto, poiché era chiaro che Cygwin sarebbe divenuto una maniera utile per far funzionare i tool embedded di Cygnus sui sistemi operativi Windows (l'approccio utilizzato in precedenza consisteva nell'utilizzo di DJGPP). Cygwin destava l'interesse in particolare perché era possibile fare una cross-compilazione trina: ad esempio utilizzare una workstation Sun non più all'avanguardia per generare un cross-compilatore Windows-a-MIPS, impiegandoci comunque meno tempo che con un PC dell'epoca.

Nell'ottobre del 1999 Cygnus Solutions fu acquisita da Red Hat[5], la quale provvide a rendere disponibile Cygwin anche con licenza GPL, e che da allora lo sviluppa insieme con TimeSys e altri.

Note modifica

  1. ^ (EN) This is the home of the Cygwin project, su Cygwin. URL consultato il 28 agosto 2020.
  2. ^ (EN) Cygwin FAQ (4.18), su Cygwin. URL consultato il 28 agosto 2020.
  3. ^ (EN) What are the licensing terms?, su Cygwin. URL consultato il 28 agosto 2020.
  4. ^ (EN) Cygwin library now available under GNU Lesser General Public License, su Red Hat, 23 giugno 2016. URL consultato il 28 agosto 2020.
  5. ^ (EN) Red Hat History, su redhat.com. URL consultato il 22 marzo 2009.

Voci correlate modifica

  • Cygwin/X è un'implementazione dell'X Window System che gira su Cygwin.
  • MinGW è un port degli strumenti di sviluppo GNU su Windows.
  • DJGPP è una distribuzione simile a Cygwin per sistemi operativi DOS e processori a 32 bit.
  • Microsoft Windows Services for UNIX è un prodotto Microsoft con caratteristiche simili a quelle di Cygwin; ha dalla sua parte la velocità d'esecuzione, ma non è possibile eseguirlo su una versione di Windows destinata all'utenza consumer, come Windows XP Home Edition.
  • UWIN permette la compilazione e l'esecuzione di applicazioni UNIX sulle versioni di Windows a 32 bit.
  • coLinux è un software che permette l'esecuzione di un sistema GNU/Linux completo come processo di Windows.
  • KDE su Cygwin

Altri progetti modifica

Collegamenti esterni modifica

  Portale Software libero: accedi alle voci di Wikipedia che trattano di Software libero