當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀] 隨著嵌入式技術的快速發(fā)展和嵌入式設備的普及,嵌入式應用發(fā)展的一個關鍵趨勢是從靜態(tài)的、固定的系統(tǒng)功能到動態(tài)的、可擴展的系統(tǒng)功能。本文主要進行嵌入式Linux系統(tǒng)內(nèi)核動

 隨著嵌入式技術的快速發(fā)展和嵌入式設備的普及,嵌入式應用發(fā)展的一個關鍵趨勢是從靜態(tài)的、固定的系統(tǒng)功能到動態(tài)的、可擴展的系統(tǒng)功能。

本文主要進行嵌入式Linux系統(tǒng)內(nèi)核動態(tài)擴展技術的討論。首先,介紹嵌入式 Linux系統(tǒng)的發(fā)展狀況和研究嵌入式Linux 動態(tài)擴展性的意義。然后,討論目前幾種主要的核心動態(tài)擴展技術,以及各種技術在嵌入式系統(tǒng)上的優(yōu)缺點。最后,分析嵌入式Linux動態(tài)擴展性研究所面臨的挑戰(zhàn)和發(fā)展趨勢。

引言

嵌入式系統(tǒng)是計算機技術、通信技術、半導體技術、微電子技術、語音圖像數(shù)據(jù)傳輸技術等先進技術和具體應用對象相結合后的更新?lián)Q代產(chǎn)品。系統(tǒng)無多余軟件,硬件亦無多余存儲器,可靠性高,成本低,體積小,功耗少;可應用于家電、工業(yè)、通信、國防等領域。其產(chǎn)品形態(tài)豐富多樣,市場潛力巨大。

嵌入式Linux的出現(xiàn),給整個嵌入式世界帶來了無限生機。Linux具有內(nèi)核可裁剪、效率高、穩(wěn)定性好、移植性好、源代碼開放等優(yōu)點,還內(nèi)含了完整的TCP/IP網(wǎng)絡協(xié)議棧,很適合在嵌入式領域應用。與傳統(tǒng)的實時操作系統(tǒng)(RTOS)相比,采用嵌入式 Linux這樣開放源碼的操作系統(tǒng)的另外一個好處是,Linux開發(fā)團體看來會比RTOS的供應商更快地支持新的IP協(xié)議和其他協(xié)議。例如,用于 Linux的設備驅動程序要比用于商業(yè)操作系統(tǒng)的設備驅動程序多。因此,越來越多的公司和個人正在把Linux作為嵌入式操作系統(tǒng)的首選。

嵌入式系統(tǒng)由于其工作環(huán)境、位置分布、與應用系統(tǒng)的結合方式等方面的原因,在系統(tǒng)的升級、修改方面存在著相當?shù)睦щy,且費用高。目前大多數(shù)嵌入式系統(tǒng)內(nèi)核只能在一定程度上進行靜態(tài)擴展,這意味著修改某些內(nèi)核屬性值后要重新編譯內(nèi)核,對普通用戶而言難以實現(xiàn)。通信的發(fā)展使得嵌入式操作系統(tǒng)的動態(tài)擴展成為可能,可以在遠程控制的基礎上增加嵌入式系統(tǒng)的靈活性,延長嵌入式系統(tǒng)的壽命;同時,由于嵌入式Linux的應用日益廣泛,研究嵌入式Linux的動態(tài)擴展具有重要意義。

動態(tài)擴展是指系統(tǒng)在運行狀態(tài)下實現(xiàn)系統(tǒng)的升級和維護。動態(tài)擴展技術目前被廣泛應用在軟件系統(tǒng)開發(fā)的各個領域。組件、可擴展的數(shù)據(jù)庫系統(tǒng)、主動網(wǎng)等多種技術都是動態(tài)擴展技術在各個領域的具體體現(xiàn)。在嵌入式操作系統(tǒng)領域,動態(tài)擴展技術研究的主要目標是實現(xiàn)內(nèi)核抽象的擴展。實現(xiàn)操作系統(tǒng)內(nèi)核抽象的動態(tài)擴展能夠提高系統(tǒng)的靈活性、適應性,使系統(tǒng)能夠根據(jù)應用的需求,提供特定的服務。然而,由于嵌入式系統(tǒng)硬件資源有限,這對研究嵌入式 Linux系統(tǒng)核心的動態(tài)擴展性是一個極大的挑戰(zhàn)。

本文主要討論嵌入式Linux系統(tǒng)中內(nèi)核抽象的動態(tài)擴展技術。

1、幾種主要的內(nèi)核動態(tài)擴展技術的分析

當前應用于操作系統(tǒng)中的動態(tài)擴展技術主要有四種:微內(nèi)核技術、可擴展內(nèi)核技術、解釋器技術/JOS技術和內(nèi)核下載技術/LKM技術[1,2]。這三種技術已經(jīng)在桌面操作系統(tǒng)的不同環(huán)境中得到了充分的應用。嵌入式操作系統(tǒng)及其使用環(huán)境具有桌面操作系統(tǒng)所不同的特征,它在性能、地址空間、所需存儲空間和底層訪問頻率等方面的特征,使得我們在擴展技術的選擇上需要加以權衡。

(1)微內(nèi)核技術

在微內(nèi)核操作系統(tǒng)中,內(nèi)核中包括了一些基本內(nèi)核功能(如創(chuàng)建和刪除任務、任務調度、內(nèi)存管理和中斷處理等),部分操作系統(tǒng)抽象和關鍵服務(如文件系統(tǒng)、網(wǎng)絡協(xié)議棧等),都是在用戶空間運行的。這大大減小了內(nèi)核的體積,同時也極大地方便了整個系統(tǒng)的升級、維護和移植。系統(tǒng)通過核心到用戶層向上調用服務的方法來為應用程序提供服務。由于服務存在于用戶層,用戶可通過修改服務來獲得不同的行為,因而也稱為用戶層擴展技術。由于所有的應用程序都要利用操作系統(tǒng)提供的API或系統(tǒng)調用,完成內(nèi)存管理、進程管理、I/O、設備管理等,因此通過在用戶空間監(jiān)視并截獲某個進程的系統(tǒng)調用,然后將擴展功能代碼插入系統(tǒng)調用中,就可以擴展Linux操作系統(tǒng)功能。

與內(nèi)核空間功能擴展相比,在用戶空間擴展安全性更強,對Linux操作系統(tǒng)和應用程序更加透明。用戶層擴展技術的缺點在于,將服務提升到用戶層使程序運行過程中核心態(tài)和用戶態(tài)之間的切換和自陷次數(shù)增加,導致系統(tǒng)負載增加,系統(tǒng)性能下降。另外,微內(nèi)核與傳統(tǒng)的嵌入式Linux內(nèi)核在結構上是完全不同的。在嵌入式Linux中,如果采用該技術來增加系統(tǒng)的動態(tài)擴展性能,需要對內(nèi)核結構重新設計[2]。

(2)可擴展內(nèi)核技術

可擴展內(nèi)核技術允許用戶應用程序向內(nèi)核植入(inject)代碼以擴展其功能。由于被植入的代碼是在核心態(tài)運行,從而避免了微內(nèi)核技術中的系統(tǒng)性能下降的問題。被植入的代碼是在核心態(tài)運行,需要有一個實時檢查機制來驗證代碼的安全性,保證被植入代碼不會導致系統(tǒng)的崩潰。程步奇等人[1]使用軟件故障孤立技術來實現(xiàn)擴展模塊的故障孤立,保證系統(tǒng)不受到擴展模塊的破壞。Bershad等人[3]也使用軟件故障孤立技術來限制被植入代碼可訪問的內(nèi)存地址范圍。代碼安全性檢查無疑增加了系統(tǒng)的負擔,問題產(chǎn)生的根本原因是那些被植入的擴展性代碼對核心來說是不可信任的。為了減輕系統(tǒng)的負擔,就需要假設被植入的代碼是安全的、可信任的。

(3)解釋器技術/JOS技術

與文獻[2]中提到的JOS(Java OperatingSystem)技術相同,該技術允許開發(fā)者用Java語言編寫系統(tǒng)模塊,例如TCP/IP協(xié)議?;蛭募到y(tǒng)。將這些模塊編譯成類(class)文件,并在系統(tǒng)運行時由JVM(Java VirtualMachine)動態(tài)地加載。Liao等人[4]在1996年提出,將JVM插入到微內(nèi)核中,從而可以讓用戶編寫Java程序,以擴展內(nèi)核功能。

解釋器技術是以解釋的方式來執(zhí)行程序代碼的,比較適合于交互式系統(tǒng);與編譯器相比,解釋器/JVM在移植時相對簡單;解釋器通過采用中間代碼表示的方法,當代碼長度小于500KB的時候,可執(zhí)行的中間代碼通常比編譯產(chǎn)生的二進制代碼小,這一點很適合于存儲空間非常有限的嵌入式系統(tǒng);最后,Java代碼容易維護和編寫,可移植性好,可實現(xiàn)代碼重用。采用解釋器技術的缺點是,中間可執(zhí)行代碼的執(zhí)行速度慢。在嵌入式 Linux系統(tǒng)中,內(nèi)核很大一部分由應用所共享,甚至應用程序本身就是內(nèi)核的一個線程,執(zhí)行頻率高,采用解釋器技術會大大降低系統(tǒng)的效率。有些Java平臺采用即時(Just?in?time)編譯技術來改進代碼的執(zhí)行速度[2]。該技術是利用空間來換取時間,因此很難在硬件資源非常有限的嵌入式系統(tǒng)上實現(xiàn)。此外,由于Java語言的類庫很大,在一定程度上也阻礙了其在資源有限的嵌入式系統(tǒng)中的發(fā)展。

(4)內(nèi)核加載技術/LKM技術

許多桌面操作系統(tǒng),例如Linux,提供LKM(Loadable KernelModule)來動態(tài)擴展它們的內(nèi)核。當模塊(Module)安裝到內(nèi)核后就作為核心的一部分,不進行實時安全檢測,全速運行。在嵌入式 Linux系統(tǒng)中,LKM的主要問題是:存儲模塊需要占用額外空間以及被加載模塊的安全性。模塊的安全問題可以通過軟件保護技術來解決[1]。

Oikawa等人在1996年提出一種與LKM類似的動態(tài)核心模塊(DKMs)技術[5]。與LKM一樣,DKMs以文件的形式存儲并能在系統(tǒng)運行過程中動態(tài)地加載和卸載。DKMs由一個用戶層的DKM服務器來管理,并非由內(nèi)核來管理。當核心需要某模塊時,由DKM服務器負責把相應的DKM加載;當核心的內(nèi)存資源緊缺時,由DKM服務器負責卸載一個沒有被使用的DKM。缺點是所有的DKM是存儲在本地系統(tǒng)上的,占用了大量寶貴的存儲空間。

與Oikawa的方法不同,Chang DaWei 等人于2003年提出了OperatingSystemPortalframework(OSP)的方法[2]。該方法是將核心模塊存儲在一個資源充足的遠程服務器上,并由服務器端工具OSPortal來管理所存儲的模塊,同時也負責處理客戶端(嵌入式系統(tǒng)內(nèi)核)發(fā)出的請求,按照請求動態(tài)的選擇并連接模塊,然后通過網(wǎng)絡傳到客戶端。由于模塊的管理和連接都在服務器端,所以對客戶端來說可以節(jié)省大量的資源空間。OS Portal的結構如圖1所示。

圖1

OS Portal的結構通常,內(nèi)核動態(tài)加載模塊的時候,模塊的連接工作由內(nèi)核完成。Chang DaWei的方法的獨特之處在于把模塊連接的工作交給服務器端執(zhí)行,不但降低了對內(nèi)存空間的需求,也減輕了內(nèi)核的負擔。

2、其他相關研究

(1)基于FPGA的可動態(tài)配置的片上系統(tǒng)

FPGA (FieldProgrammable GateArray,現(xiàn)場可編程門陣列)是電子設計領域中最具活力和發(fā)展前途的一項技術。FPGA能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用它來實現(xiàn)。FPGA在嵌入式系統(tǒng)中的應用越來越廣泛。John Williams和NeilBergmann[6]用uCLinux作為操作系統(tǒng)平臺,設計出可動態(tài)配置的片上系統(tǒng)(rSoC)。uCLinux從遠程服務器上下載FPGA程序代碼,然后利用shell腳本工具將代碼寫進FPGA芯片,實現(xiàn)系統(tǒng)功能的可動態(tài)擴展。

(2)動態(tài)更新Linux內(nèi)核變量的方法

在進行Linux內(nèi)核嵌入式開發(fā)時,經(jīng)常使用內(nèi)核啟動過程中讀取靜態(tài)配置文件內(nèi)容的方法對內(nèi)核某些變量進行初始化。當靜態(tài)配置文件改動時,只有重新啟動內(nèi)核才能使新的配置生效。北京科技大學的田玉鳳等人[7]通過修改文件. /include/linux/proc_fs.h,重新編譯、安裝新內(nèi)核后,利用/proc文件系統(tǒng),可動態(tài)改變Linux內(nèi)核變量。

(3)在用戶空間擴展Linux操作系統(tǒng)功能的方法

與內(nèi)核空間功能擴展相比,在用戶空間擴展安全性更強,對Linux操作系統(tǒng)和應用程序更加透明。魏東林、盧正鼎等人通過在用戶空間跟蹤截獲系統(tǒng)調用并更改系統(tǒng)調用的行為來達到擴展操作系統(tǒng)功能的目的[8]。從本質上來說,該方法和本文第1部分提到的可擴展內(nèi)核技術是一樣的。

3、動態(tài)擴展技術面臨的挑戰(zhàn)和發(fā)展趨勢

(1)高實時性是嵌入式系統(tǒng)的基本要求

由于Linux是一種通用操作系統(tǒng),而不是一個真正的實時操作系統(tǒng),內(nèi)核不支持事件優(yōu)先級和搶占實時特性(2003年底推出的Linux2.6內(nèi)核實現(xiàn)了一定程度上的可搶占性),所以,在進行嵌入式Linux系統(tǒng)動態(tài)擴展性研究開發(fā)時,首要的問題是擴展 Linux的實時性能。系統(tǒng)在進行動態(tài)擴展的過程中,如果擴展的過程時間太長,肯定會影響到系統(tǒng)的實時響應,所以要求擴展過程快速完成,例如基于LKM的內(nèi)核擴展機制。如果模塊加載或替換的時間太長,在規(guī)定的時間內(nèi)不能完成,這對于嵌入式Linux的某些應用來說是不能接受的。

(2)資源有限性是嵌入式系統(tǒng)基本特征

嵌入式系統(tǒng)無多余軟件也無多余硬件存儲器,增加存儲空間意味著成本的上升。在非常有限的存儲空間中要實現(xiàn)快速的內(nèi)核動態(tài)擴展,對研究人員來說是一個極大的挑戰(zhàn)。在桌面PC世界,雖然已經(jīng)有很多動態(tài)擴展系統(tǒng)功能的方法,但在嵌入式世界很難實現(xiàn)。例如Linux系統(tǒng)的LKM機制,若模塊加載過程不經(jīng)改造,在嵌入式Linux系統(tǒng)中是不能使用的。

(3)期待完善的集成開發(fā)環(huán)境

一個完整的嵌入式系統(tǒng)的集成開發(fā)環(huán)境一般需要編譯/連接器、內(nèi)核調試/跟蹤器和集成圖形界面開發(fā)平臺。其中的集成圖形界面開發(fā)平臺包括編輯器、調試器、軟件仿真器和監(jiān)視器等。在Linux系統(tǒng)中,具有功能強大的 gcc編譯器工具鏈,使用了基于GNU的調試器 gdb的遠程調試功能,一般由一臺客戶機運行調試程序調試宿主機運行的操作系統(tǒng)內(nèi)核;在使用遠程開發(fā)時還可以使用交叉平臺的方式,如在Windows平臺下的調試跟蹤器對Linux的宿主系統(tǒng)作調試。但是,Linux在基于圖形界面的特定系統(tǒng)定制平臺的研究上,與Windows操作系統(tǒng)相比還存在差距。因此,要使嵌入式Linux動態(tài)擴展的研究更加方便、快捷,整體集成開發(fā)環(huán)境還有待提高和完善。

桌面Linux使用LKM技術成功實現(xiàn)了系統(tǒng)功能的動態(tài)擴展。嵌入式Linux繼承了桌面Linux絕大部分功能和特性,桌面Linux固有的LKM機制為嵌入式Linux動態(tài)擴展的研究帶來了先天性的優(yōu)勢,可大大節(jié)省研究人員的時間和精力。在動態(tài)模塊替換方面也有了很大的發(fā)展,Chris Walton等人[9]通過對二空間拷貝垃圾回收算法進行改進,在2000年提出了一種動態(tài)模塊替換的抽象機模型。

基于JOS的動態(tài)擴展技術是一個主要發(fā)展方向。Java代碼可移植性強,容易維護,在嵌入式系統(tǒng)上很有發(fā)展前途。采用Java技術的另外一個好處是可實現(xiàn)代碼重用,在進行嵌入式系統(tǒng)開發(fā)時不必每次都從零開始。很多研究成果也促進了Java在嵌入式系統(tǒng)上的應用。 DerekRayside等人在2002年提出一種類庫子集選擇方法[10]。該方法可以讓嵌入式系統(tǒng)中的Java程序在運行時從遠程Java類庫中僅選擇所需要的子集,然后下載到本地系統(tǒng),從而減小對嵌入式系統(tǒng)存儲空間的需求,解決了因Java語言的類庫太大而阻礙了在嵌入式系統(tǒng)中的應用。

結束語

隨著嵌入式Linux的快速發(fā)展和嵌入式Linux設備的普及,人們對可動態(tài)擴展的嵌入式Linux的需求越來越迫切。目前主要的幾種可動態(tài)擴展系統(tǒng)功能的技術,例如微內(nèi)核技術、JOS技術、LKM技術等,由于嵌入式系統(tǒng)的存儲空間有限,實時性要求高,在應用到嵌入式Linux系統(tǒng)中時都有所不足。其中,桌面Linux固有的LKM機制為嵌入式Linux動態(tài)擴展的研究帶來了先天性的優(yōu)勢;另外,Java代碼可移植性強,維護容易,在嵌入式系統(tǒng)上很有發(fā)展前途,因此基于JOS的動態(tài)擴展技術是另一個主要發(fā)展方向。最后,一個完善的嵌入式Linux集成開發(fā)環(huán)境是每一個開發(fā)人員所期待的。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉