Cygwin

Windows機器的Unix子系統

Cygwin是許多自由軟件的集合,最初由Cygnus Solutions開發,用於各種版本的Microsoft Windows上,運行類UNIX系統。Cygwin的主要目的是通過重新編譯,將POSIX系統(例如LinuxBSD,以及其他Unix系統)上的軟件移植到Windows上。Cygwin移植工作在Windows NT上比較好,在Windows 95Windows 98上,相對差勁一些。目前Cygwin由Red Hat等負責維護。

Cygwin
Windows XP下運行Cygwin
Windows XP下運行Cygwin
開發者Red Hat
首次發布1995
當前版本3.5.4-1[1]在維基數據編輯(2024年8月25日)
源代碼庫 編輯維基數據鏈接
編程語言C/C++
操作系統Windows
類型兼容層, C標準函數庫
許可協議GPLv3
網站www.cygwin.com

簡介

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. ^ cygwin 3.5.4-1. 2024年8月25日 [2024年8月27日]. 
  2. ^ Cygwin FAQ. cygwin.com. [2021-03-18]. (原始內容存檔於2021-05-07). 

外部連結