GNU/Linux >> Linux Esercitazione >  >> Linux

Differenza tra GNUWin32 e cygwin

Cygwin è una libreria che si sforza di rendere i programmi UNIX in grado di essere compilati ed eseguiti su sistemi Windows con modifiche minime o senza modifiche e un set completo di strumenti e applicazioni UNIX in pacchetto compilati con questa libreria. È quasi un involucro completo attorno a Windows. Include un server X e un sacco di programmi che puoi aspettarti di trovare in una distribuzione Linux. È ottimo per le persone che vogliono imparare o utilizzare la riga di comando UNIX in Windows.

MSYS è principalmente un port degli strumenti UNIX necessari per creare pacchetti in stile GNU (con configure etc) su sistemi Windows con il compilatore MinGW. Utilizza una variante della libreria Cygwin modificata per sacrificare parte della compatibilità a favore dell'efficienza ed è più compatibile con Windows.

GnuWin32 è semplicemente un porting di alcuni degli strumenti GNU su Windows. Come MSYS, utilizza msvcrt.dll , oltre a una libreria aggiuntiva per fornire alcune funzioni di compatibilità UNIX. Il suo scopo principale sembra essere quello di consentire ai programmi Windows e ai file batch di utilizzare direttamente alcuni programmi e librerie GNU.

Per la maggior parte, forniscono tutti programmi UNIX su Windows, ma ci sono molte sottili differenze, tra cui:

  • Intento. Cygwin è per le persone che desiderano utilizzare UNIX sul proprio sistema operativo Windows. MSYS è per le persone che vogliono creare programmi Windows usando gli strumenti di compilazione GNU/UNIX. GnuWin32 è un porting di singoli programmi e librerie GNU su Windows.
  • File di testo, in particolare terminazioni di riga. Cygwin ti consente di utilizzare CR/LF o LF. MSYS prevede terminazioni di riga LF. I programmi GnuWin32 prevedono terminazioni di riga CR/LF.
  • Programmi forniti. In particolare, Cygwin ha molti più pacchetti e GnuWin32 non fornisce alcuna shell.

Per quanto riguarda git, è disponibile con Cygwin:questa versione può essere utilizzata in una directory di Windows (accessibile da /cygdrive ). Inoltre, come accennato, c'è msysgit.


Michael Slade ha ragione. Vorrei parlare dell'ambiente di utilizzo tipico.

Per motivi pratici utilizzo gnuwin come backend leggero per cose solo lontanamente correlate agli ambienti POSIX, mentre cygwin è più un POSIX in piena regola e persino un ambiente molto gnunix.

Inoltre gnuwin tende a gonfiarsi durante l'installazione di molti strumenti perché gli eseguibili utilizzano spesso librerie collegate staticamente. Cygwin, d'altra parte, offre un sacco di librerie dinamiche e eseguibili piuttosto piccoli. Quindi, se hai bisogno solo di pochi eseguibili, gnuwin ha bisogno di meno risorse. Se hai bisogno di un ambiente complesso, Cygwin sarà più efficiente.

gnuwin è anche spesso leggermente obsoleto, offre pochi software, nessun gestore di pacchetti/aggiornamenti. È un ambiente shell di base. Niente ssh, niente gcc, vim, niente perl, niente sql:puoi ottenerli da altre fonti, ma è difficile prevedere come coopereranno. Cygwin risolve tutti i problemi di cui sopra.

In altre parole, gnuwin è ottimo per l'installatore occasionale, semplicemente per inserire du, find e sort nel tuo $PATH. Per fare del vero lavoro POSIX usa cygwin.

Una volta avevo una seconda workstation Linux, quindi una VM Linux in esecuzione accanto al mio sistema Windows. Cygwin li ha resi obsoleti. È abbastanza buono per un sacco di cose risparmiando tonnellate di risorse rispetto a un computer dedicato o una VM.


Linux
  1. Differenza tra shell di accesso e shell non di accesso?

  2. Differenza tra 2>&-, 2>/dev/null, |&, &>/dev/null E>/dev/null 2>&1?

  3. Qual è la differenza tra Sudo Su – e Sudo Su –?

  4. Differenza tra Eot ed Eof?

  5. Differenza tra [0-9], [[:digit:]] e D?

Differenza tra apt e apt-get spiegato

La differenza tra Nss e Pam?

Qual è la differenza tra una console, un terminale e una shell?

Differenza tra $HOME e '~' (tilde)?

differenza tra netstat e ss in linux?

Differenza tra ${} e $() in Bash