新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > coLinux構(gòu)建嵌入式開發(fā)環(huán)境

coLinux構(gòu)建嵌入式開發(fā)環(huán)境

作者: 時(shí)間:2011-05-10 來源:網(wǎng)絡(luò) 收藏

1 引言

本文引用地址:http://www.butianyuan.cn/article/150780.htm

  GNU項(xiàng)目為提供了優(yōu)秀的交叉工具鏈,雖然這些工具鏈也移植到了 Windows系統(tǒng)中,但是為了在 Windows系統(tǒng)中使用,通常還需要另外一個(gè)模擬的 Linux——Cygwin,效率是一個(gè)新的問題。另外, Cygwin也不是一個(gè)真正的 Linux,相比于真正的 Linux環(huán)境來說, Cygwin仍顯不足。從根本上來講, GNU工具鏈?zhǔn)腔?Linux操作系統(tǒng)環(huán)境而的。

  在眾多的開源項(xiàng)目中,與相關(guān)的開發(fā)項(xiàng)目大多數(shù)仍然需要基于 Linux系統(tǒng)進(jìn)行編譯和鏈接。雖然在 Cygwin中通過復(fù)雜的設(shè)置也有可能滿足相關(guān)開發(fā)需要,但是對(duì)于開發(fā)人員來說,優(yōu)先的選擇仍然是使用 Linux。用慣了 Windows的程序員通常會(huì)在系統(tǒng)中安裝一個(gè)龐大的 Linux虛擬機(jī),或者直接安裝兩個(gè)操作系統(tǒng)。程序員必須忍受虛擬機(jī)的運(yùn)行效率低下的重大缺點(diǎn),或者為了切換操作系統(tǒng)而反復(fù)地重新啟動(dòng)安裝了雙操作系統(tǒng)的計(jì)算機(jī)。如果需要在 Linux與 Windows之間進(jìn)行文件傳遞,還需要做一些額外的工作。

  然而 的出現(xiàn),改變了這一切。

  2 簡(jiǎn)介

  也是一個(gè)源代碼開放的軟件,全名為 Cooperative Linux(協(xié)作 Linux)。coLinux是第一個(gè)能在 Win32平臺(tái)上高效地以原生(native)方式運(yùn)行 Linux的軟件, Linux在 coLinux中的運(yùn)行效率極高,遠(yuǎn)遠(yuǎn)超過虛擬機(jī)的運(yùn)行效率(為了模擬一條匯編指令,通常虛擬機(jī)要使用一段 C語言代碼來完成)。 coLinux目前發(fā)展到了 0.73版本,在其官方網(wǎng)站http://www.colinux.net上提供了最新版本的源代碼和二進(jìn)制代碼的下載地址。

  coLinux有很高的運(yùn)行效率,并且僅需要很少的系統(tǒng)資源。 coLinux中的 Linux在本質(zhì)上是直接在 PC機(jī)硬件中運(yùn)行的,而不是在虛擬機(jī)上。coLinux不像虛擬機(jī)那樣一次就從系統(tǒng)中劃去一大塊內(nèi)存,而是根據(jù)實(shí)際需要讓宿主機(jī)系統(tǒng)動(dòng)態(tài)為其分配內(nèi)存。

  coLinux創(chuàng)建的是一個(gè)“真正的” Linux操作系統(tǒng)。相比之下, CygWin提供的是一個(gè)模擬的 Linux環(huán)境。Linux程序若不重新,就無法在 Cygwin中直接運(yùn)行。

  coLinux可以通過 cofs驅(qū)動(dòng)使宿主機(jī)( Windows XP)與 Linux進(jìn)行文件夾共享。通過簡(jiǎn)單的設(shè)置后,就可以把 Windows系統(tǒng)中的一個(gè)文件夾與 coLinux中的 Linux系統(tǒng)進(jìn)行共享。在 Windows操作該文件夾中文件的時(shí)候,Linux也可以對(duì)其進(jìn)行操作。

  coLinux具有高可移植性的特點(diǎn)。在一個(gè) Windows主機(jī)上建立一個(gè) coLinux發(fā)行版,并在根文件系統(tǒng)中安裝一套定制的應(yīng)用程序。然后,可以將根文件系統(tǒng)轉(zhuǎn)移到另一個(gè)主機(jī)上,并重新啟動(dòng)。這樣就有了一個(gè)可移動(dòng)的開發(fā)平臺(tái),壓縮后的根文件系統(tǒng)完全可以放在一個(gè)標(biāo)準(zhǔn)的 USB盤中。

  3 coLinux的工作原理

  coLinux在 Windows操作系統(tǒng)中作為一個(gè)進(jìn)程執(zhí)行??梢哉J(rèn)為 coLinux是 Linux操作系統(tǒng)與 Windows操作系統(tǒng)之間的一個(gè)接口。兩種操作系統(tǒng)通過將處理器(CPU)的控制權(quán)轉(zhuǎn)讓給彼此從而達(dá)到協(xié)作(Cooperative)的目的。它們通過使用內(nèi)核驅(qū)動(dòng)程序共享網(wǎng)絡(luò)接口、串口等物理資源。

  

  coLinux是一個(gè)修改過的 Linux 內(nèi)核,它可以與另一個(gè)操作系統(tǒng)協(xié)作運(yùn)行。宿主機(jī)(host)操作系統(tǒng)控制本機(jī)的硬件資源,而訪客(guest)操作系統(tǒng)只得到本機(jī)硬件的虛擬抽象。主機(jī)操作系統(tǒng)提供了以特權(quán)級(jí)別(ring 0)執(zhí)行驅(qū)動(dòng)程序的方法,并提供了分配內(nèi)存的方法。

  

  Linux 內(nèi)核所需的其他特性(比如網(wǎng)絡(luò)連接、串口或視頻訪問)通過外部代理來實(shí)現(xiàn),

  比如 coLinux 可以通過 TUNTAP驅(qū)動(dòng)程序訪問外部網(wǎng)絡(luò),通過代理訪問顯示器( X Window System)等。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉