2012-05-23 14 views
21

Parece que no puedo entender la diferencia entre los dos.Diferencia entre GNUWin32 y cygwin

Parece que uno (GNUWin32) es una capa en la parte superior de las ventanas (como MSYS) y la otra
(cygwin) es algo más (?)

¿Qué significa eso? ¿Cuándo usaría uno sobre el otro? ¿Están ambos preparados para lo mismo?

Quiero usarlo principalmente para git pero quiero mantener mis opciones abiertas para aprender y hacer todo * nixy.

¿Hay alguna otra herramienta para esto? ¿Será mejor msysgit para esto?
¿Existen recursos que superen exhaustivamente las diferencias de todas estas plataformas * nix?

Respuesta

34

Cygwin es una biblioteca que se esfuerza por hacer que los programas de UNIX puedan compilarse y ejecutarse en sistemas Windows con modificaciones mínimas o sin modificaciones, y un conjunto completo de herramientas empaquetadas de UNIX compiladas con esta biblioteca. Es casi una envoltura completa de Windows. Incluye un servidor X y una gran cantidad de los programas que puede esperar encontrar en una distribución de Linux. Es ideal para las personas que desean aprender o usar la línea de comandos de UNIX en Windows.

MSYS es principalmente un puerto de las herramientas UNIX necesarias para compilar paquetes de estilo GNU (con un configure etc.) en sistemas Windows con el compilador MinGW. Utiliza una variante de la biblioteca Cygwin modificada para sacrificar cierta compatibilidad por eficiencia y es más amigable para Windows.

GnuWin32 es simplemente un puerto de algunas de las herramientas de GNU para Windows. Al igual que MSYS, usa msvcrt.dll, así como una biblioteca adicional para proporcionar algunas funciones de compatibilidad de UNIX. Su objetivo principal parece ser permitir que los programas de Windows y los archivos por lotes usen algunos de los programas y bibliotecas de GNU directamente.

En su mayor parte, todos ellos proporcionan programas UNIX en Windows, pero hay muchas diferencias sutiles, incluyendo:

  • Intención. Cygwin es para las personas que desean usar UNIX en su sistema operativo Windows. MSYS es para las personas que desean construir programas de Windows utilizando las herramientas de compilación GNU/UNIX. GnuWin32 es un puerto de programas y bibliotecas GNU individuales para Windows.
  • Archivos de texto, particularmente terminaciones de línea. Cygwin le permite usar CR/LF o LF. MSYS espera terminaciones de línea LF. Los programas GnuWin32 esperan terminaciones de línea CR/LF.
  • Programas suministrados. En particular, Cygwin tiene muchos más paquetes y GnuWin32 no proporciona ningún cartucho.

En cuanto a git, está disponible con Cygwin; esta versión se puede utilizar en un directorio de Windows (accesible bajo /cygdrive). Además, como se mencionó, existe msysgit.

+3

Eso es incorrecto con respecto a MSYS. Los programas MSYS se basan en la DLL MSYS, que es una bifurcación de la DLL de Cygwin, y se crean utilizando una cadena de herramientas MSYS especial en lugar de la cadena de herramientas MinGW. Sin embargo, el objetivo de MSYS es proporcionar un entorno tipo Unix para crear programas nativos de Windows con la cadena de herramientas MinGW. – ak2

+4

¡Respuesta impresionante! ¿Cómo se relaciona [** Gow **] (https://github.com/bmatzelle/gow/wiki)? – qwertymk

+0

no lo sé, nunca lo usé. Siéntase libre de mencionarlo en un ansewr. –