GNU是一个自由的操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU’s Not Unix!的递归缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。GNU的创始人,理查德·马修·斯托曼,将GNU视为“达成社会目的技术方法”。
作为操作系统,GNU的发展仍未完成,其中最大的问题是具有完备功能的内核尚未被开发成功。GNU的内核,称为Hurd,是自由软件基金会发展的重点,但是其发展尚未成熟。在实际使用上,多半使用Linux内核、FreeBSD等替代方案,作为系统核心,其中主要的操作系统是Linux的发行版。Linux操作系统包涵了Linux内核与其他自由软件项目中的GNU组件和软件,可以被称为GNU/Linux(见GNU/Linux命名争议)。
GNU的环境MinGW和Cygwin,MinGW相当于是面向windows平台的环境,Cygwin是把Linux平台的API做了一个映射。
如果想开发跨平台应用,建议使用Cygwin环境;如果只是想开发一个面向windows平台的应用,建议使用MinGW环境。
MinGW和Cygwin的区别
- MinGW:
修改编译器,让window下的编译器把诸如fork的调用翻译成等价的形式。经过编译器编译后,原linux下的代码可以在windows下运行。
- Cygwin:
这修改库,让window提供一个类似unix提供的库,他们对程序的接口如同UNIX一样。CygWin提供了一个UNIX环境,使用CygWin可以在Windows下调用unix-like的API(比如说fork,select,dup)。
- 选哪个?
mingw的安装包比cygwin体积小。
mingw是为了像在linux上写代码,并在windows上运行。
mingw可以接近windows本地程序的性能。
mingw编译的程序运行不依赖第三方库,体积小。cygwin是为了在windows上写linux代码。
cygwin在windows上运行,性能不行。
cygwin编译的程序,要依赖一个dll(cygwin1.dll)。
cygwin有和linux完全一样的运行环境。
GNU官方 https://www.gnu.org/
Cygwin官网下载页面 http://cygwin.com/
MinGW官网下载页面 http://mingw.org/