當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]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版本,在其官方網站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í)行。可以認為 coLinux是 Linux操作系統(tǒng)與 Windows操作系統(tǒng)之間的一個接口。兩種操作系統(tǒng)通過將處理器(CPU)的控制權轉讓給彼此從而達到協(xié)作(Cooperative)的目的。它們通過使用內核驅動程序共享網絡接口、串口等物理資源。

  

 

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

  

 

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

  比如 coLinux 可以通過 TUNTAP驅動程序訪問外部網絡,通過代理訪問顯示器( X Window System)等。[!--empirenews.page--]coLinux的安裝及配置

 

  coLinux的安裝非常容易,包括幾個簡單的步驟。安裝過程中 coLinux提示可以從網上下載 ArchLinux、Debian 4.0、Fedora 7、Gentoo Deluxe、Ubuntu 7.1等幾個 Linux文件系統(tǒng)映像的壓縮包。點擊相應的“ *Notes”可以打開對應的說明文字與下載的網頁。下面筆者以 Fedora9的文件系統(tǒng)映像壓縮包為例來介紹 coLinux中 Linux的安裝和配置。

  從網上下載的 Fedora9文件系統(tǒng)映像壓縮包中包含 5個文件,這些文件對于主機操作系統(tǒng)(Windows)來說都是一些普通的文件,但是對于 coLinux來說其中某些文件(Fedora-9.img、 swap.img)卻是可讀寫的 ext3 / swap類型的 Linux文件系統(tǒng)。

  Fedora-9.img是一個 4G大小的 Fedora9文件系統(tǒng)映像,內含了 Fedora9系統(tǒng)中必需的所有文件,并預先配置了 slirp的網絡,gdm登陸的 Xvnc以及支持聲音的 ESD等功能。使用 Fedora9時無需對宿主機的網絡功能方面做任何配置,就可以通過宿主機的 API來控制當前的網絡適配器(網卡)來收發(fā) TCP/UDP數(shù)據(jù)包。由于 Slirp不能收發(fā) ICMP信息,ping和 traceroute等命令無法工作,但是其他網絡功能絲毫不會受到影響。從外部訪問 Linux,需要進行端口重定向,在 coLinux配置文件中可以進行簡單設置。另外 coLinux也為 Linux之間提供了 tuntap與 pcap-bridge的通訊模式,具體信息可以參考 colinux自帶的幫助文檔。

  swap.img:這是一個 512M的交換分區(qū)的映像。

  start-Fedora-9.bat:啟動 Fedora9+coLinux的批處理文件(需要根據(jù)情況進行修改) ,里面是一個啟動 coLinux的命令,命令后面添加了相關的配置參數(shù)。

  start-Fedora-9.sh:啟動 Fedora9+coLinux的腳本文件(需要根據(jù)情況進行修改,于 Cygwin環(huán)境的 Bash下運行)。

  README-Fedora-9.txt:本映像的說明文件。

  將下載的文件解壓釋放出來,編輯文件 start-Fedora-9.bat,根據(jù)“ Fedora-9.img”和 “swap.img”在宿主機(Windows系統(tǒng))中的真實位置,對 cobd0、cobd1進行適當?shù)男薷?注意:使用“/”進行目錄層次分隔)即可。修改完成后,將其保存在 coLinux軟件的安裝位置,如 “C:Program FilescoLinux”,雙擊即可啟動 coLinux。Fedora9 Linux開始運行后, Linux啟動信息被發(fā)送到一個新打開的 FLTK控制臺中。如果 cobd0、cobd1的配置信息無誤,則能夠順利啟動。

  5構造擁有 Window和 Linux雙重優(yōu)點的嵌入式開發(fā)環(huán)境

  與 Cygwin相似, coLinux允許在 Windows操作系統(tǒng)上開發(fā)和執(zhí)行 Linux應用程序。但是基于 coLinux的 Linux系統(tǒng)可以用 apt-get/yum等應用程序管理軟件安裝、更新或刪除應用程序,從而達到對 Linux操作系統(tǒng)進行維護的目的。

  與 Cygwin不同的是,在 coLinux上執(zhí)行的 Linux應用程序不需要重新構建。從這個角度來講,在 coLinux中與 Windows 操作系統(tǒng)協(xié)作的不是一個模擬的環(huán)境,而是一個真正的 Linux操作系統(tǒng)。

  Fedora9啟動后,呈現(xiàn)出一個 FLTK控制臺,可以在里面對 Fedora9進行基本的操作。為了搭建一個嵌入式開發(fā)環(huán)境,還需要安裝部分軟件,如 gcc工具鏈等。由于 Fedora9已經配置了 slirp網絡功能,這些軟件可以直接通過網絡進行安裝。輸入簡單的 “yum install gcc”按照提示就可以順利完成 gcc工具鏈的安裝。其他所缺的軟件可以按照同樣的方法進行安裝。如果網絡上無法找到您必須的某些東西,也可以通過源代碼重建來得到。

  Fedora 9通過 cofs驅動與宿主機( Windows XP)進行文件共享。 cofs類似于 UML主機

  文件系統(tǒng),用于將宿主機 VFS(虛擬文件系統(tǒng))和 Linux的 VFS進行綁定。這樣就可以將宿主機中的文件夾 mount(掛載)到 Linux的文件系統(tǒng)中,如此一來,宿主機和 Linux可以同時對該文件夾中的內容進行讀寫操作,方便了 Windows與 Linux之間的文件交換。

  文件共享的配置如下:在啟動 coLinux的配置參數(shù)中添加如下內容:

  cofs0=”D:/test/”

  重新啟動 coLinux后,在控制臺中執(zhí)行如下命令,就會將 Windows中的“D:test”文件夾掛載到 Fedora系統(tǒng)中的 /mnt文件夾下。

  mount -t cofs cofs0 -o uid=dax,gid=dax /mnt

  如此以來 Windows XP和 Fedora都可以完全訪問該文件夾中的內容,詳細參數(shù)可參考 coLinux自帶的幫助文件 cofs.txt。Linux系統(tǒng)中所需要用到的軟件,可以用 Windows中的軟件下載,保存到“ D:test”文件夾中,然后在 Linux系統(tǒng)中直接進行安裝。也可把需要使用 Linux環(huán)境進行編譯的代碼放到“ D:test”文件夾下,可在 Windows系統(tǒng)中用熟悉的編輯工具編輯源代碼,而在 Linux系統(tǒng)中編譯,編譯的結果可以使用 Windows下的工具進行下載調試等。

  6 總結

  本文介紹了一種可以在 Windows系統(tǒng)中以原生方式運行 Linux的軟件—— coLinux。通過分析 coLinux的運行機制,闡述了基于 coLinux的 Linux系統(tǒng)的優(yōu)點,并對基于 coLinux的 Fedora 9的基本配置方法進行了介紹,為熟悉 Windows平臺開發(fā)的人員提供了一個更好的使用 Linux的方法,在實踐中有一定的指導意義。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉