Cygwin是什么

子凡 问答 2020-08-20 17:46:38 阅读(...)

Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于各种版本的Microsoft Windows上,运行类UNIX系统。Cygwin的主要目的是通过重新编译,将POSIX系统上的软件移植到Windows上。

Cygwin 是许多自由软件的集合,最初由 Cygnus Solutions 开发,用于各种版本的 Microsoft Windows 上,运行类 UNIX 系统。Cygwin 的主要目的是通过重新编译,将 POSIX 系统上的软件移植到 Windows 上。

Cygwin

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 包作为产品来提供。

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • MobaXterm

    MobaXterm是什么

    MobaXterm 是远程计算的终极工具箱,用于 Windows 的增强终端,带有 X11 服务器、选项卡式 SSH 客户端、网络工具等。提供了大量为程序员、网站管理员、it 管理员和几乎所有需要以更简单方式处理远程作业的用户而定制的功能。
  • Squid Web Proxy Cache

    Squid 是什么

    Squid Cache是HTTP代理服务器软件。Squid用途广泛,可以作为缓存服务器,可以过滤流量帮助网络安全,也可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。Squid程序在Unix一类系统运行。
  • Git

    Git 是什么

    Git 是一个分布式版本控制软件,与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。
  • MyBatis

    MyBatis是什么

    MyBatis是一个Java持久化框架,通过XML描述符或注解把对象与存储过程或SQL语句关联起来,映射成数据库内对应的纪录。 MyBatis是在Apache许可证 2.0下分发的自由软件,是iBATIS 3.0的分支版本。
  • 延伸文件系统 Extended file system

    延伸文件系统是什么

    延伸文件系统(扩展文件系统)是为linux核心所做的第一个文件系统。采用Unix文件系统(UFS)的元数据结构,以克服MINIX文件系统性能不佳的问题。它是在linux上,第一个利用虚拟文件系统实现出的文件系统,最大可支持2GB的文件系统。
  • GnuPG

    GnuPG是什么

    GNU Privacy Guard(GnuPG 或 GPG)是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。GnuPG 是自由软件,遵循 IETF 订定的 OpenPGP 技术标准设计,并与 PGP 保持兼容。