嵌入式Linux系統(tǒng)中內(nèi)核抽象的動(dòng)態(tài)擴(kuò)展技術(shù)
OS Portal的結(jié)構(gòu)通常,內(nèi)核動(dòng)態(tài)加載模塊的時(shí)候,模塊的連接工作由內(nèi)核完成。Chang DaWei的方法的獨(dú)特之處在于把模塊連接的工作交給服務(wù)器端執(zhí)行,不但降低了對(duì)內(nèi)存空間的需求,也減輕了內(nèi)核的負(fù)擔(dān)。
2、其他相關(guān)研究
(1) 基于FPGA的可動(dòng)態(tài)配置的片上系統(tǒng)
FPGA(Field Programmable Gate Array,現(xiàn)場(chǎng)可編程門(mén)陣列)是電子設(shè)計(jì)領(lǐng)域中最具活力和發(fā)展前途的一項(xiàng)技術(shù)。FPGA能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡(jiǎn)單的74電路,都可以用它來(lái)實(shí)現(xiàn)。FPGA在嵌入式系統(tǒng)中的應(yīng)用越來(lái)越廣泛。John Williams和Neil Bergmann用uCLinux作為操作系統(tǒng)平臺(tái),設(shè)計(jì)出可動(dòng)態(tài)配置的片上系統(tǒng)(rSoC)。uCLinux從遠(yuǎn)程服務(wù)器上下載FPGA程序代碼,然后利用shell腳本工具將代碼寫(xiě)進(jìn)FPGA芯片,實(shí)現(xiàn)系統(tǒng)功能的可動(dòng)態(tài)擴(kuò)展。
(2) 動(dòng)態(tài)更新Linux內(nèi)核變量的方法
在進(jìn)行Linux內(nèi)核嵌入式開(kāi)發(fā)時(shí),經(jīng)常使用內(nèi)核啟動(dòng)過(guò)程中讀取靜態(tài)配置文件內(nèi)容的方法對(duì)內(nèi)核某些變量進(jìn)行初始化。當(dāng)靜態(tài)配置文件改動(dòng)時(shí),只有重新啟動(dòng)內(nèi)核才能使新的配置生效。北京科技大學(xué)的田玉鳳等人通過(guò)修改文件./include/linux/proc_fs.h,重新編譯、安裝新內(nèi)核后,利用/proc文件系統(tǒng),可動(dòng)態(tài)改變Linux內(nèi)核變量。
(3) 在用戶(hù)空間擴(kuò)展Linux操作系統(tǒng)功能的方法
與內(nèi)核空間功能擴(kuò)展相比,在用戶(hù)空間擴(kuò)展安全性更強(qiáng),對(duì)Linux操作系統(tǒng)和應(yīng)用程序更加透明。魏東林、盧正鼎等人通過(guò)在用戶(hù)空間跟蹤截獲系統(tǒng)調(diào)用并更改系統(tǒng)調(diào)用的行為來(lái)達(dá)到擴(kuò)展操作系統(tǒng)功能的目的。從本質(zhì)上來(lái)說(shuō),該方法和本文第1部分提到的可擴(kuò)展內(nèi)核技術(shù)是一樣的。
3、動(dòng)態(tài)擴(kuò)展技術(shù)面臨的挑戰(zhàn)和發(fā)展趨勢(shì)
(1) 高實(shí)時(shí)性是嵌入式系統(tǒng)的基本要求
由于Linux是一種通用操作系統(tǒng),而不是一個(gè)真正的實(shí)時(shí)操作系統(tǒng),內(nèi)核不支持事件優(yōu)先級(jí)和搶占實(shí)時(shí)特性(2003年底推出的Linux2.6內(nèi)核實(shí)現(xiàn)了一定程度上的可搶占性),所以,在進(jìn)行嵌入式Linux系統(tǒng)動(dòng)態(tài)擴(kuò)展性研究開(kāi)發(fā)時(shí),首要的問(wèn)題是擴(kuò)展Linux的實(shí)時(shí)性能。系統(tǒng)在進(jìn)行動(dòng)態(tài)擴(kuò)展的過(guò)程中,如果擴(kuò)展的過(guò)程時(shí)間太長(zhǎng),肯定會(huì)影響到系統(tǒng)的實(shí)時(shí)響應(yīng),所以要求擴(kuò)展過(guò)程快速完成,例如基于LKM的內(nèi)核擴(kuò)展機(jī)制。如果模塊加載或替換的時(shí)間太長(zhǎng),在規(guī)定的時(shí)間內(nèi)不能完成,這對(duì)于嵌入式Linux的某些應(yīng)用來(lái)說(shuō)是不能接受的。
(2) 資源有限性是嵌入式系統(tǒng)基本特征
嵌入式系統(tǒng)無(wú)多余軟件也無(wú)多余硬件存儲(chǔ)器,增加存儲(chǔ)空間意味著成本的上升。在非常有限的存儲(chǔ)空間中要實(shí)現(xiàn)快速的內(nèi)核動(dòng)態(tài)擴(kuò)展,對(duì)研究人員來(lái)說(shuō)是一個(gè)極大的挑戰(zhàn)。在桌面PC世界,雖然已經(jīng)有很多動(dòng)態(tài)擴(kuò)展系統(tǒng)功能的方法,但在嵌入式世界很難實(shí)現(xiàn)。例如Linux系統(tǒng)的LKM機(jī)制,若模塊加載過(guò)程不經(jīng)改造,在嵌入式Linux系統(tǒng)中是不能使用的。
(3) 期待完善的集成開(kāi)發(fā)環(huán)境
一個(gè)完整的嵌入式系統(tǒng)的集成開(kāi)發(fā)環(huán)境一般需要編譯/連接器、內(nèi)核調(diào)試/跟蹤器和集成圖形界面開(kāi)發(fā)平臺(tái)。其中的集成圖形界面開(kāi)發(fā)平臺(tái)包括編輯器、調(diào)試器、軟件仿真器和監(jiān)視器等。在Linux系統(tǒng)中,具有功能強(qiáng)大的gcc編譯器工具鏈,使用了基于GNU的調(diào)試器gdb的遠(yuǎn)程調(diào)試功能,一般由一臺(tái)客戶(hù)機(jī)運(yùn)行調(diào)試程序調(diào)試宿主機(jī)運(yùn)行的操作系統(tǒng)內(nèi)核;在使用遠(yuǎn)程開(kāi)發(fā)時(shí)還可以使用交叉平臺(tái)的方式,如在Windows平臺(tái)下的調(diào)試跟蹤器對(duì)Linux的宿主系統(tǒng)作調(diào)試。但是,Linux在基于圖形界面的特定系統(tǒng)定制平臺(tái)的研究上,與Windows操作系統(tǒng)相比還存在差距。因此,要使嵌入式Linux動(dòng)態(tài)擴(kuò)展的研究更加方便、快捷,整體集成開(kāi)發(fā)環(huán)境還有待提高和完善。
桌面Linux使用LKM技術(shù)成功實(shí)現(xiàn)了系統(tǒng)功能的動(dòng)態(tài)擴(kuò)展。嵌入式Linux繼承了桌面Linux絕大部分功能和特性,桌面Linux固有的LKM機(jī)制為嵌入式Linux動(dòng)態(tài)擴(kuò)展的研究帶來(lái)了先天性的優(yōu)勢(shì),可大大節(jié)省研究人員的時(shí)間和精力。在動(dòng)態(tài)模塊替換方面也有了很大的發(fā)展,Chris Walton等人通過(guò)對(duì)二空間拷貝垃圾回收算法進(jìn)行改進(jìn),在2000年提出了一種動(dòng)態(tài)模塊替換的抽象機(jī)模型。
基于JOS的動(dòng)態(tài)擴(kuò)展技術(shù)是一個(gè)主要發(fā)展方向。Java代碼可移植性強(qiáng),容易維護(hù),在嵌入式系統(tǒng)上很有發(fā)展前途。采用Java技術(shù)的另外一個(gè)好處是可實(shí)現(xiàn)代碼重用,在進(jìn)行嵌入式系統(tǒng)開(kāi)發(fā)時(shí)不必每次都從零開(kāi)始。很多研究成果也促進(jìn)了Java在嵌入式系統(tǒng)上的應(yīng)用。Derek Rayside等人在2002年提出一種類(lèi)庫(kù)子集選擇方法[10]。該方法可以讓嵌入式系統(tǒng)中的Java程序在運(yùn)行時(shí)從遠(yuǎn)程Java類(lèi)庫(kù)中僅選擇所需要的子集,然后下載到本地系統(tǒng),從而減小對(duì)嵌入式系統(tǒng)存儲(chǔ)空間的需求,解決了因Java語(yǔ)言的類(lèi)庫(kù)太大而阻礙了在嵌入式系統(tǒng)中的應(yīng)用。
結(jié)束語(yǔ)
隨著嵌入式Linux的快速發(fā)展和嵌入式Linux設(shè)備的普及,人們對(duì)可動(dòng)態(tài)擴(kuò)展的嵌入式Linux的需求越來(lái)越迫切。目前主要的幾種可動(dòng)態(tài)擴(kuò)展系統(tǒng)功能的技術(shù),例如微內(nèi)核技術(shù)、JOS技術(shù)、LKM技術(shù)等,由于嵌入式系統(tǒng)的存儲(chǔ)空間有限,實(shí)時(shí)性要求高,在應(yīng)用到嵌入式Linux系統(tǒng)中時(shí)都有所不足。其中,桌面Linux固有的LKM機(jī)制為嵌入式Linux動(dòng)態(tài)擴(kuò)展的研究帶來(lái)了先天性的優(yōu)勢(shì);另外,Java代碼可移植性強(qiáng),維護(hù)容易,在嵌入式系統(tǒng)上很有發(fā)展前途,因此基于JOS的動(dòng)態(tài)擴(kuò)展技術(shù)是另一個(gè)主要發(fā)展方向。最后,一個(gè)完善的嵌入式Linux集成開(kāi)發(fā)環(huán)境是每一個(gè)開(kāi)發(fā)人員所期待的。本文引用地址:http://m.butianyuan.cn/article/151431.htm linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論