更新时间:2023-10-20 21:30
Cygwin是一个在windows平台上运行的类UNIX模拟环境,是Cygnus Solutions公司开发的自由软件(该公司开发的著名工具还有eCos,不过现已被Redhat收购)。它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对Cygwin产生了兴趣。
Cygwin始于1995年,最初作为Cygnus工程师Steve Chamberlain的一个项目。当时Windows NT和Windows 95将COFF作为目标代码,而GNU已经支持x86和COFF,以及C语言库newlib。这样至少在理论上,可以将GCC重定向,作为cross compiler,从而产生能在Windows上运行的可执行程序。在后来的实践中,这很快实现了。
接下来的问题是如何在Windows系统中引导编译器,这需要对Unix的足够模拟,以使GNU configure的shell script可以运行,这样就用到像bash这样的shell,进而需要Fork和standard I/O。Windows含有类似的功能,所以Cygwin库只需要进行翻译调用、管理私有数据,比如文件描述符。