coLinux在構建嵌入式開發(fā)環(huán)境中的應用
1 引言
GNU項目為嵌入式開發(fā)提供了優(yōu)秀的交叉開發(fā)工具鏈,雖然這些工具鏈也移植到了 Windows系統(tǒng)中,但是為了在 Windows系統(tǒng)中使用,通常還需要另外一個模擬的 Linux環(huán)境――Cygwin,效率是一個新的問題。另外, Cygwin環(huán)境也不是一個真正的 Linux環(huán)境,相比于真正的 Linux環(huán)境來說, Cygwin仍顯不足。從根本上來講, GNU工具鏈是基于 Linux操作系統(tǒng)環(huán)境而開發(fā)的。
在眾多的開源項目中,與嵌入式相關的開發(fā)項目大多數(shù)仍然需要基于 Linux系統(tǒng)進行編譯和鏈接。雖然在 Cygwin中通過復雜的設置也有可能滿足相關開發(fā)需要,但是對于開發(fā)人員來說,優(yōu)先的選擇仍然是使用 Linux。用慣了 Windows的程序員通常會在系統(tǒng)中安裝一個龐大的 Linux虛擬機,或者直接安裝兩個操作系統(tǒng)。程序員必須忍受虛擬機的運行效率低下的重大缺點,或者為了切換操作系統(tǒng)而反復地重新啟動安裝了雙操作系統(tǒng)的計算機。如果需要在 Linux與 Windows之間進行文件傳遞,還需要做一些額外的工作。
然而 coLinux的出現(xiàn),改變了這一切。
2 coLinux簡介
coLinux也是一個源代碼開放的軟件,全名為 Cooperative Linux(協(xié)作 Linux)。coLinux是第一個能在 Win32平臺上高效地以原生(native)方式運行 Linux的軟件, Linux在 coLinux中的運行效率極高,遠遠超過虛擬機的運行效率(為了模擬一條匯編指令,通常虛擬機要使用一段 C語言代碼來完成)。 coLinux目前發(fā)展到了 0.73版本,在其官方網(wǎng)站 http://www.colinux.net上提供了最新版本的源代碼和二進制代碼的下載地址。
coLinux有很高的運行效率,并且僅需要很少的系統(tǒng)資源。 coLinux中的 Linux在本質上是直接在 PC機硬件中運行的,而不是在虛擬機上。coLinux不像虛擬機那樣一次就從系統(tǒng)中劃去一大塊內存,而是根據(jù)實際需要讓宿主機系統(tǒng)動態(tài)為其分配內存。
coLinux創(chuàng)建的是一個“真正的” Linux操作系統(tǒng)。相比之下, CygWin提供的是一個模擬的 Linux環(huán)境。Linux程序若不重新構建,就無法在 Cygwin中直接運行。
coLinux可以通過 cofs驅動使宿主機( Windows XP)與 Linux進行文件夾共享。通過簡單的設置后,就可以把 Windows系統(tǒng)中的一個文件夾與 coLinux中的 Linux系統(tǒng)進行共享。在 Windows操作該文件夾中文件的時候,Linux也可以對其進行操作。
coLinux具有高可移植性的特點。在一個 Windows主機上建立一個 coLinux發(fā)行版,并在根文件系統(tǒng)中安裝一套定制的應用程序。然后,可以將根文件系統(tǒng)轉移到另一個主機上,并重新啟動。這樣就有了一個可移動的開發(fā)平臺,壓縮后的根文件系統(tǒng)完全可以放在一個標準的 USB盤中。
3 coLinux的工作原理
coLinux在 Windows操作系統(tǒng)中作為一個進程執(zhí)行??梢哉J為 coLinux是 Linux操作系統(tǒng)與 Windows操作系統(tǒng)之間的一個接口。兩種操作系統(tǒng)通過將處理器(CPU)的控制權轉讓給彼此從而達到協(xié)作(Cooperative)的目的。它們通過使用內核驅動程序共享網(wǎng)絡接口、串口等物理資源。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論