Cygwin

✍ dations ◷ 2025-05-04 16:59:45 #兼容层,程序设计工具,自由编译器与直译器,自由仿真软件,用C编程的自由软件,红帽公司,系统管理,Windows独占自由软件

Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于各种版本的Microsoft Windows上,运行类UNIX系统。Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、BSD,以及其他Unix系统)上的软件移植到Windows上。Cygwin移植工作在Windows NT上比较好,在Windows 95和Windows 98上,相对差劲一些。目前Cygwin由Red Hat等负责维护。

Cygwin包括了一套库,该库在Win32系统下实现了POSIX系统调用的API;还有一套GNU开发工具集(比如GCC、GDB),这样可以进行简单的软件开发;还有一些UNIX系统下的常见程序。2001年,新增了X Window System。

另外还有一个名为MinGW的库,可以跟Windows本地的MSVCRT库(Windows API)一起工作。MinGW占用内存、硬盘空间都比较少,能够链接到任意软件,但它对POSIX规范的实现没有Cygwin库完备。

Red Hat规定,Cygwin库遵守GNU通用公共许可证,但也可以跟符合开源定义的自由软件链接。Red Hat另有价格不菲的许可协议,这样使用Cygwin库的专属软件,就可以进行再发布。

用户可以通过Cygwin Mailing Lists 页面存档备份,存于互联网档案馆,订阅若干个Cygwin相关的邮件列表。

Cygwin始于1995年,最初作为Cygnus工程师Steve Chamberlain的一个项目。当时Windows NT和Windows 95将COFF作为目标代码,而GNU已经支持x86和COFF,以及C语言库newlib。这样至少在理论上,可以将GCC重定向,作为交叉编译器,从而产生能在Windows上运行的可执行程序。在后来的实践中,这很快实现了。

接下来的问题是如何在Windows系统中引导编译器,这需要对Unix的足够模拟,以使Autoconf的shell script可以运行,这样就用到像bash这样的shell,进而需要Fork和标准流。Windows含有类似的功能,所以Cygwin库只需要进行翻译调用、管理私有数据,比如文件描述符。

1996年后,由于看到cygwin可以提供Windows系统上的Cygnus嵌入式工具(以往的方案是使用DJGPP),其他工程师也加入了进来。特别吸引人的是,Cygwin可以实现三路交叉编译(three-way cross-compile),例如可以在Sun工作站上构建,如此就形成Windows-x-MIPS 交叉编译器,这样比单纯在PC上编译要快不少。1998年起,Cygnus开始将Cygwin包作为产品来提供。

相关

  • 沙门氏杆菌病沙门氏菌感染症(英语:Salmonellosis),又称沙门氏杆菌病,由沙门氏菌属细菌感染所造成的疾病通称。在感染沙门氏菌之后的12至72小时内,患者通常会出现腹泻,发烧,呕吐与腹痛的症状。这
  • 没有名字的甜点店许富翔张榕容、刘以豪、修杰楷、黄荻钧磬石数位媒体有限公司前景娱乐有限公司台湾台北市、新北市、台中市 法国巴黎《没有名字的甜点店》(法语:Amour et Pâtisserie),由磬石数
  • 哈伯定律在物理宇宙学里,哈勃–勒梅特定律(英语:Hubble-Lemaître law)指遥远星系的退行速度与它们和地球的距离成正比。这条定律原先称为哈勃定律(英语:Hubble's law),以证实者埃德温·哈勃
  • 寸关尺寸、关、尺是中医脉诊术语,是中医师把脉时按诊症者两手手腕寸口的位置。“关”为手腕桡骨突起(桡骨茎突)的位置,“关”之前为“寸”,“关”之后则为“尺”。这个位置的脉动分别称
  • 周有德周有德,字彝初,汉军镶红旗人。为中国清朝官员,1664年任山东巡抚,后于1668年1月30日-1670年2月6日期间,奉旨接替卢兴祖担任广东广西总督。全名为“总督两广等处地方提督军务、粮饟
  • 先天性免疫缺乏症严重复合型免疫缺乏症(Severe combined immunodeficiency,缩写 SCID),泛指一群罕见的先天遗传性疾病,患者因为免疫功能缺乏,导致严重的重复性感染,来源包括细菌、病毒及霉菌。若未
  • 约克郡和林肯郡BBC约克郡和林肯郡(BBC Yorkshire and Lincolnshire)是英国广播公司(BBC)在英格兰的一个播出地区,也是BBC在英格兰的第12格播出地区,总部位于赫尔河畔京斯顿,系自BBC北部分裂产生,播
  • 奥兰特奥兰特(英语:Aurant)是位于美国加利福尼亚州洛杉矶县的一个非建制地区。该地的面积和人口皆未知。奥兰特的座标为34°04′41″N 118°09′51″W / 34.07806°N 118.16417°W /
  • 罗马剧场罗马剧场(Roman theatre)是指古罗马时期修建的半圆形剧场。罗马剧场受到了古希腊剧场的很大影响,但也有自己的特征。罗马剧场分布在从西班牙至中东的广大地区,且世界很多地方都
  • 萨帕塔沼泽萨帕塔沼泽是古巴的沼泽,位于萨帕塔半岛,距离首都哈瓦那少于150公里,由马坦萨斯省负责管辖,长175公里、宽58公里,面积4,354平方公里,是175种鸟类、31种爬虫类动物和超过1,000种无