我从 microsoft.com 网站下载了 Subsystem for UNIX-based Applications (Windows 7)。在安装过程中,我看到了 Cygwin 屏幕,但我已经安装了 Cygwin。它是否比 Cygwin 还多?它似乎具有以下内容,可能比 Cygwin 还多:
- 基本工具
- SVR-5 实用工具
- 基础 SDK
- GNU 软件开发工具包
- GNU 实用程序
- UNIX 中的 Perl
- Visual Studio 调试器插件
是不是比 Cygwin 多?如果是,会影响目前安装的 Cygwin 吗?
答案1
不是。事实上,基于 UNIX 的应用程序子系统 (SUA)(原名 Interix)包含多个 GPL 应用程序,因此 MS 本身并不违反 GPL。
与 Cygwin 不同的是,该子系统扩展了以前 Windows 版本(我认为直到 XP)提供的 POSIX 子系统,并且是一个实际的子系统对于 Windows 来说,就像 Win32 子系统一样。
不可否认的是,Win32 子系统在系统中具有特殊地位,因为它对某些资源具有特权访问权,但一般来说,Windows 的体系结构允许多个子系统并行运行。据称,POSIX 子系统最初是为了满足美国政府软件采购的一些要求而纳入的。
Cygwin 在很多地方模仿了旧版 Interix 的行为(后者仅在 NT4 和 2000 时期可供商业使用),但是由于某些原因无法提供所有相同的语义。如果我没记错的话,Cygwin 实际上基于 Win32 子系统,而 SUA 本身就是一个子系统。我手边没有 Cygwin,但是它们之间的区别应该是 Cygwin 可能无法处理区分大小写的文件名 - 即并行的几个不同文件,例如foo
,foO
和FOO
位于同一个文件夹中 - 尽管 NT 平台和 NTFS 可以处理这种情况。但是,据我所知,Win32 保留了大小写,但它并不关心大小写。另一方面,SUA 会保留大小写。您还可以foo.
在 SUA 中创建带有尾随点(例如 )的文件,但在 Win32(以及 Cygwin)中却不能。
不过,SUA 和 Cygwin 一样,存在性能损失这一巨大缺点。我最近在 Windows 2008 Server R2 上尝试了它,与 Cygwin 相比,它相当迟缓。尽管如此,文件系统上的不同语义本身可以提供优势,例如使用 GNU Autotools,因为它们可能依赖于在 unixoid 系统上常见的功能(或者说语义),SUA 可以忠实地模仿这些功能,但 Cygwin 不能。
当然,Fran 是对的,Cygwin 不会提供 VS 调试器插件。不过,安装过程中,Cygwin 还应通过“包管理器”包含其余部分。
答案2
这绝对不是相同的作为赛格威。我不知道是否包含 Cygwin 应用程序基于 UNIX 的应用程序子系统,但我非常怀疑微软是否重新分发 Cygwin 二进制文件(开源)。
从上面的列表来看,我认为只有 Visual Studio 调试器插件在 Cygwin 中没有对应项。您可以在以下位置查看 Cygwin 中可用的软件包列表http://cygwin.com/packages/。