GNU--GNU is a Unix-like computer operating system developed by the GNU Project, ultimately aiming to be a "complete Unix-compatible software system" composed wholly of free software.
POSIX--Portable Operating SystemInterface(例如Linux、BSD,以及其他Unix系统)理论上符合POSIX接口的操作系统上的软件,可以直接在其他符合POSIX接口的操作系统上运行。
Cygwin的主要目的是通过重新编译,将POSIX系统上的软件移植到Windows上(因为windows并不符合POSIX)。
我理解GNU是一种类unix的操作系统,它在windows操作系统之上建了一个抽象层,使得cygwin中包含的开源软件(本来是只能在unix或linux上运行的)可以在windows上运行。
例如今天我想在windows上安装openssh。其中使用的openssh就是从cygwin下的。
http://lifehacker.com/205090/geek-to-live--set-up-a-personal-home-ssh-server
不过由于必须运行在GNU上,所以尽管我只想用openssh,还是得下一大堆东西。
还有一点,要运行cygwin这种unix-like系统,需要windows管理员账户。而我用的windows家庭版,只有用户,不能设置group。
在cygwin中对应的用户所在的组是none,对应在cygwin中没有权限安装东西。所以最终失败了。。。
和Cygwin对应的Wine,可以让windows程序运行在Linux, BSD, Solaris and Mac OS X上。
官网:
http://www.winehq.org/