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 上运行。