Cygwin

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Cygwin
Windows XP下執行Cygwin
Windows XP下執行Cygwin
開發者Red Hat
首次釋出1995
目前版本
  • 3.5.3 (2024年4月3日;穩定版本)[1]
編輯維基數據連結
原始碼庫 編輯維基數據連結
程式語言C/C++
作業系統Windows
類型相容層, C標準函數庫
特許條款GPLv3
網站www.cygwin.com

Cygwin是許多自由軟件的集合,最初由Cygnus Solutions開發,用於各種版本的Microsoft Windows上,執行類UNIX系統。Cygwin的主要目的是通過重新編譯,將POSIX系統(例如LinuxBSD,以及其他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). 

外部連結[編輯]