基于路由器的開(kāi)源嵌入式操作系統(tǒng)學(xué)習(xí)平臺(tái)
摘要:針對(duì)現(xiàn)有嵌入式操作系統(tǒng)學(xué)習(xí)中存在的問(wèn)題,設(shè)計(jì)了一種既適合基本理論學(xué)習(xí),又可以進(jìn)行高級(jí)開(kāi)發(fā)實(shí)踐的學(xué)習(xí)平臺(tái)。通過(guò)對(duì)WRT54 GL路由器硬件的簡(jiǎn)單改造,使其成為學(xué)習(xí)開(kāi)源OpenWrt和Xinu操作系統(tǒng)的優(yōu)秀平臺(tái)。平臺(tái)設(shè)計(jì)簡(jiǎn)單易行,簡(jiǎn)繁得當(dāng),費(fèi)用低廉,是嵌入式操作系統(tǒng)學(xué)習(xí)的一個(gè)好的選擇。
關(guān)鍵詞:路由器;嵌入式操作系統(tǒng);OpenWrt;Xinu
引言
近年來(lái),隨著嵌入式系統(tǒng)的飛速發(fā)展和廣泛應(yīng)用,裸機(jī)模式已無(wú)法適應(yīng)日益復(fù)雜的系統(tǒng)開(kāi)發(fā),嵌入式操作系統(tǒng)已經(jīng)成為開(kāi)發(fā)中不可或缺的核心軟件,對(duì)其進(jìn)行學(xué)習(xí)研究的需求也日益突出。
嵌入式操作系統(tǒng)的學(xué)習(xí)平臺(tái)雖然多種多樣,但選擇一個(gè)合適的平臺(tái)卻并不簡(jiǎn)單。商業(yè)系統(tǒng)通常有著完善的支持,但復(fù)雜的架構(gòu)、昂貴的價(jià)格和不公開(kāi)的源代碼使得它們難以成為初學(xué)者學(xué)習(xí)的對(duì)象。主流的開(kāi)源操作系統(tǒng),雖然可以獲得源代碼實(shí)現(xiàn),但龐大的代碼行,使得系統(tǒng)的機(jī)理被復(fù)雜的細(xì)節(jié)掩蓋,依然令人望而卻步。專門的教學(xué)操作系統(tǒng),有針對(duì)地簡(jiǎn)化了代碼實(shí)現(xiàn),但又因?yàn)槿狈?yīng)用實(shí)例而缺乏公信力。
此外還存在硬件平臺(tái)成本過(guò)高造成的軟硬件脫節(jié)的問(wèn)題,完全脫離硬件平臺(tái)的軟件學(xué)習(xí)使人難以全面掌握嵌入式系統(tǒng)。基于虛擬環(huán)境進(jìn)行仿真雖然一定程度上解決了這個(gè)問(wèn)題,但是缺少硬件平臺(tái)的實(shí)踐終究無(wú)法獲得較深的感性認(rèn)識(shí),極易忽視很多真實(shí)環(huán)境的注意事項(xiàng)。
針對(duì)這些問(wèn)題,本文提出了一種基于路由器設(shè)計(jì)嵌入式操作系統(tǒng)學(xué)習(xí)平臺(tái)的思路,以LinKsys WRT54GL路由器作為硬件平臺(tái),選擇開(kāi)源OpenWrt作為主操作系統(tǒng)用于高級(jí)實(shí)踐開(kāi)發(fā)的學(xué)習(xí),嵌入式Xinu作為從操作系統(tǒng)用于基礎(chǔ)理論的學(xué)習(xí)。把兩個(gè)優(yōu)秀的嵌入式操作系統(tǒng)集中到同一個(gè)硬件平臺(tái),比較好地解決了當(dāng)前嵌入式操作系統(tǒng)學(xué)習(xí)平臺(tái)存在的功能繁簡(jiǎn)不當(dāng)、軟硬件容易脫節(jié)的問(wèn)題,同時(shí)大大降低了學(xué)習(xí)成本。
1 平臺(tái)的架構(gòu)設(shè)計(jì)
1.1 硬件平臺(tái)選擇
現(xiàn)在,市面上常用的無(wú)線路由器大多采用的是ARM或MIPS的處理器,這些產(chǎn)品本身就是嵌入式系統(tǒng)的典型應(yīng)用。更為重要的是有很多產(chǎn)品不僅有著強(qiáng)大的運(yùn)算能力和豐富的板載資源,而且支持眾多第三方固件,可以通過(guò)升級(jí)固件豐富功能,擴(kuò)展能力極佳,作為嵌入式操作系
統(tǒng)的硬件平臺(tái)非常合適。
LinKsys公司的WRT54GL是一個(gè)極易采購(gòu)的經(jīng)典無(wú)線路由器,它擁有200 MHz的處理器,板載4 MB Flash和16 MB Ram完全勝任嵌入式開(kāi)發(fā)的學(xué)習(xí)、研究和開(kāi)發(fā)。更為重要的是,在網(wǎng)絡(luò)上已有很多為它設(shè)計(jì)的開(kāi)源項(xiàng)目,使得學(xué)習(xí)資源唾手可得。
1.2 軟件平臺(tái)架構(gòu)
考慮到學(xué)習(xí)研究的需要,源代碼的公開(kāi)與否是選擇軟件平臺(tái)的首要條件,因此確立了以開(kāi)源操作系統(tǒng)為選擇目標(biāo)。同時(shí)考慮到功能的平衡——既要能夠用于操作系統(tǒng)基本原理的學(xué)習(xí),又要能夠完成進(jìn)一步的高級(jí)功能學(xué)習(xí),繁簡(jiǎn)得當(dāng)?shù)碾p操作系統(tǒng)的軟件架構(gòu)就成為當(dāng)然的選擇。這樣的架構(gòu)使得既可以在學(xué)習(xí)初期利用代碼較為簡(jiǎn)潔的從操作系統(tǒng)完成理論的學(xué)習(xí)和實(shí)踐,又可以在后期利用功能強(qiáng)大的主操作系統(tǒng)完成進(jìn)階學(xué)習(xí),兩者結(jié)合相得益彰,貫穿整個(gè)嵌入式操作系統(tǒng)的學(xué)習(xí)過(guò)程。
1.2.1 主操作系統(tǒng)
在選定了WRT54GL作為硬件平臺(tái)后,自然就需要為其選擇適當(dāng)?shù)拈_(kāi)源路由操作系統(tǒng)。開(kāi)源路由操作系統(tǒng)非常之多,常見(jiàn)的有Vyatta、Cle arOS、Endian、Untangle、RouterOS、HyperWRT、OpenWrt、DD—WRT等。其中OpenWrt和DD—WRT獲得了更為廣泛的支持,有著良好的社區(qū)資源,它們都可以被看作一個(gè)獨(dú)立的嵌入式設(shè)備的Linux發(fā)行版,而不僅僅是一個(gè)單一的、靜態(tài)的固件,支持的硬件相當(dāng)豐富,WRT54GL也不例外。
DD—WRT功能強(qiáng)大而且簡(jiǎn)單易用,它重點(diǎn)關(guān)注的是Web配置方式,這使得DD—WRT的Web功能比OpenWrt強(qiáng)大得多,因此DD—WRT的用戶群很龐大。
OpenWrt的優(yōu)勢(shì)是用戶可以隨意地安裝軟件。OpenWrt的包管理提供了一個(gè)完全可寫的文件系統(tǒng),并允許自定義設(shè)備和應(yīng)用軟件包,具有完全定制的能力。
DD—WRT和OpenWrt各有優(yōu)缺點(diǎn)??偟膩?lái)說(shuō)DD—WRT傾向于關(guān)注使用者的感受,因此較為易用,OpenWrt傾向于關(guān)注開(kāi)發(fā)者的使用,因此更為開(kāi)放。
但是就學(xué)習(xí)研究而言,OpenWrt的擴(kuò)展性要更勝一籌?,F(xiàn)在的DD—WRT雖然也可以自己裝軟件,但只能裝在jffs或mmc目錄中,除jffs、mmc、tmp目錄外其他的目錄是不可寫的,而OpenWrt則不存在這些限制。
此外,OpenWrt系統(tǒng)使用和Linux類似的庫(kù)文件,比如它所包含的uClibc的C庫(kù)使得開(kāi)發(fā)人員通過(guò)簡(jiǎn)單的補(bǔ)丁包即可輕松運(yùn)行現(xiàn)有的Linux程序。而且程序通過(guò)TFTP和CFE上傳到路由器后,用戶還可以使用串行口進(jìn)行通信和調(diào)試。因此我們選擇OpenWrt作為主操作系統(tǒng),便于在掌握了操作系統(tǒng)基本理論之后,進(jìn)行高階的學(xué)習(xí)研究。
1.2.2 從操作系統(tǒng)
Xinu操作系統(tǒng)20世紀(jì)80年代中期誕生于美國(guó)普渡大學(xué),目標(biāo)主要是用于操作系統(tǒng)教學(xué)。它是一種小巧、優(yōu)雅的操作系統(tǒng),支持動(dòng)態(tài)創(chuàng)建進(jìn)程、動(dòng)態(tài)分配內(nèi)存等操作系統(tǒng)的功能,有shell命令和I/O函數(shù)。同時(shí)支持TCP/IP協(xié)議,可以管理本地和遠(yuǎn)程文件系統(tǒng)。
除了應(yīng)用于教育領(lǐng)域以外,由于Xinu的體積很小,功能強(qiáng)大,所以也非常適用于嵌人式環(huán)境,現(xiàn)在已被移植到從8位、16位到32位嵌入式處理器平臺(tái)上,并有多個(gè)工業(yè)級(jí)的應(yīng)用,有較好的應(yīng)用價(jià)值。
美國(guó)馬奎特大學(xué)的嵌入式Xinu項(xiàng)目對(duì)其進(jìn)行了相應(yīng)的研究,并將其移植到嵌入式MIPS平臺(tái)。嵌入式Xinu是一個(gè)持續(xù)研究和實(shí)施的項(xiàng)目,當(dāng)前版本支持Linksys公司的WRT54GL和WRT160NL的路由器,以及Qemu虛擬機(jī)。因此我們選擇嵌入式Xinu作為從操作系統(tǒng)進(jìn)行基礎(chǔ)理論的學(xué)習(xí)。
路由器相關(guān)文章:路由器工作原理
路由器相關(guān)文章:路由器工作原理
評(píng)論