Cygwin,原 Cygnus 出品(已被紅帽收購),目前是 RedHat 名下的項目。項目的目的是提供運行於 Windows 平臺的類 Unix 環境(以 GNU 工具爲表明),爲了達到這個目的,Cygwin 提供了一套抽象層 dll,用於將部分 Posix 調用轉換成 Windows 的 API 調用,實現相關功能。這裏面最典型的,最基本的模擬層就是那個 cygwin1.dll。除此以外,隨着 Linux 系統的發展壯大,目前的 Cygwin 已經不只僅提供 POSIX 兼容,所以也順帶多了更多模擬層的依賴關係。
Cygwin 的目錄結構基本照搬了 linux 的樣子,但同時,也兼容了 Windows 的許多功能:大部分應用使用 Unix 風格的路徑,Windows的盤符經過相似掛載點的方式提供給 Cygwin 使用;Cygwin 中既能夠運行 Cygwin 的應用(依賴模擬層),又能夠運行 Windows 應用,而傳遞給應用的路徑會通過它的模擬層變換,以此保證程序運行不會出錯。
區別(小結):Cygwin是模擬 POSIX 系統,源碼移植 Linux 應用到 Windows 下;MinGW 是用於開發 Windows 應用的開發環境。
聯繫:均提供了部分 Linux 下的應用,多跑在 Windows 上;MinGW 做爲 Cygwin 下的軟件包,能夠在 Cygwin 上運行。