嵌入式Linux的動態擴展技術研究
發布時間:2007/8/30 0:00:00 訪問次數:771
作 者:■ 燕山大學 武延民 秦皇島職業技術學院 姚柳
摘要:隨著嵌入式技術的快速發展和嵌入式設備的普及,嵌入式應用發展的一個關鍵趨勢是從靜態的、固定的系統功能到動態的、可擴展的系統功能。本文主要進行嵌入式Linux系統內核動態擴展技術的討論。首先,介紹嵌入式Linux系統的發展狀況和研究嵌入式Linux動態擴展性的意義。然后,討論目前幾種主要的核心動態擴展技術,以及各種技術在嵌入式系統上的優缺點。最后,分析嵌入式Linux動態擴展性研究所面臨的挑戰和發展趨勢。
關鍵詞:嵌入式Linux 內核動態擴展 LKM
引 言
嵌入式系統是計算機技術、通信技術、半導體技術、微電子技術、語音圖像數據傳輸技術等先進技術和具體應用對象相結合后的更新換代產品。系統無多余軟件,硬件亦無多余存儲器,可靠性高,成本低,體積小,功耗少;可應用于家電、工業、通信、國防等領域。其產品形態豐富多樣,市場潛力巨大。
嵌入式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\]。
(2) 可擴展內核技術
可擴展內核技術允許用戶應用程序向內核植入(inject)代碼以擴展其功能。由于被植入的代碼是在核心態運行,從而避免了微內核技術中的系統性能下降的問題。被植入的代碼是在核心態運行,需要有一個實時檢查機制來驗證代碼的安全性,保證被植入代碼不會導致系統的崩潰。程步奇等人\[1\]使用軟件故障孤立技術來實現擴展模塊的故
作 者:■ 燕山大學 武延民 秦皇島職業技術學院 姚柳
摘要:隨著嵌入式技術的快速發展和嵌入式設備的普及,嵌入式應用發展的一個關鍵趨勢是從靜態的、固定的系統功能到動態的、可擴展的系統功能。本文主要進行嵌入式Linux系統內核動態擴展技術的討論。首先,介紹嵌入式Linux系統的發展狀況和研究嵌入式Linux動態擴展性的意義。然后,討論目前幾種主要的核心動態擴展技術,以及各種技術在嵌入式系統上的優缺點。最后,分析嵌入式Linux動態擴展性研究所面臨的挑戰和發展趨勢。
關鍵詞:嵌入式Linux 內核動態擴展 LKM
引 言
嵌入式系統是計算機技術、通信技術、半導體技術、微電子技術、語音圖像數據傳輸技術等先進技術和具體應用對象相結合后的更新換代產品。系統無多余軟件,硬件亦無多余存儲器,可靠性高,成本低,體積小,功耗少;可應用于家電、工業、通信、國防等領域。其產品形態豐富多樣,市場潛力巨大。
嵌入式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\]。
(2) 可擴展內核技術
可擴展內核技術允許用戶應用程序向內核植入(inject)代碼以擴展其功能。由于被植入的代碼是在核心態運行,從而避免了微內核技術中的系統性能下降的問題。被植入的代碼是在核心態運行,需要有一個實時檢查機制來驗證代碼的安全性,保證被植入代碼不會導致系統的崩潰。程步奇等人\[1\]使用軟件故障孤立技術來實現擴展模塊的故
上一篇:倒車雷達主要指標:探測能力
上一篇:汽車總線協議的形勢判斷