coLinux在構建嵌入式開(kāi)發(fā)環(huán)境中的應用
coLinux是一個(gè)修改過(guò)的 Linux 內核,它可以與另一個(gè)操作系統協(xié)作運行。宿主機(host)操作系統控制本機的硬件資源,而訪(fǎng)客(guest)操作系統只得到本機硬件的虛擬抽象。主機操作系統提供了以特權級別(ring 0)執行驅動(dòng)程序的方法,并提供了分配內存的方法。
Linux 內核所需的其他特性(比如網(wǎng)絡(luò )連接、串口或視頻訪(fǎng)問(wèn))通過(guò)外部代理來(lái)實(shí)現,
比如 coLinux 可以通過(guò) TUNTAP驅動(dòng)程序訪(fǎng)問(wèn)外部網(wǎng)絡(luò ),通過(guò)代理訪(fǎng)問(wèn)顯示器( X Window System)等。
coLinux的安裝及配置
coLinux的安裝非常容易,包括幾個(gè)簡(jiǎn)單的步驟。安裝過(guò)程中 coLinux提示可以從網(wǎng)上下載 ArchLinux、Debian 4.0、Fedora 7、Gentoo Deluxe、Ubuntu 7.1等幾個(gè) Linux文件系統映像的壓縮包。點(diǎn)擊相應的“ *Notes”可以打開(kāi)對應的說(shuō)明文字與下載的網(wǎng)頁(yè)。下面筆者以 Fedora9的文件系統映像壓縮包為例來(lái)介紹 coLinux中 Linux的安裝和配置。
從網(wǎng)上下載的 Fedora9文件系統映像壓縮包中包含 5個(gè)文件,這些文件對于主機操作系統(Windows)來(lái)說(shuō)都是一些普通的文件,但是對于 coLinux來(lái)說(shuō)其中某些文件(Fedora-9.img、 swap.img)卻是可讀寫(xiě)的 ext3 / swap類(lèi)型的 Linux文件系統。
Fedora-9.img是一個(gè) 4G大小的 Fedora9文件系統映像,內含了 Fedora9系統中必需的所有文件,并預先配置了 slirp的網(wǎng)絡(luò ),gdm登陸的 Xvnc以及支持聲音的 ESD等功能。使用 Fedora9時(shí)無(wú)需對宿主機的網(wǎng)絡(luò )功能方面做任何配置,就可以通過(guò)宿主機的 API來(lái)控制當前的網(wǎng)絡(luò )適配器(網(wǎng)卡)來(lái)收發(fā) TCP/UDP數據包。由于 Slirp不能收發(fā) ICMP信息,ping和 traceroute等命令無(wú)法工作,但是其他網(wǎng)絡(luò )功能絲毫不會(huì )受到影響。從外部訪(fǎng)問(wèn) Linux,需要進(jìn)行端口重定向,在 coLinux配置文件中可以進(jìn)行簡(jiǎn)單設置。另外 coLinux也為 Linux之間提供了 tuntap與 pcap-bridge的通訊模式,具體信息可以參考 colinux自帶的幫助文檔。
swap.img:這是一個(gè) 512M的交換分區的映像。
start-Fedora-9.bat:?jiǎn)?dòng) Fedora9+coLinux的批處理文件(需要根據情況進(jìn)行修改) ,里面是一個(gè)啟動(dòng) coLinux的命令,命令后面添加了相關(guān)的配置參數。
start-Fedora-9.sh:?jiǎn)?dòng) Fedora9+coLinux的腳本文件(需要根據情況進(jìn)行修改,于 Cygwin環(huán)境的 Bash下運行)。
README-Fedora-9.txt:本映像的說(shuō)明文件。
將下載的文件解壓釋放出來(lái),編輯文件 start-Fedora-9.bat,根據“ Fedora-9.img”和 “swap.img”在宿主機(Windows系統)中的真實(shí)位置,對 cobd0、cobd1進(jìn)行適當的修改(注意:使用“/”進(jìn)行目錄層次分隔)即可。修改完成后,將其保存在 coLinux軟件的安裝位置,如 “C:Program FilescoLinux”,雙擊即可啟動(dòng) coLinux。Fedora9 Linux開(kāi)始運行后, Linux啟動(dòng)信息被發(fā)送到一個(gè)新打開(kāi)的 FLTK控制臺中。如果 cobd0、cobd1的配置信息無(wú)誤,則能夠順利啟動(dòng)。
5構造擁有 Window和 Linux雙重優(yōu)點(diǎn)的嵌入式開(kāi)發(fā)環(huán)境
與 Cygwin相似, coLinux允許在 Windows操作系統上開(kāi)發(fā)和執行 Linux應用程序。但是基于 coLinux的 Linux系統可以用 apt-get/yum等應用程序管理軟件安裝、更新或刪除應用程序,從而達到對 Linux操作系統進(jìn)行維護的目的。
評論