Windows 7 中基于 UNIX 的应用程序的子系统是否与 cygwin 相同

aaj*_*aal 6 unix windows-7 cygwin

我从 microsoft.com 站点下载了 Subsystem for UNIX-based Applications (Windows 7)。在安装过程中,我看到了 Cygwin 屏幕,但我已经有了 Cygwin。它比 Cygwin 多吗?它似乎有以下内容,可能比 Cygwin 还多:

  • 基本实用程序
  • SVR-5 实用程序
  • 基础SDK
  • 软件开发工具包
  • GNU 实用程序
  • UNIX Perl
  • Visual Studio 调试器插件

它比 Cygwin 多吗?如果是,是否会影响当前安装的 Cygwin?

0xC*_*22L 5

不它不是。事实上,基于 UNIX 的应用程序子系统 (SUA),以前称为 Interix,包括几个 GPL 的应用程序,因此 MS 本身并不反对 GPL。

与 Cygwin 不同的是,该子系统扩展了先前 Windows 版本(我认为直到包括 XP)提供的 POSIX 子系统,并且是Windows的实际子系统,就像 Win32 子系统一样。

诚然,Win32 子系统在系统中具有特殊地位,因为它具有对某些资源的特权访问权限,但通常 Windows 的体系结构允许多个子系统并行运行。据称,最初包含 POSIX 子系统是为了满足美国政府购买软件的一些要求。

Cygwin 在许多地方模仿了旧的 Interix(过去仅在 NT4 和 2000 时代才可商用)的行为,但由于某些原因不能提供所有相同的语义。IIRC Cygwin 实际上基于 Win32 子系统,而 SUA 本身就是一个子系统。我手头没有 Cygwin,但有些区别应该是 Cygwin 可能能够也可能无法处理区分大小写的文件名 - 即并行的几个不同的文件,例如foo,foOFOO在同一文件夹中 - 尽管 NT 平台和当然,NTFS 能够处理这个问题。然而,就我所知,Win32 保留了大小写,但它并不关心它。另一方面,SUA 确实如此。您还可以foo.在 SUA 中创建带有尾随点(例如)的文件,而在 Win32(以及可能的 Cygwin)中则无法创建。

但是,像 Cygwin 一样,SUA 也有性能损失的巨大缺点。我最近在 Windows 2008 Server R2 上尝试了它,与 Cygwin 相比,它相当缓慢。然而,单独文件系统上的不同语义可以提供优势,例如使用 GNU Autotools,因为它们可能依赖于仅在 SUA 忠实模仿的 unixoid 系统上常见的功能(或更确切地说语义),但 Cygwin 不能。

当然,Fran 是对的,您没有使用 Cygwin 获得 VS 的调试器插件。然而,其余的也应该在安装过程中通过“包管理器”包含在 Cygwin 中。


Fra*_*ran 1

它绝对与Cygwin不一样我不知道基于 UNIX 应用程序的子系统中是否包含 Cygwin 应用程序,尽管我非常怀疑 MS 正在重新分发 Cygwin 二进制文件(它们是开源的)。

从上面的列表中,我认为只有 Visual Studio 调试器插件在 Cygwin 中没有等效项。您可以在以下位置查看 Cygwin 中的可用软件包列表:http://cygwin.com/packages/