<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于路由器的開源嵌入式操作系統(tǒng)學(xué)習(xí)平臺

          基于路由器的開源嵌入式操作系統(tǒng)學(xué)習(xí)平臺

          作者: 時間:2013-04-23 來源:網(wǎng)絡(luò) 收藏

          摘要:針對現(xiàn)有學(xué)習(xí)中存在的問題,設(shè)計了一種既適合基本理論學(xué)習(xí),又可以進行高級開發(fā)實踐的學(xué)習(xí)平臺。通過對WRT54 GL硬件的簡單改造,使其成為學(xué)習(xí)開源操作系統(tǒng)的優(yōu)秀平臺。平臺設(shè)計簡單易行,簡繁得當(dāng),費用低廉,是學(xué)習(xí)的一個好的選擇。
          關(guān)鍵詞:;;;

          引言
          近年來,隨著嵌入式系統(tǒng)的飛速發(fā)展和廣泛應(yīng)用,裸機模式已無法適應(yīng)日益復(fù)雜的系統(tǒng)開發(fā),嵌入式操作系統(tǒng)已經(jīng)成為開發(fā)中不可或缺的核心軟件,對其進行學(xué)習(xí)研究的需求也日益突出。
          嵌入式操作系統(tǒng)的學(xué)習(xí)平臺雖然多種多樣,但選擇一個合適的平臺卻并不簡單。商業(yè)系統(tǒng)通常有著完善的支持,但復(fù)雜的架構(gòu)、昂貴的價格和不公開的源代碼使得它們難以成為初學(xué)者學(xué)習(xí)的對象。主流的開源操作系統(tǒng),雖然可以獲得源代碼實現(xiàn),但龐大的代碼行,使得系統(tǒng)的機理被復(fù)雜的細(xì)節(jié)掩蓋,依然令人望而卻步。專門的教學(xué)操作系統(tǒng),有針對地簡化了代碼實現(xiàn),但又因為缺乏應(yīng)用實例而缺乏公信力。
          此外還存在硬件平臺成本過高造成的軟硬件脫節(jié)的問題,完全脫離硬件平臺的軟件學(xué)習(xí)使人難以全面掌握嵌入式系統(tǒng)?;谔摂M環(huán)境進行仿真雖然一定程度上解決了這個問題,但是缺少硬件平臺的實踐終究無法獲得較深的感性認(rèn)識,極易忽視很多真實環(huán)境的注意事項。
          針對這些問題,本文提出了一種基于設(shè)計嵌入式操作系統(tǒng)學(xué)習(xí)平臺的思路,以LinKsys WRT54GL路由器作為硬件平臺,選擇開源作為主操作系統(tǒng)用于高級實踐開發(fā)的學(xué)習(xí),嵌入式作為從操作系統(tǒng)用于基礎(chǔ)理論的學(xué)習(xí)。把兩個優(yōu)秀的嵌入式操作系統(tǒng)集中到同一個硬件平臺,比較好地解決了當(dāng)前嵌入式操作系統(tǒng)學(xué)習(xí)平臺存在的功能繁簡不當(dāng)、軟硬件容易脫節(jié)的問題,同時大大降低了學(xué)習(xí)成本。

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

          路由器相關(guān)文章:路由器工作原理


          路由器相關(guān)文章:路由器工作原理



          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();