Cygwin在Windows和真正的UNIX环境之间有什么区别?

5
我是一名C/C++开发者。我以前只在Windows上做过C++编程,从未在UNIX上尝试过。
我想在Unix上练习C++(因为所有大公司都要求掌握C++和Unix)。
我有一台笔记本电脑,不想安装其他操作系统(因为我已经安装了非常重要的软件,而且没有安装文件)。
因此,我搜索并找到了Cygwin,这是Windows上的Unix模拟器。我打算在这个平台上练习C++。
那么Unix和Cygwin之间有什么区别呢?

3
你有考虑在笔记本电脑上安装一个 Unix 操作系统的虚拟机吗? - OregonGhost
4个回答

4
Cygwin主要是一个POSIX仿真器,其中POSIX是UNIX和其他系统的一些最低公共分母。这使得在Windows上可以运行清晰编写的POSIX应用程序成为可能。
您将在cygwin中找到所有指定在POSIX中的东西(如文件系统层次结构、/proc文件系统、信号、套接字),它将遵守POSIX规范。但是由于许多事情在POSIX中未指定,因此它不会像任何其他真实Unix系统一样达到100%。
例如,在大多数UNIX系统上,您可以在打开文件时删除该文件(这将使其成为没有名称的临时文件,并在最后一个用户关闭它时删除)。Windows不允许这样做(而POSIX也没有强制执行);因此,在Cygwin上,您将具有Windows文件语义(您无法在打开文件时删除文件)。
同样适用于文件名中允许的字符、文件名大小写敏感性以及(当然)大多数真实UNIX提供但未包含在Cygwin中的所有其他API(除了POSIX)。
(至少您可以在Cygwin中拥有X服务器,它仅支持基本的X操作。)

2
Cygwin只是一个真正Unix操作系统功能的子集,关于Unix操作系统的某些内容cygwin无法告诉您。这取决于您需要在Unix机器上执行什么操作。由于其具有不同的文件系统,并且没有与Windows相同的目录结构。例如,在Unix中没有“Program Files”,您可能需要知道许多文件的位置,但这些信息在Cygwin中找不到。虽然我同意,如果您不想在计算机上安装另一个操作系统,则可以在虚拟机中安装它,或者仅偶尔使用时可以使用LiveCD。

1

你可能会发现这个链接很有帮助: http://en.wikipedia.org/wiki/Cygwin

他们提供了许多有用的信息,以帮助您更好地理解将要发生的事情。

我的建议是虚拟化自己的环境(例如在Virtual Box中使用Ubuntu)。谷歌一下获取下载链接

您可以尽情实验。


0

下载VirtualBox,然后安装您选择的Unix版本。个人而言,我非常喜欢Ubuntu。 :)

尽管Cygwin在其所做的事情上非常出色,但它不会像直接在Unix机器上工作那样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接