Interix和Cygwin有什么实际的区别?

Interix和Cygwin似乎在Windows中提供了一个类似于Unix的用户环境。 两者的实际区别是什么,例如:

  • 类Unix的“感觉”
  • 性能
  • 软件包的可用性/易于编译从互联网上下载的随机软件
  • 与Windows应用程序和工具集成
  • 与虚拟机集成/兼容(例如,Interix和Ubuntu虚拟机可能共享相同的“主目录”)
  • 用户群/社区支持级别的大小

我知道的一个区别是,Interix需要Windows 7企业版或旗舰版; Cygwin会运行任何东西。

    我以前只使用Windows 2008上的Windows SFU,但我相信这是基于Interix的。 我偶尔玩过cygwin,但数量不是很多,所以如果我在这里说明了一些明显的错误,那么请有人纠正我。

    • 类Unix的感觉: Interix赢得了这一个。 环境感觉更“完整”。 我不知道如何把它。 Interix与win32子系统一起运行,cygwin在其上运行。 所以,interix是Windows核心土地上的“头等公民”。 像psdf东西很好。
    • 性能:没有做过任何重大的性能testing,我 Interix也赢得了这个。 再次,它运行在一个较低的水平。 你不只是运行与链接POSIX兼容性DLL的Win32应用程序。
    • 软件包/随机软件: Cygwin赢得这个有两个原因。 首先,cygwin更为人所知。 很多Unixy软件都会支持它的怪癖。 您也可以从GUI安装程序中轻松安装。 Interix没有(我相信)有这样的内置的东西。 当然,你可以下载一些东西,使用gcc(我认为你可以预先编译)编译它,然后祈祷它可以正常工作,但这有点像将软件移植到Unix的任何其他随机变体(如Solaris或AIX) – 一些事情会起作用,其他的事情会试图咬你的腿,杀害你的孩子。
    • 与Windows应用程序和工具集成:说实话,这两个吸引。 如果你有一个运行在cygwin或者Interix中的Apache服务器,那么它肯定能够通过TCP和Win32程序进行通信,但是就这么简单。 从内部interix,我相信你可以杀死Win32程序,并使用ps列出,不知道你是否可以用cygwin做到这一点。 有了这两个,你可以使用Windows任务pipe理器来杀死东西。
    • 与虚拟机集成:解决共享主目录的例子,然后是。 你可以使用samba来做这件事,而且我相信NFS也可以在Interix上工作,以获得更好的性能。 你不会find任何漂亮的graphics用户界面或任何东西来为你做的工作。 cygwin和Interix都允许你访问你的常规文件系统。
    • 用户群的大小: Cygwin在这里胜出,我会说。 很难find经过testing和开发的Interix上运行的东西,因为大多数开源的东西似乎支持cygwin作为编译平台。

    如果您拥有支持Interix的Windows操作系统(如您所说的企业版,旗舰版或服务器版)的副本,则不妨尝试一下。 这是一个非常完整的感觉环境。 Cygwin,如你所说,运行的一切,并更好地知道和更好的支持,但感觉有点像一个肮脏的黑客给我。 有些人经常使用它。

    / *元注 – 我讨厌这么短的评论* /

    我大多同意安德鲁回答一些评论。 我用SUA / SFU替代了许多unix系统(不是它们不是一样的,但是很接近)。

    • 性能 – SUA比unix的服务要快得多,但是SFU也不是懒散,两者通常都比cygwin快(但并不总是)
    • 集成整合是SFU / SUA的重点,在technet网站上你可以做什么也做不了什么。 Cygwin被devise为在Windows上运行* nix命令,而不是使2合作。 请参阅Windows中的Unix / Linux互操作性组件(SUA,IdMU,NFS等)
    • 用户群 – 我认为interix方面比cygwin方面有更多的工作,支持的解决scheme,与cygwin方面相比,兼容性问题要less得多,请参阅http://www.suacommunity.com/ (工具仓库)。 Cygwin可能有更多的整体安装,因为它对Cygwin运行命令“我需要一个unix shell”的解决scheme是有益的,SUA是一个unix环境,它是一个对等的windows。

    不能评论JimB的答案,所以在这里解决它,特别是关于Windows集成的观点。 Cygwin基于Win32,而不是在自己的子系统中运行,而较慢,提供了更大的Windows集成。 它甚至允许在相同的程序中使用Windows和UNIX API,这使Cygwin X服务器或minttyterminal成为可能。

    Cygwin的'ps'列出了Windows进程,如果你给它的是-W选项,'kill -f'会杀死它们。 可以从Cygwin中调用Windows程序,并使用所有通常的机制(例如pipe道)将它们与Cygwin程序一起插入。 (我不知道Interix中是否可能。)

    支持Windows风格的path,包括向前和向后的斜杠。 Cygwin 1.7使UTF-8成为默认的字符集,Windows的UTF-16文件名被自动翻译,因此任何语言的文件名都能在Cygwin中正确显示。 我不知道Interix在这里做了什么,但是找不到支持Unicode的任何证据。

    其他集成function包括用于打开文件的“cygstart”实用程序,就像在资源pipe理器中双击它一样,而用于访问Windows剪贴板的/ dev /剪贴板设备也是如此。

    让我分享一下安装Interix for Windows 7的经验。

    我们的旅程从Windows Server 2008的一个不起眼的页面开始。

    在这里你会发现,它甚至不叫Interix,而是基于Unix的应用程序SUA 子系统 。 接下来,您只会从用户的评论中注意到,SUA仅适用于Windows 7 Ultimate或Enterprise。 这在任何地方都没有提到。 安装完“子系统”之后,你会发现在开始菜单里只有2个快捷键。

    SUA

    现在你到了真正的邪恶。 点击下载的快捷方式,然后转到下载页面。

    旧

    这里我们有3个可用的文件下载。 这些文件都超过400MB,并且在写这个4岁以上 。 另外,我们没有select下载定制软件包,某些部分,什么的。 然后你会意识到,这个链接实际上是Vista而不是Windows 7,并且将不得不去search互联网来findWindows 7页面 。 此时我放弃了。

    Cygwin的

    转到cygwin.com 。 下载cygwin.com/setup-x86.exe 。 这个文件是714 KB 。 运行一个基本的安装,你会发现大约需要2分钟

    时间

    之后,您可以重复使用安装程序的许多其他包到您的偏好。 这个故事的寓意是Cygwin关心用户

    类似UNIX的“感觉”是非常主观的。 我的投票与CygWin一起,因为它具有所有必要的functionCygWin / X Xwindows服务器。 SFU得到了基本的X11工具,但是太less太迟了。 许多(包括我)被引入到CygWin需要有一个X11服务器。 在完整性方面,CygWin的定位也更好,因为它是开源的,许多GNU或GPL许可软件都被移植到它。 我已经看到CygWin的一些商业产品,而只看到一个产品需要UNIX服务的Windows NT,而没有。 因人而异。

    对于CygWin而言, 软件包的可用性是一个明显的胜利,因为它受到以下几个因素的影响: – 较低的入门成本:CygWin与SFU / SUA服务器级许可证的“任何Windows”。 某些function可用于Windows的桌面风格,但是可以使用更昂贵的types,而不需要服务器组件; – 开源与封闭源代码,更重要的是公开可用的文档。 过去,即使是提供的命令和API列表也只能用于MSDN订阅者,微软网站上的信息很less或没有。 相比之下,GNU工具集是有据可查的,并且可以在线和作为手册页; – 命名和实现更改令人困惑。 早期版本使用MKS工具包,后来被放弃。 从SFU到SUA的重新命名可能在营销团队眼中看起来不错,但却让没有经验的用户感到困惑。

    性能 – 可以说,Interix更接近内核,因此享有更短的代码运行path。 真正的问题是多less和重要? 对于大多数程序来说,差别是很小的百分比,可以忽略不计。 当然,可以提出一个很重的I / O的例子。 我宁愿把这样的负载放在本地UNIX上,因为它比Windows上的本地Windows和UNIX附加组件都要快。 随着负载的增加,许多从Windows迁移到UNIX,而我不知道从CygWin转换到Interix(反之亦然)的例子。 这是所寻求的UNIX兼容性,而不是UNIX的性能,所以我把它放在列表的最后。