Cygwin

Cygwin
Windows XP下运行Cygwin
Windows XP下运行Cygwin
開發者Red Hat等
首次发布1995
当前版本
  • 3.5.3 (2024年4月3日;穩定版本)[1]
編輯維基數據鏈接
源代码库
  • cygwin.com/git/newlib-cygwin.git
編輯維基數據鏈接
编程语言C/C++
操作系统Windows
类型兼容层, C标准函数库
许可协议GPLv3
网站www.cygwin.com

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

简介

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

Cygwin由两部分组成:动态链接库(DLL),以C标准库的形式作为API兼容性层提供POSIX API功能的重要部分,以及提供Unix的大量软件工具和应用程序样的外观和感觉。 [2]


另外还有一个名为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的足够模拟,以使Autoconfshell script可以运行,这样就用到像bash这样的shell,进而需要Fork和標準串流。Windows含有类似的功能,所以Cygwin库只需要进行翻译调用、管理私有数据,比如文件描述符

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

参见

参考资料

  1. ^ 1.0 1.1 cygwin 3.5.3-1. 2024年4月3日 [2024年4月18日]. 
  2. ^ Cygwin FAQ. cygwin.com. [2021-03-18]. (原始内容存档于2021-05-07). 

外部链接

維基教科書中的相關電子教程:Cygwin
 
编译包(二进制
Linux
格式
Dpkg
RPM
tarball
  • slapt-get英语slapt-get
  • slackpkg英语slackpkg
  • netpkg英语netpkg
  • swaret英语swaret
其他
MacOS
Windows
TrueOS
Solaris
  • IPS英语Image Packaging System
  • Pkgutil英语Pkgutil
嵌入式操作系统
行動作業系統
電子遊戲機
跨平台
  • Dpkg
  • IPS英语Image Packaging System
  • OpenPKG英语OpenPKG
  • pkgsrc英语pkgsrc
  • Zero Install英语Zero Install
  • IBM SmartCloud Enterprise英语IBM cloud computing#IBM SmartCloud
  • Nix
  • wpkg英语wpkg
  • Steam
插件
Google Chrome
Firefox
  • 附加组件
Z/OS
  • SMP/E英语SMP/E
 
非编译包(源代码
Linux
MacOS
混合系统
元包管理器英语Meta package managers
Python
  • PyPI
  • pip
  • easyinstall英语Setuptools#EasyInstall
  • PyPM英语Python Package Manager
  • Anaconda
  • Enthought Canopy英语Enthought
  • 列表级条目 列表英语List of software package management systems
  • 分类 分类
  • 共享资源页面 共享资源
UnixWindows互操作性
类Unix子系统
开发环境和shells
Windows上的类Unix系统实用程序移植
  • GnuWin32
  • UnxUtils
Windows上的*nix运行时环境
  • Wabi英语Wabi (software)
  • Willows Toolkit for UNIX
  • Wine (WINE@Etersoft, Cedega英语Cedega, CrossOver, Darwine, Proton)
平台虚拟化软件英语Comparison of platform virtualization software
相关条目
  • APIW
  • Captive NTFS
  • NDISwrapper
  • Windows Interface Source Environment