www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]coLinux在構(gòu)建嵌入式開(kāi)發(fā)環(huán)境中的應(yīng)用

1 引言
 GNU項(xiàng)目為嵌入式開(kāi)發(fā)提供了優(yōu)秀的交叉開(kāi)發(fā)工具鏈,雖然這些工具鏈也移植到了 Windows系統(tǒng)中,但是為了在 Windows系統(tǒng)中使用,通常還需要另外一個(gè)模擬的 Linux環(huán)境——Cygwin,效率是一個(gè)新的問(wèn)題。另外, Cygwin環(huán)境也不是一個(gè)真正的 Linux環(huán)境,相比于真正的 Linux環(huán)境來(lái)說(shuō), Cygwin仍顯不足。從根本上來(lái)講, GNU工具鏈?zhǔn)腔?Linux操作系統(tǒng)環(huán)境而開(kāi)發(fā)的。
在眾多的開(kāi)源項(xiàng)目中,與嵌入式相關(guān)的開(kāi)發(fā)項(xiàng)目大多數(shù)仍然需要基于 Linux系統(tǒng)進(jìn)行編譯和鏈接。雖然在 Cygwin中通過(guò)復(fù)雜的設(shè)置也有可能滿足相關(guān)開(kāi)發(fā)需要,但是對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),優(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)行文件傳遞,還需要做一些額外的工作。
然而 coLinux的出現(xiàn),改變了這一切。
2 coLinux簡(jiǎn)介
coLinux也是一個(gè)源代碼開(kāi)放的軟件,全名為 Cooperative Linux(協(xié)作 Linux)。coLinux是第一個(gè)能在 Win32平臺(tái)上高效地以原生(native)方式運(yùn)行 Linux的軟件, Linux在 coLinux中的運(yùn)行效率極高,遠(yuǎn)遠(yuǎn)超過(guò)虛擬機(jī)的運(yùn)行效率(為了模擬一條匯編指令,通常虛擬機(jī)要使用一段 C語(yǔ)言代碼來(lái)完成)。 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程序若不重新構(gòu)建,就無(wú)法在 Cygwin中直接運(yùn)行。
coLinux可以通過(guò) cofs驅(qū)動(dòng)使宿主機(jī)( Windows XP)與 Linux進(jìn)行文件夾共享。通過(guò)簡(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)的開(kāi)發(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)通過(guò)將處理器(CPU)的控制權(quán)轉(zhuǎn)讓給彼此從而達(dá)到協(xié)作(Cooperative)的目的。它們通過(guò)使用內(nèi)核驅(qū)動(dòng)程序共享網(wǎng)絡(luò)接口、串口等物理資源。

500)this.style.width=500;" border="0" />

 

[!--empirenews.page--]
coLinux是一個(gè)修改過(guò)的 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)存的方法。
 

 500)this.style.width=500;" border="0" />

 Linux 內(nèi)核所需的其他特性(比如網(wǎng)絡(luò)連接、串口或視頻訪問(wèn))通過(guò)外部代理來(lái)實(shí)現(xiàn),
比如 coLinux 可以通過(guò) TUNTAP驅(qū)動(dòng)程序訪問(wèn)外部網(wǎng)絡(luò),通過(guò)代理訪問(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文件系統(tǒng)映像的壓縮包。點(diǎn)擊相應(yīng)的“ *Notes”可以打開(kāi)對(duì)應(yīng)的說(shuō)明文字與下載的網(wǎng)頁(yè)。下面筆者以 Fedora9的文件系統(tǒng)映像壓縮包為例來(lái)介紹 coLinux中 Linux的安裝和配置。
從網(wǎng)上下載的 Fedora9文件系統(tǒng)映像壓縮包中包含 5個(gè)文件,這些文件對(duì)于主機(jī)操作系統(tǒng)(Windows)來(lái)說(shuō)都是一些普通的文件,但是對(duì)于 coLinux來(lái)說(shuō)其中某些文件(Fedora-9.img、 swap.img)卻是可讀寫的 ext3 / swap類型的 Linux文件系統(tǒng)。
Fedora-9.img是一個(gè) 4G大小的 Fedora9文件系統(tǒng)映像,內(nèi)含了 Fedora9系統(tǒng)中必需的所有文件,并預(yù)先配置了 slirp的網(wǎng)絡(luò),gdm登陸的 Xvnc以及支持聲音的 ESD等功能。使用 Fedora9時(shí)無(wú)需對(duì)宿主機(jī)的網(wǎng)絡(luò)功能方面做任何配置,就可以通過(guò)宿主機(jī)的 API來(lái)控制當(dāng)前的網(wǎng)絡(luò)適配器(網(wǎng)卡)來(lái)收發(fā) TCP/UDP數(shù)據(jù)包。由于 Slirp不能收發(fā) ICMP信息,ping和 traceroute等命令無(wú)法工作,但是其他網(wǎng)絡(luò)功能絲毫不會(huì)受到影響。從外部訪問(wèn) Linux,需要進(jìn)行端口重定向,在 coLinux配置文件中可以進(jìn)行簡(jiǎn)單設(shè)置。另外 coLinux也為 Linux之間提供了 tuntap與 pcap-bridge的通訊模式,具體信息可以參考 colinux自帶的幫助文檔。
swap.img:這是一個(gè) 512M的交換分區(qū)的映像。
start-Fedora-9.bat:?jiǎn)?dòng) Fedora9+coLinux的批處理文件(需要根據(jù)情況進(jìn)行修改) ,里面是一個(gè)啟動(dòng) coLinux的命令,命令后面添加了相關(guān)的配置參數(shù)。
start-Fedora-9.sh:?jiǎn)?dòng) Fedora9+coLinux的腳本文件(需要根據(jù)情況進(jìn)行修改,于 Cygwin環(huán)境的 Bash下運(yùn)行)。
README-Fedora-9.txt:本映像的說(shuō)明文件。
將下載的文件解壓釋放出來(lái),編輯文件 start-Fedora-9.bat,根據(jù)“ Fedora-9.img”和 “swap.img”在宿主機(jī)(Windows系統(tǒng))中的真實(shí)位置,對(duì) cobd0、cobd1進(jìn)行適當(dāng)?shù)男薷模ㄗ⒁猓菏褂谩?”進(jìn)行目錄層次分隔)即可。修改完成后,將其保存在 coLinux軟件的安裝位置,如 “C:Program FilescoLinux”,雙擊即可啟動(dòng) coLinux。Fedora9 Linux開(kāi)始運(yùn)行后, Linux啟動(dòng)信息被發(fā)送到一個(gè)新打開(kāi)的 FLTK控制臺(tái)中。如果 cobd0、cobd1的配置信息無(wú)誤,則能夠順利啟動(dòng)。
5構(gòu)造擁有 Window和 Linux雙重優(yōu)點(diǎn)的嵌入式開(kāi)發(fā)環(huán)境
與 Cygwin相似, coLinux允許在 Windows操作系統(tǒng)上開(kāi)發(fā)和執(zhí)行 Linux應(yīng)用程序。但是基于 coLinux的 Linux系統(tǒng)可以用 apt-get/yum等應(yīng)用程序管理軟件安裝、更新或刪除應(yīng)用程序,從而達(dá)到對(duì) Linux操作系統(tǒng)進(jìn)行維護(hù)的目的。[!--empirenews.page--]
與 Cygwin不同的是,在 coLinux上執(zhí)行的 Linux應(yīng)用程序不需要重新構(gòu)建。從這個(gè)角度來(lái)講,在 coLinux中與 Windows 操作系統(tǒng)協(xié)作的不是一個(gè)模擬的環(huán)境,而是一個(gè)真正的 Linux操作系統(tǒng)。
Fedora9啟動(dòng)后,呈現(xiàn)出一個(gè) FLTK控制臺(tái),可以在里面對(duì) Fedora9進(jìn)行基本的操作。為了搭建一個(gè)嵌入式開(kāi)發(fā)環(huán)境,還需要安裝部分軟件,如 gcc工具鏈等。由于 Fedora9已經(jīng)配置了 slirp網(wǎng)絡(luò)功能,這些軟件可以直接通過(guò)網(wǎng)絡(luò)進(jìn)行安裝。輸入簡(jiǎn)單的 “yum install gcc”按照提示就可以順利完成 gcc工具鏈的安裝。其他所缺的軟件可以按照同樣的方法進(jìn)行安裝。如果網(wǎng)絡(luò)上無(wú)法找到您必須的某些東西,也可以通過(guò)源代碼重建來(lái)得到。
Fedora 9通過(guò) cofs驅(qū)動(dòng)與宿主機(jī)( Windows XP)進(jìn)行文件共享。 cofs類似于 UML主機(jī)
文件系統(tǒng),用于將宿主機(jī) VFS(虛擬文件系統(tǒng))和 Linux的 VFS進(jìn)行綁定。這樣就可以將宿主機(jī)中的文件夾 mount(掛載)到 Linux的文件系統(tǒng)中,如此一來(lái),宿主機(jī)和 Linux可以同時(shí)對(duì)該文件夾中的內(nèi)容進(jìn)行讀寫操作,方便了 Windows與 Linux之間的文件交換。
文件共享的配置如下:在啟動(dòng) coLinux的配置參數(shù)中添加如下內(nèi)容:
cofs0=”D:/test/”
重新啟動(dòng) coLinux后,在控制臺(tái)中執(zhí)行如下命令,就會(huì)將 Windows中的“D:test”文件夾掛載到 Fedora系統(tǒng)中的 /mnt文件夾下。
mount -t cofs cofs0 -o uid=dax,gid=dax /mnt
如此以來(lái) Windows XP和 Fedora都可以完全訪問(wèn)該文件夾中的內(nèi)容,詳細(xì)參數(shù)可參考 coLinux自帶的幫助文件 cofs.txt。Linux系統(tǒng)中所需要用到的軟件,可以用 Windows中的軟件下載,保存到“ D:test”文件夾中,然后在 Linux系統(tǒng)中直接進(jìn)行安裝。也可把需要使用 Linux環(huán)境進(jìn)行編譯的代碼放到“ D:test”文件夾下,可在 Windows系統(tǒng)中用熟悉的編輯工具編輯源代碼,而在 Linux系統(tǒng)中編譯,編譯的結(jié)果可以使用 Windows下的工具進(jìn)行下載調(diào)試等。
6 總結(jié)
本文介紹了一種可以在 Windows系統(tǒng)中以原生方式運(yùn)行 Linux的軟件—— coLinux。通過(guò)分析 coLinux的運(yùn)行機(jī)制,闡述了基于 coLinux的 Linux系統(tǒng)的優(yōu)點(diǎn),并對(duì)基于 coLinux的 Fedora 9的基本配置方法進(jìn)行了介紹,為熟悉 Windows平臺(tái)開(kāi)發(fā)的人員提供了一個(gè)更好的使用 Linux的方法,在實(shí)踐中有一定的指導(dǎo)意義。
創(chuàng)新點(diǎn):使用 coLinux在 Windows環(huán)境中創(chuàng)建一個(gè)運(yùn)行高效、配置簡(jiǎn)單、真正的 Linux嵌入式開(kāi)發(fā)環(huán)境,不但避免了開(kāi)發(fā)人員安裝 Windows+Linux雙系統(tǒng)后頻繁重新啟動(dòng)計(jì)算機(jī)切換操作系統(tǒng)的不便,而且比 Windows系統(tǒng)中運(yùn)行 Linux虛擬機(jī)有更高的運(yùn)行效率以及更少的主機(jī)資源需求,最重要的是可以讓開(kāi)發(fā)人員同時(shí)利用 Linux與 Windows的優(yōu)點(diǎn),簡(jiǎn)化了開(kāi)發(fā)環(huán)境的同時(shí)也提高了開(kāi)發(fā)效率,這在實(shí)踐中有很好的實(shí)用價(jià)值。

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

學(xué)習(xí)Linux動(dòng)態(tài)鏈接庫(kù)是一個(gè)繞不開(kāi)的話題,我們今天就一起來(lái)看一下什么是動(dòng)態(tài)鏈接庫(kù)、動(dòng)態(tài)鏈接庫(kù)有什么好處、如何編譯出一個(gè)動(dòng)態(tài)鏈接庫(kù)等幾個(gè)關(guān)于動(dòng)態(tài)鏈接庫(kù)的幾個(gè)基本概念,廢話少說(shuō)咱們直接開(kāi)始

關(guān)鍵字: Linux 靜態(tài)鏈接庫(kù) 動(dòng)態(tài)鏈接庫(kù)

在Linux內(nèi)核中,提供了一個(gè)用來(lái)創(chuàng)建雙向循環(huán)鏈表的結(jié)構(gòu) list_head。雖然linux內(nèi)核是用C語(yǔ)言寫的,但是list_head的引入,使得內(nèi)核數(shù)據(jù)結(jié)構(gòu)也可以擁有面向?qū)ο蟮奶匦?,通過(guò)使用操作list_head 的通...

關(guān)鍵字: Linux 內(nèi)核鏈表

(全球TMT2022年9月15日訊)IBM于美國(guó)東部時(shí)間9月13日發(fā)布其下一代LinuxONE服務(wù)器,這是一個(gè)具有高度擴(kuò)展性的基于Linux和Kubernetes的平臺(tái),旨在為企業(yè)提供所需的可擴(kuò)展性,使其能用一個(gè)單一系...

關(guān)鍵字: IBM Linux NET 可擴(kuò)展性

下一代LinuxONE服務(wù)器擴(kuò)展了IBM幫助行業(yè)客戶實(shí)現(xiàn)可持續(xù)目標(biāo)的能力,花旗銀行就是很好的例子 北京2022年9月14日 /美通社/ -- IBM(紐約證券交易所:IBM)于美國(guó)東部時(shí)間9月13日發(fā)布其下一...

關(guān)鍵字: IBM Linux X86 數(shù)據(jù)中心

(全球TMT2022年9月15日訊)IBM發(fā)布其下一代LinuxONE服務(wù)器,這是一個(gè)具有高度擴(kuò)展性的基于Linux和Kubernetes的平臺(tái),旨在為企業(yè)提供所需的可擴(kuò)展性,使其用一個(gè)單一系統(tǒng)就能支持成千上萬(wàn)的工作負(fù)...

關(guān)鍵字: GROUND IBM Linux 亞馬遜

為了使得多種設(shè)備能通過(guò)網(wǎng)絡(luò)相互通信,和為了解決各種不同設(shè)備在網(wǎng)絡(luò)互聯(lián)中的兼容性問(wèn)題。

關(guān)鍵字: Linux 網(wǎng)絡(luò)包

北京2022年8月26日 /美通社/ -- 雙碳目標(biāo)的實(shí)現(xiàn)或許任重道遠(yuǎn),但是低碳、可持續(xù)的理念已經(jīng)滲透到我們生活工作的方方面面。持續(xù)整個(gè)夏季的異常高溫,以及四川等地限電,讓許...

關(guān)鍵字: IBM 可持續(xù)發(fā)展 AI Linux

摩爾線程MTT S系列GPU與浩辰CAD Linux 版V2022軟件產(chǎn)品近日完成兼容性適配。在雙方工程師的通力協(xié)作下,摩爾線程MTT S系列GPU能夠?yàn)楹瞥紺AD Linux軟件提供快速運(yùn)行所需的性能,并在持久的高負(fù)載...

關(guān)鍵字: 摩爾線程 GPU Linux

近日,摩爾線程MTT S系列GPU與中望二三維CAD Linux版產(chǎn)品完成產(chǎn)品兼容性認(rèn)證。經(jīng)摩爾線程和中望軟件雙方團(tuán)隊(duì)的共同嚴(yán)格測(cè)試,中望CAD Linux、中望3D Linux、中望CAD機(jī)械版Linux、中望CAD建...

關(guān)鍵字: 摩爾線程 GPU Linux

IAR Embedded Workbench for Arm 支持全新 Arm Cortex-M85 處理器,幫助開(kāi)發(fā)者為未來(lái)的物聯(lián)網(wǎng)、智能家居和 AI/ML 應(yīng)用創(chuàng)建強(qiáng)大的嵌入式開(kāi)發(fā)解決方案

關(guān)鍵字: IAR Systems 處理器 嵌入式開(kāi)發(fā)

嵌入式教程

6897 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉