原 Cygnus 出品(已被红帽收购),目前是 RedHat 名下的项目。项目的目的是提供运行于 Windows 平台的类 Unix 环境(以 GNU 工具为代表),为了到达这个目的,Cygwin 提供了一套抽象层 dll,用于将部分 Posix 调用转换成 Windows 的 API 调用,实现相关功能。这里面最典型的,最基本的模拟层就是那个 cygwin1.dll。除此之外,随着 Linux 体系的发展壮大,目前的 Cygwin 已经不仅仅提供 POSIX 兼容,因此也顺带多了更多模拟层的依靠关系。
MinGW
Minimalist GNU for Windows,用于开发原生(32位) Windows 应用的开发环境。它主要提供了针对 win32 应用的 GCC、GNU binutils 等工具,以及对等于 Windows SDK(的子集)的头文件和用于 MinGW 版本 linker 的库文件(so、a等,而不是 VC 的 lib)。
A complete runtime environment for gcc&llvm for 32 and 64 bit Windows.
前面提到的 MinGW,是针对 32 位 Windows 应用开发的。MinGW-w64 则是新一代的 MinGW,支持更多的 API,支持 64 位应用开发,甚至支持 32 位 host 编译 64 位应用以及反过来的“交叉”编译。除此之外,它本身也有 32 位和 64 位不同版本,别的与 MinGW 相同。
MSYS2
Software Distribution and Building Platform for Windows
由于 MinGW 万年不更新,MSYS 更是,Cygwin的许多新功能 MSYS 没有同步过来,于是 Alex 等人建立了新一代的 MSYS 项目。仍然是 fork 了 Cygwin(较新版),但有个更良好的包管理器 pacman
MSYS2 的主要重点是为本地 Windows 软件提供构建环境,并且使用 Cygwin 的部分保持在最低限度。 MSYS2 为 GCC、mingw-w64、CPython、CMake、Meson、OpenSSL、FFmpeg、Rust、Ruby 等提供最新的原生构建。
WSL
Windows Subsystem for Linux(实用于Windows的Linux子体系)
WSL的核心是模拟Linux内核,因而文件可放在本地,缺点是兼容性与文件体系性能比力差。
2022-12-16 - Dropping Windows 7 support for the MSYS2 installer
The latest release of the MSYS2 installer (v2022-12-16) has dropped support for Windows 7. It will show an error message and abort if started on Windows 7.