Diferencia entre GNUWin32 y cygwin

Parece que no puedo entender la diferencia entre los dos.

Parece que uno (GNUWin32) es una capa en la parte superior de las ventanas (comoMSYS) y el
other (cygwin) es otra cosa (?)

Qué significa eso? ¿Cuándo usaría uno sobre el otro? ¿Son los dos adecuados para la misma cosa?

Quiero usarlo principalmente para git, pero quiero mantener mis opciones abiertas para aprender y hacer todas las cosas * nixy.

¿Hay otra herramienta para esto? Serámsysgit ser mejor adecuado para esto?
¿Hay recursos que atraviesen las diferencias de todas estas plataformas * nix de forma exhaustiva?

Respuestas a la pregunta(1)

Su respuesta a la pregunta