Interix和Cygwin似乎在Windows中提供了一个类似于Unix的用户环境。 两者的实际区别是什么,例如:
我知道的一个区别是,Interix需要Windows 7企业版或旗舰版; Cygwin会运行任何东西。
我以前只使用Windows 2008上的Windows SFU,但我相信这是基于Interix的。 我偶尔玩过cygwin,但数量不是很多,所以如果我在这里说明了一些明显的错误,那么请有人纠正我。
ps
和df
东西很好。 如果您拥有支持Interix的Windows操作系统(如您所说的企业版,旗舰版或服务器版)的副本,则不妨尝试一下。 这是一个非常完整的感觉环境。 Cygwin,如你所说,运行的一切,并更好地知道和更好的支持,但感觉有点像一个肮脏的黑客给我。 有些人经常使用它。
/ *元注 – 我讨厌这么短的评论* /
我大多同意安德鲁回答一些评论。 我用SUA / SFU替代了许多unix系统(不是它们不是一样的,但是很接近)。
不能评论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 /剪贴板设备也是如此。
我们的旅程从Windows Server 2008的一个不起眼的页面开始。
在这里你会发现,它甚至不叫Interix,而是基于Unix的应用程序或SUA 子系统 。 接下来,您只会从用户的评论中注意到,SUA仅适用于Windows 7 Ultimate或Enterprise。 这在任何地方都没有提到。 安装完“子系统”之后,你会发现在开始菜单里只有2个快捷键。
现在你到了真正的邪恶。 点击下载的快捷方式,然后转到下载页面。
这里我们有3个可用的文件下载。 这些文件都超过400MB,并且在写这个4岁以上 。 另外,我们没有select下载定制软件包,某些部分,什么的。 然后你会意识到,这个链接实际上是Vista而不是Windows 7,并且将不得不去search互联网来findWindows 7页面 。 此时我放弃了。
转到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的性能,所以我把它放在列表的最后。