57

传统上,MSYS bash 被认为不如 Cygwin bash。前者是 MinGW 中用于运行 autoconf 脚本的辅助工具。但现在有 MinGW-w64 和 MSYS2。后者附带了一个像包管理器这样的甜蜜 pacman 和像 zsh 这样的优雅 shell,所以我想知道在仿真层中是否还有差距。

虽然 MinGW* 应用程序是 Windows 本机可执行文件,但 MSYS2 软件需要 POSIX 仿真层,就像 Cygwin 一样。至少对于普通用户来说,很难发现两者之间的差异。

  • 两个仿真层(如果有)之间的功能差异是什么?
  • 哪种仿真更快(更高效)?
4

2 回答 2

68

传统上,MSYS bash 一直较差,但主要是因为 Cygwin 仍在积极开发中,而 MSYS 没有。MSYS 从 Cygwin 版本 1.3.3 分叉并且从未重新同步,而 MSYS2 会定期与 Cygwin 项目重新同步。

我们没有“像包管理器一样甜美的 pacman”,我们尽可能直接地重新编译 Arch Linux 的 pacman 包管理器。

MSYS2 没有 cygwin.dll 但它确实有 msys-2.0.dll 做同样的事情(还有更多)。具体来说,看起来像路径和 PATH 环境的参数。var 在运行 Windows 原生软件时转换为 Windows 形式。

至于它是否更慢,我预计差异很小,但由于额外的转换工作,MSYS2 会慢一点。再说一次,您在 MSYS2 中运行的 Windows 本地软件(例如 MinGW-w64 编译器)可能比在 Cygwin 中运行的更多,因此这将使事情重新回到对 MSYS2 有利的方向。

于 2014-09-10T00:19:32.637 回答
11

据我了解,MSYS2 是 Cygwin 的一个分支,主要目标是提供使用 MinGW-w64 包的可能性。该目标是以牺牲可用软件的总数为代价来实现的。比较MSYS2Cygwin的列表。

基本上,仅此而已。因此,虽然您不需要在 MinGW-w64 下编译某些东西,但您几乎没有任何理由使用 MSYS2 而不是原始的 Cygwin。

于 2014-09-09T20:46:08.190 回答