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. 加载中..

相关推荐

  • C++语言编译器 C++language compiler

    MinGW和GCC的区别是什么

    MinGW和GCC的主要区别在它们的设计目标和用途,GCC是一个跨平台的编译器集合,可用于多种操作系统和处理器架构,包括Windows;而MinGW是GCC在Windows平台上的移植版本,主要用于在Windows上本地编译C和C++代码。
  • MobaXterm

    MobaXterm是什么

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

    Squid 是什么

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

    Git 是什么

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

    Debian和Ubuntu哪个更适合用于服务器操作系统

    在选择Debian和Ubuntu作为服务器操作系统时,关键在于平衡稳定性和用户友好性。Debian以其高度稳定和纯粹的开源特性著称,适合追求极致稳定和技术专业的用户。而Ubuntu,以其易用性和强大的企业支持为主要优势,更适合需要现代化特性和企业级支持的环境。
  • 乌班图 优班图 Ubuntu Linux logo

    Ubuntu,适合各种用户的Linux操作系统

    Ubuntu是一款免费且开源的Linux操作系统,以用户友好、高度可定制和安全稳定著称。它提供直观的桌面环境、丰富的软件支持和优秀的硬件兼容性。Ubuntu适合从初学者到专业开发者的各类用户,特别是对开源和自由软件文化感兴趣的人群。虽在专业软件支持上可能略逊于Windows或macOS,但其在开源、自由和定制方面展现出显著优势。