技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152
MSYS2
网上有很多文章讲它们之间的区别与联系,初学者看的一头雾水,在知乎上看到这篇文章讲的很清楚,容易理解。
在讲区别联系之前,我们先看一下这几个东东的前世今生。
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 应用,而传递给应用的路径会经过它的模拟层变换,以此保证程序运行不会出错。
由于它的模拟层实现了相当良好的 Posix 兼容,人们试着将许多重要的 Linux/BSD 应用移植到了Cygwin下,使得Cygwin越来越大,功能也越来越丰富,以至于目前很多人直接把将Linux应用移植到Window