色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于操作系統中的內核抽象的動態擴展技術

牽手一起夢 ? 來源:單片機與嵌入式系統應用 ? 作者:武延民,姚柳 ? 2020-10-04 13:41 ? 次閱讀

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

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

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

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

本文主要討論嵌入式Linux系統中內核抽象的動態擴展技術。

1幾種主要的內核動態擴展技術的分析

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

(1) 微內核技術

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

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

(2) 可擴展內核技術

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

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

與文獻\[2\]中提到的JOS(Java Operating System)技術相同,該技術允許開發者用Java語言編寫系統模塊,例如TCP/IP協議棧或文件系統。將這些模塊編譯成類(class)文件,并在系統運行時由JVM(Java Virtual Machine)動態地加載。Liao等人\[4\]在1996年提出,將JVM插入到微內核中,從而可以讓用戶編寫Java程序,以擴展內核功能。

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

(4) 內核加載技術/LKM技術

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

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

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

基于操作系統中的內核抽象的動態擴展技術

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

2其他相關研究

(1) 基于FPGA的可動態配置的片上系統

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

(2) 動態更新Linux內核變量的方法

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

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

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

3 動態擴展技術面臨的挑戰和發展趨勢

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

由于Linux是一種通用操作系統,而不是一個真正的實時操作系統,內核不支持事件優先級和搶占實時特性(2003年底推出的L

inux2.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等人\[9\]通過對二空間拷貝垃圾回收算法進行改進,在2000年提出了一種動態模塊替換的抽象機模型。

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

結語

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

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 半導體
    +關注

    關注

    335

    文章

    28032

    瀏覽量

    225601
  • 嵌入式
    +關注

    關注

    5105

    文章

    19288

    瀏覽量

    310201
  • 操作系統
    +關注

    關注

    37

    文章

    6942

    瀏覽量

    124175
收藏 人收藏

    評論

    相關推薦

    嵌入式Linux系統內核抽象動態擴展技術

    應用于操作系統動態擴展技術主要有四種:微內核技術、可擴展
    發表于 10-26 09:22

    嵌入式Linux系統內核抽象動態擴展技術

    應用于操作系統動態擴展技術主要有四種:微內核技術、可擴展
    發表于 10-28 09:53

    嵌入式操作系統的通用硬件抽象層設計

    操作系統內核所管理的任務的重要組成部分,是CPU內核的寄存器內容的映像,因此上下文管理的實現依賴于CPU內核
    發表于 12-07 10:30

    嵌入式Linux系統內核抽象動態擴展技術

    、幾種主要的內核動態擴展技術的分析  當前應用于操作系統
    發表于 04-04 17:12

    Linux嵌入式系統內核技術的可動態拓展技術有哪些

    擴展技術在各個領域的具體體現。在嵌入式操作系統領域,動態擴展技術研究的主要目標是實現
    發表于 08-06 06:39

    應用于操作系統動態擴展技術有哪幾種

    應用于操作系統動態擴展技術有哪幾種動態擴展
    發表于 04-27 06:54

    嵌入式操作系統的通用硬件抽象層設計

    摘要 基于嵌入式操作系統硬件抽象層理論,設計一種用于嵌入式操作系統內核開發的通用硬件抽象層平臺。通用硬件
    發表于 03-29 15:16 ?1301次閱讀
    嵌入式<b class='flag-5'>操作系統</b>的通用硬件<b class='flag-5'>抽象</b>層設計

    什么是操作系統內核

    什么是操作系統內核 操作系統內核是指大多數操作系統的核心部分。它由操作系統中用于管理存儲器、文
    發表于 06-17 07:23 ?1w次閱讀

    基于嵌入式軟件開發環境操作系統抽象層的設計

    基于嵌入式軟件開發環境操作系統抽象層的設計
    發表于 10-30 15:33 ?3次下載
    基于嵌入式軟件開發環境<b class='flag-5'>中</b><b class='flag-5'>操作系統</b><b class='flag-5'>抽象</b>層的設計

    嵌入式操作系統的通用硬件抽象層設計方案

    引言 為了便于操作系統在不同硬件結構上進行移植,美國微軟公司首先提出了將底層與硬件相關的部分單獨設計成硬件抽象層美國微軟公司提出了將操作系統 底層與硬件相關的部分單獨設計成硬件抽象層H
    發表于 11-06 14:12 ?3次下載

    嵌入式Linux系統內核抽象動態擴展技術

    主要的內核動態擴展技術的分析  當前應用于操作系統動態
    發表于 09-25 14:46 ?379次閱讀

    嵌入式Linux的動態擴展技術研究

    擴展技術在各個領域的具體體現。在嵌入式操作系統領域,動態擴展技術研究的主要目標是實現
    發表于 04-02 14:38 ?397次閱讀

    為什么要選擇微內核操作系統

    例如原來在宏內核操作系統,用戶應用程序是通過系統調用,陷入到內核,然后再讀取、訪問文件。而在
    的頭像 發表于 06-03 14:35 ?4250次閱讀

    Linux 是操作系統還是內核

    內核是每個操作系統的中心。這不僅僅是 Linux 的事情。Windows 和 macOS 也有內核
    發表于 03-15 10:05 ?1217次閱讀

    內核實時操作系統的介紹

    內核實時操作系統(Microkernel Real-Time Operating System, μRTOS)是一種專為實時設計的操作系統。它采用微內核架構,以提高
    的頭像 發表于 05-11 17:13 ?635次閱讀
    主站蜘蛛池模板: 国产伦精品一区二区三区免费观看 | 中文字幕天堂久久精品 | 日韩亚洲欧美中文高清 | 色呦呦人人视频 | 成人在线小视频 | 97色伦图片97色伦图影院久久 | 好大好硬好湿再深一点网站 | 夫妻性姿势真人做视频 | 91精品婷婷国产综合久久8 | 中文字幕在线观看亚洲日韩 | 久久视频精品38在线播放 | 国产成人综合在线视频 | 百度影音第四色 | 成在线人免费视频 | 韩国女人高潮嗷嗷叫视频 | 国内精品视频在线播放一区 | YY8848高清私人影院 | xxxjapanese丰满奶水 | MATURETUBE乱妇 | 爽爽影院线观看免费 | 国产亚洲欧美在线中文BT天堂网 | 日本另类z0zxhd | 日本A级作爱片金瓶双艳 | 中文字幕乱偷无码AV蜜桃 | 亚洲成人日韩 | 最近2019年日本中文免费字幕 | 日本妈妈在线观看中文字幕 | my pico未删减在线观看 | 超碰caoporn| 久久兔费黄A级毛片高清 | 国产亚洲精品久久综合阿香 | 偷拍精品视频一区二区三区 | 2022国产精品不卡a | 亚洲精品第一综合99久久 | 1a级毛片免费观看 | 亚洲综合国产精品 | 学生小泬无遮挡女HD | 成人无码在线超碰视频 | 人人爽久久久噜噜噜丁香AV | WWW国产色情在线观看APP | 我们中文在线观看免费完整版 |