Разница между GNUWin32 и cygwin

Я не могу понять разницу между этими двумя понятиями.

Похоже что один (GNUWin32) это слой поверх окон (например,MSYS) и
 Другой (Cygwin) это что-то еще (?)

Что это значит? Когда бы я использовал один поверх другого? Они оба подходят для одного и того же?

Я хочу использовать его в основном для git, но хочу оставить свои возможности открытыми для обучения и выполнения всех задач * nixy.

Есть ли другой инструмент для этого? Будетmsysgit быть лучше подходит для этого?
Существуют ли какие-либо ресурсы, которые исчерпывающе изучают различия всех этих * nix-платформ?

Ответы на вопрос(1)

Ваш ответ на вопрос