传统上,MSYS bash 被认为不如 Cygwin bash。
前者是 MinGW 中的一个辅助工具,用于运行 autoconf 脚本。
但是现在有了 MinGW-w64 和 MSYS2。后者带有像包管理器这样的甜美 pacman 和像 zsh 这样优雅的 shell,所以我想知道在仿真层是否还有差距。
虽然 MinGW* 应用程序是 Windows 原生可执行文件,但 MSYS2 软件需要一个 POSIX 仿真层,就像 Cygwin 一样。至少对于普通用户来说,很难发现两者之间的区别。
- 两个仿真层之间的功能差异是什么(如果有的话)?
- 哪种仿真速度更快(效率更高)?
传统上 MSYS bash 一直处于劣势,但主要是因为 Cygwin 仍在积极开发中,而 MSYS 则没有。 MSYS 从 Cygwin 版本 1.3.3 fork 并且从未重新同步,而 MSYS2 定期与 Cygwin 项目重新同步。
我们没有“像 pacman 这样的包管理器”,我们尽可能直接重新编译 Arch Linux 的 pacman 包管理器。
MSYS2 没有 cygwin.dll,但它有 msys-2.0.dll,它做同样的事情(还有更多)。具体来说,看起来像路径和 PATH env 的参数。 var 在运行 Windows 原生软件时转换为 Windows 窗体。
至于它是否更慢,我希望差别很小,但由于额外的转换工作,MSYS2 会稍微慢一些。话又说回来,与从 Cygwin 相比,您在 MSYS2(例如 MinGW-w64 编译器)中运行的 Windows native 软件可能会更多,因此这将使事情回到 MSYS2 的有利位置。