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