1. 程式人生 > >如何在WINDOWS下執行UNIX程式和GNU程式

如何在WINDOWS下執行UNIX程式和GNU程式

1 引言

今天程式開發人員面臨的最大問題就是如何使他們的應用程式支援各種不同的平臺,如何使使用者能夠在不同的平臺下不作任 何修改地就能使用他們的應用程式。眾所周知,Linux 作業系統和其它基於 UNIX 的作業系統一直是國際上使用廣泛又非常重要的 OS。但在中國,微軟的 Windows OS 卻佔領著巨大市場,如 Windows95/98、Windows2000、Windows me 等 OS。那麼,基於 Windows OS 工作的程式開發人員在實際工作中,能否重新利用其它 OS 上的那些免費的程式碼資源呢?例如像 Linux 那樣優秀而自由的豐富程式碼源。本文針對這個問題,提出了兩種在 Windows OS 下如何執行 UNIX 程式和 GNU 程式的途徑,以避免開發人員在工作中重複開發,以提高工作效率。

2 在 WINDOWS 下執行 UNIX 程式的工具——Cygwin
UNIX 自 20 世紀八十年代就已經成為學術界和研究機構所採用的主要作業系統,並開始擴充套件到商業界,當時就連大名鼎鼎的 IBM PC 都可跑 UNIX。

2.1 什麼是 Cygwin?

Cygwin 是 Cygwin 公司(
http://cygwin.com/
)的產品,它提供了 Windows 作業系統下的一個 UNIX 環境,它可以幫助程式開發人員把應用程式從 UNIX/Linux 移植到 Windows 平臺,是一個功能強大的工具集。

Cygwin 由兩部分組成:

(1)cygwin1.dll:它作為 UNIX 的一個模擬層,提供 UNIX API 功能;

(2) 一組工具:它的功能是負責建立一個 UNIX 或 Linux 的外觀介面。Cygwin 動態連結庫,即 cygwin1.dll 可以在 Windows CE 以外,Windows 95 以上的所有非 beta 版本的 Windows OS 下工作,如 Windows 98,Windows 2000 等。目前該軟體的最新版本的 Cygwin 是 1.1.x 或 1.3.x.可以從 cygwin 公司的網站上直接下載(
http://cygwin.com/setup.exe


2.2 Cygwin 的功能

網 絡管理人員通過 Cygwin 可以很容易地遠端登入到任何一臺 PC 機,在 UNIX/Linux 外殼(shell)下解決問題。在任何一臺 Windows OS 計算機上執行外殼(shell)指令碼命令。高階外殼指令碼命令可以用標準 shell、sed 和 awk 等建立。標準 Windows 命令列工具甚至可以與 UNIX/Linux 外殼指令碼環境共同管理 Windows 作業系統。

2.3 安裝 Cywin

我們以 Cygwin Net Release Setup.exe Version 2.125.2.10 為例(
http://sources.redhat.com/cygwin


1) 雙擊“setup.exe”圖示;

2) “Next”進行下一步;

3) 選擇安裝途徑: 由 Internet 安裝;
從Internet上先下載;
由本地目錄下安裝;

4) 我們選擇從 Internet 上直接安裝;

5) 選擇安裝的根目錄,預設目錄為:C:/cygwin;當然,也可修改為C:/Program Files/Cygwin

6) 預設的文字檔案型別為 Unix,安裝所有檔案。

7) 按“Next”進行下一步,安裝路徑中一般不包括空格,安裝檔案位置:C:/Documents and Settings/lingli/ 桌面

8) Internet 連線方式,直接連線;使用 IE5 設定;使用 HTTP/FTP 代理。

9) 選擇下載站點:ftp/http://cygwin.lirex.net

10) Downloading setup.ini connecting.

3 在 WINDOWS 下執行 GNU 程式的工具——MinGW

在 介紹 MinGW 之前,有必要先介紹一下 GNU,拼讀時 G 是不發音的。在字典中的含義是非洲大羚羊,我們可以常常看到非常個性化的羊頭,想必很多人已經非常熟悉。象徵 GNU 那種追求自由的精神,GNU 其實是 Gnu'sNotUnix 的縮寫,它表示 GNU 系統與 Unix 不同,但是它是與 UNIX 相容的一個軟體系統。由 Richard Stallman 建立,於 1984 年開始逐漸累積系統構件,於 1996 年釋出"完整 GNU 系統"的第一個測試版本。與 UNIX 不同的是,GNU 不需要購買,所有需要它的人都可以免費獲得,這也是設計者的初衷,自由軟體拷貝,自由軟體共享。

3.1 什麼是 MinGW?

MinGW,即 Minimalist GNU For Windows。它是一些標頭檔案和埠庫的集合,該集合允許人們在沒有第三方動態連結庫的情況下使用 GCC(GNU Compiler C)產生 Windows32 程式。
在 基本層,MinGW 是一組包含檔案和埠庫,其功能是允許控制檯模式的程式使用微軟的標準C執行時間庫(MSVCRT.DLL),該庫在所有的 NT OS 上有效,在所有的 Windows 95 發行版以上的 Windows OS 有效,使用基本執行時間,你可以使用 GCC 寫控制檯模式的符合美國標準化組織(ANSI)程式,可以使用微軟提供的 C 執行時間擴充套件。該功能是 Windows32 API 不具備的。下一個組成部分是 w32api 包,它是一組可以使用 Windows32 API 的包含檔案和埠庫。與基本執行時間相結合,就可以有充分的權利既使用 CRT(C Runtime)又使用 Windows32 API 功能。

4 結論

本 文討論瞭如何在 WINDOWS 下重複利用 UNIX 程式碼程式和 GNU 程式碼程式的問題,提出了兩種在 Windows OS 下如何執行 UNIX 程式和 GNU 程式的途徑。這意味著,基於 Windows OS 工作的程式開發人員在實際工作中,將能重複利用其它OS上的那些免費而豐富的程式碼源。避免開發人員在工作中重複開發,提高了工作效率。
參考資料:http://www.23server.cn/server/14/2007/09/17/200709175483.html