簡單地說:Cygwin是GNU的開發人員為了能將UNIX系統下一些強大應用移植到Windows環境下而開發的一套中間移植工具。你也可以將它理解為Windows環境下一套強大的UNIX仿真工具。究竟是什麼,主要看你拿Cygwin來干什麼,如果你是開發人員,那麼它就是開發工具;如果你想在Windows環境下學習、使用UNIX系統,它就是一個UNIX用戶工具集。
Cygwin的功能
對開發人員來說,Cygwin為開發者提供了一個全32位應用的開發工具。首先,可以將Cygwin看作一組工具集,它是從目前被開發人員廣泛使用的GNU開發工具移植而來的,可以在Windows 9x/NT上運行。利用Cygwin工具集,開發人員,可以直接使用UNIX的系統功能調用及程序所需的一些運行環境。
程序員可以直接在Windows環境下調用標准的Microsoft win32API,同時也可以使用Cygwin API來編寫Win32的控制台應用、GUI應用。使用Cygwin可以容易地將一些重要的UNIX應用移植到Win32 環境下。這些應用的源碼不需要大改動就可以在Windows環境下運行。
熟悉 Windows環境的用戶,可以將Cygwin理解為Dynamic-Linked Library (DLL),它提供大量UNIX系統調用。目前最新的release 中包含了除setuid 和mkfifo外的所有POSIX.1/90的調用、全部ANSI C 標准調用,同時還包含了許多通用BSD 和SVR4服務,如:Berkeley sockets等。
對普通用戶而言,Cygwin提供了一組UNIX工具,運行它,可以將你的Windows系統變成一部UNIX主機。這組工具中包括bash shell,你可以在一個模擬的UNIX環境下使用這些工具,或者不進入UNIX虛擬機環境,直接在Windows的DOS命令行環境下使用它們。
Cygwin包含了哪些軟件包?
1.開發包:binutils、bison、byacc、dejagnu、diff、expect、flex、gas、gcc、gdb、itcl、ld、libstdc++、make、patch、tcl、tix、tk等;
2.UNIX 工具:ash、bash、bzip2、diff、fileutils、findutils、gawk、grep、gzip、less、m4、sed、shellutils、tar、textutils、time;
3.各軟件包的源程序包。
以上所有的程序均可免費獲得。
Cygwin是一個全功能的Win32應用,它是UNIX應用的一個Porting層,完全兼容於Win32(包括目前使用的Windows 95/98/NT)。該項目啟動於1995年,主要目的是將GNU開發工具移植到Win32系統上來。
下載與安裝
如果你的計算機已連接到了互聯網,可以選擇從Internet安裝,安裝程序會自動查找放置cygwin軟件包的站點,列出數十個站點,你可以從中選擇一個最近的站點,確認後安裝程序第
一步執行下載;下載完成後,自動開始安裝,安裝過程全自動進行,你只要按要求輸入安裝的目的路徑即可。整個安裝過程大約要用5分鐘,具體同機器性能有關。安裝完成後,會自動生成一個批處理文件,同時,在桌面上也生成一個圖標,點擊即可開始運行。
使用Cygwin
程序安裝完成後,在相應的安裝目錄下,會生成一個批處理文件:cygwin.bat,可以直接運行它,也可以從桌面上運行。
程序運行之後,直接進入了一個虛擬的UNIX主機,它是一個完整
的微型UNIX機,目錄結構完全相同於普通的UNIX系統,並包括了基本的UNIX命令,這些命令可以在這個虛擬的UNIX主機下運行。這並不足為奇,但是令人驚奇的是——這些命令也可以直接在Windows的命令行環境下運行的。
以下例示為在DOS界面下運行其中命令:
C:\〉mount c:\ /c (注:將硬盤C mount到虛擬UNIX系統的一個/c(名字可以為其他)目錄下)
C:\〉mount d:\ /d (注:硬盤 D mount到虛擬UNIX機的一個目錄/d下)
C:\〉mount e:\ /cdrom (注:將e盤mount到虛擬UNIX機的/cdrom目錄下)
其作用等同於以下UNIX命令:
$ mount /dev/hdax /c ## x為某一個分區,值為1、2、3……
使用常規的UNIX命令(注意,這是在常規的Windows命令行環境下的直接使用):PS(進程查看),如圖2所示。
編寫一個小的C語言程序,使用gcc編譯,運行結果如圖3所示(Windows 命令行方式下)。
以上均為在Windows的環境下直接使用UNIX命令。當然更可以在虛擬UNIX機下使用這些命令。由此可見gcc編譯器同UNIX下的編譯器幾乎沒有差別。
Cygwin還提供對自身的編譯。如果你要編譯自己的Cygwin,可以在安裝時,選擇安裝源碼包。這樣,如果要自行編譯Cygwin,就可以進入cygwin-1.1.6-1目錄,運行configure、make完成對Cygwin的編譯。
cygwin-ug-net.html。
Xfree for Cygwin
X Window是UNIX環境下的GUI,幾乎所有的UNIX版本都可以運行X應用,那麼由Cygwin構成的這個微型UNIX可以運行X應用嗎?
令人驚奇的是:Xfree應用可以在Cygwin下運行!
如果你有興趣,可以到以下站點查找並下載Xfree for Cygwin。它是一個運行在Windows環境下的X Window系統,也是一個全免費的軟件。從網站的介紹中你可以知道,它是一個由個人開發的
產品。目前使用的是FreeX86 4.0。有了它,那些要求在Windows環境下安裝X Window的用戶,就不必花錢購買Windows環境下的商業X Window服務器了。它一樣可以運行得很好。窗口管理器是最簡單的twm。
筆者下載了xfree for Cygwin軟件包,在NT下成功地完成安裝,運行效果還不錯。只是在安裝時要注意:最新xfree for Cygwin是4.0.1的,各位不要忘記下載時,同時下載一個叫Xwin-Update的軟件包,並安裝它,否則,可能無法運行X Window。
要下載安裝的軟件包有:
xfree86-4.0-DLLs.tar.bz2
xfree86-4.0-fonts.tar.bz2
xfree86-4.0-Prog.tar.bz2
xfree86-4.0-rgb.tar.bz2
xfree86-4.0-twm.tar.bz2
xfree86-4.0-Xterm.tar.bz2
xfree86-4.0-Xwin.tar.bz2
XWin-update-ex-only.tar.bz2 (就是這個文件)
你可以將xc-4-binaries目錄下的所有文件都下載過來,全部安裝。
安裝方法:
只要將這些bz2文件全部復制到你安裝Cygwin的目錄下,運行cygwin.bat,進入UNIX環境。
第一步:解壓縮:
$ bunzip2 -d *.bz2
第二步:
$ tar -xvf xfree86-4.0.Xwin.tar
$ tar -xvf xfree86-4.0.DLL.tar
...
如此解開以上各軟件包,tar自動將包中的文件放置到正確的位置中,不需要再運行安裝程序。解壓完成後,安裝即告完成。
如何運行X Window?
$ cd /usr/X11R6/bin
$ ./startxwin.bat
即可啟動X Window。
已移植的應用列表
Apache 1.3.9 and php-4.0b2
ARPC
CAMP 1.2b1
CD Recording Software
Cygwin B20.1 Released!
Data Plotting Library DISLIN 7.3
DDD 3.1.4
Differential X Protocol Compressor 3.8.0
DirectX
FreeCIV 1.8.0
FXDR
gcc 2.95.2
Gimp for Win32
IBM's OpenDX
Icarus Verilog
Insight debugger, pine, wget, info, other ports
Kerberos V4 eBones Distribution
LAPACK Libraries
LessTif 0.89.9
libstdc++-v3 2.90.7
lynx-2.8.2r1
mc-4.1.36, tcltk-8.3.1
Octopod for C++
Open PTC for Windows
perl-5.6.0
Perl, gdbm, cvs, and cygipc
PGPlot 5.2
Python headers for mingw
repGL
RPM 3.04, Lynx 2.8.3
RXVT
screen-3.9.8, xchat-1.6.0
Screen Saver Library
TCL/Tk 8.1
UCD SNMP
X11R6.4 Archive and Zyacc
XChat-text 1.5.7