MinGW 與 Cygwin 的不同處

探討「內嵌」以及「腳本化」這兩個主題的技術-版主XO老師(熟悉的目前是 Tcl,討論內容也會環繞在 Tcl 四周,但是本版還是歡迎其他 Scripting 語言以及任何「內嵌」技術的討論。)

版主: b80203, ghost3401, XO, maa

分享到: Facebook

MinGW 與 Cygwin 的不同處

文章XO » 週日 2月 05, 2006 11:35 am

MinGW 可以唸做 Min-G-W「明~碁~大不了~」或是MinG-W「名~大不了~」,也有人唸做 ming-wee「名貴(台語發音)」 或是 min gnu 「明~格奴」。可參考 http://en.wikipedia.org/wiki/MinGW

MinGW 原來是 Cygwin (念做「賽葛-wing」)裡 GNU 開發工具的一個分支,沒 Cygwin 複雜,而且目的也與 Cygwin 不同,Cygwin 的目的是希望透過一個 dll (就是 Cygwin1.dll 通常被安裝在 C:\Windows\system32底下) 建立一個系統呼叫轉換層,將原先 unix 世界裡的 system call 呼叫,經由這個 DLL 把它們映對到微軟視窗作業系統的系統呼叫,如此一來就可以很方便在 Windows 底下模擬出一個 unix 平台來,這樣你不需要一個 unix 機器照樣也可以開發 unix 程式。開發好的程式只要拿到 UNIX 平台上就可以使用。同理原來UNIX上諸多 Open source 程式也可以粉方便拿到 Windows 世界來享用,當然啦!UNIX system calls 與 Windows APIs 不盡然可以一對一對應,Cygwin 的目標在於儘可能 Compatible,執行績效倒不是重點考量。

「名~大不了~」可就不同啦!他的目的反而是將 gnu 這個 open source, free 的開發工具移植到微軟視窗平台,他直接產生出來的PC視窗平台機器碼,可以說與微軟 Visual Studio 做出來的一摸一樣,可以彼此互相通用。執行效率反而是重點。MinGW 常與 MSYS(Minimal SYStem)搭配使用,後者是跑在Windows視窗上的一個瘦身型羽量級 UNIX shell 功能,MinGW與他搭檔還可以進一步做一些更彈性的 Config。(按: UNIX 世界Open source 的玩法,大約都是用 cvs 或是 Sub version 去取得 Source code,然後 configure --> build --> install 三部曲, configure 會先蒐集你平台上各個工具元件實際安裝路徑,根據它們來調整軟體 Project檔(通常它是一個Makefile),之後才執行 make 去 Build 出軟體,透過 Install 腳本,最後再把作好的軟體 install (安裝)到適當的資料夾來使用。這 MSYS 就可以讓 MinGW 這編譯工具也具備第一步的 configure 功能。

xminGW 則是有人突發奇想,再進一步把 minGW 移植回去 UNIX平台,在 UNIX/Linux平台上有個 xminGW的好處是,在 UNIX 機器上可以有一個跨平台編譯器(Cross-compiler),在 UNIX平台上直接編譯產生 Windows 平台上可以執行的機器碼。Cross-compiler 在內嵌式系統開發上常用到,要內嵌的那個平台通常稱作 Target platform(標的平台),一般而言檔次較低功能上也比較陽春,並不適合在上面開發系統,大多數都是假手另一個開發程式的Source platform(可以是 Windows 或是 UNIX/Linux),透過上面的 Development toolchain 裡的 Cross-compiler 去產生出標的平台上的程式碼(通常是另一個OS平台),下載到標的平台來執行。

你的 PDA 可能上面是 Samsung 的 ARM7 或是 ARM9 處理器,他上面的應用程式其實是透過在 Linux 的 ARM Toolchain 跨平台開發出來的啦!
Likewise 你手機也是個內嵌式系統,它上面的應用程式都是透過類似的 Cross-compiler 編譯出來的啦!
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5352
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re: MinGW 與 Cygwin 的不同處

文章mtyjl » 週六 7月 12, 2014 3:18 pm


老師你這篇文章竟然是 Google "mingw cygwin 比较" 第一搜尋結果耶~

我想學 shell scripting, 結果繞了一圈反而發現好文章就在自家裡, 謝謝老師!!
mtyjl
漸有心得的高中生
 
文章: 136
註冊時間: 週六 9月 13, 2008 2:05 pm


回到 內嵌與腳本化(Embedding & Scripting)

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron