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