Diferença entre o GNUWin32 e o cygwin

Eu não consigo entender a diferença entre os dois.

Parece que um (GNUWin32) é uma camada no topo das janelas (comoMSYS) e o
outro (cygwin) é outra coisa (?)

O que isso significa? Quando eu usaria um sobre o outro? Ambos são adequados para a mesma coisa?

Eu quero usá-lo principalmente para o git, mas quero manter minhas opções abertas para aprender e fazer todas as coisas * nixy.

Existe outra ferramenta para isso? Vaimsysgit ser mais adequado para isso?
Existem recursos que passam pelas diferenças de todas essas plataformas * nix exaustivamente?

questionAnswers(1)

yourAnswerToTheQuestion