微內(nèi)核操作系統(tǒng)在嵌入式平臺上的應(yīng)用*
微內(nèi)核操作系統(tǒng)特有的架構(gòu)帶來的很多優(yōu)點,這些特點正好匹配了嵌入式平臺對操作系統(tǒng)的需求,非常適合于嵌入式環(huán)境的應(yīng)用。
首先是可靠性,按照單內(nèi)核操作系統(tǒng)的設(shè)計,內(nèi)核包括所有的操作系統(tǒng)服務(wù),其中任何一個服務(wù)出錯,就會造成整個系統(tǒng)的崩潰。微內(nèi)核操作系統(tǒng)的設(shè)計思想是在內(nèi)核中留盡量少的東西,只保留實現(xiàn)操作系統(tǒng)服務(wù)的最基本機制,而把具體服務(wù)的實現(xiàn)放到用戶態(tài)的服務(wù)應(yīng)用程序中去。這就大大降低了內(nèi)核崩潰的幾率。特別是目前操作系統(tǒng)的許多錯誤都是因為不規(guī)范,并且沒有經(jīng)過嚴(yán)格測試的驅(qū)動程序造成的。圖3顯示了Linux內(nèi)核代碼不同目錄的錯誤分布,顯然驅(qū)動程序的錯誤是主要原因。
圖3 操作系統(tǒng)中的錯誤在各模塊中的分布(來源:文獻(xiàn)[4])
然后是實時性。實時性是指操作系統(tǒng)對響應(yīng)時間有嚴(yán)格的要求,不僅要求成功執(zhí)行還要求在規(guī)定的時間內(nèi)完成所有操作。一般會要求操作系統(tǒng)內(nèi)核是搶占式的,并且內(nèi)核的代碼是可重入的。微內(nèi)核操作系統(tǒng)內(nèi)核較小也意味著需要實時化的部分較少。而且微內(nèi)核之上也可以很方便同時運行實時的程序和一般的非實時的程序。
此外還不能忘了安全性。設(shè)計安全系統(tǒng)的準(zhǔn)則是最小權(quán)限準(zhǔn)則,也即所有的部件都只擁有執(zhí)行相關(guān)功能所必須的權(quán)限,而沒有額外的權(quán)限。最小權(quán)限準(zhǔn)則需要系統(tǒng)的可信計算基礎(chǔ)盡可能地小??尚庞嬎慊A(chǔ)(Trusted Computing Base)是指整個系統(tǒng)中對安全性最關(guān)鍵的部分,在可信計算基礎(chǔ)內(nèi)的漏洞會危及整個系統(tǒng)的安全性。因為操作系統(tǒng)內(nèi)核是可信計算基礎(chǔ)中最重要的一部分,微內(nèi)核操作系統(tǒng)內(nèi)核較小的特點使之在安全性應(yīng)用方面很有優(yōu)勢。
上面說了很多微內(nèi)核操作系統(tǒng)的優(yōu)點,但微內(nèi)核架構(gòu)也不是完美的,它有一個很大的缺點那就是性能。我們知道對于單內(nèi)核操作系統(tǒng),調(diào)用系統(tǒng)服務(wù)的方式是用過系統(tǒng)調(diào)用,需要的僅僅是用戶態(tài)和內(nèi)核態(tài)的兩次轉(zhuǎn)換,每個進(jìn)程都同時有用戶棧和內(nèi)核??梢源娣艌?zhí)行過程中的信息。而對于微內(nèi)核操作系統(tǒng),調(diào)用系統(tǒng)服務(wù)需要通過發(fā)送IPC消息給服務(wù)應(yīng)用程序,服務(wù)應(yīng)用程序通過系統(tǒng)調(diào)用完成服務(wù)請求后再通過另一個IPC消息把結(jié)果返回給調(diào)用者。這涉及到了進(jìn)程的上下文切換,并且由于沒有內(nèi)核棧這樣簡單的機制,傳送消息需要額外的拷貝開銷。因此性能對于微內(nèi)核架構(gòu)操作系統(tǒng)成了一個很大的問題。事實上第一代微內(nèi)核操作系統(tǒng)諸如Mach之上運行的系統(tǒng)的性能讓人難以接受。然而以L4為首的第二代微內(nèi)核操作系統(tǒng)通過合理的架構(gòu)設(shè)計,將IPC的開銷相對Mach成數(shù)量級級別得減少。有分析表明在L4微內(nèi)核操作系統(tǒng)之上運行的L4Linux的性能相對原本的Linux只有幾個百分點的損失。[5]
結(jié)語
綜上文所述,微內(nèi)核操作系統(tǒng)的可靠性、實時性和安全性特點很好得匹配了嵌入式平臺對操作系統(tǒng)的需求。隨著對微內(nèi)核操作系統(tǒng)研究的深入,其相應(yīng)技術(shù)將會不斷地成熟,性能也會不斷地提高,可以預(yù)見不久的將來,我們將會見到越來越多的微內(nèi)核操作系統(tǒng)被應(yīng)用到嵌入式平臺上。
參考文獻(xiàn):
[1] 鄧亞明,嵌入式操作系統(tǒng)比較研究,中國高新技術(shù)企業(yè),2008年2期
[2] 滕艷平,嵌入式Linux操作系統(tǒng)實時性的研究與實現(xiàn),微計算機信息,2007年23期
[3] Andy Chou, Junfeng Yang, Benjamin Chelf, Seth Hallem, and Dawson Engler. An empirical study of operating systems errors. Proceedings of the eighteenth ACM symposium on Operating systems principles, Oct 2001
[4] H?rtig, Hermann; Hohmuth, Michael; Liedtke, Jochen; Sch?nberg, Sebastian (October 1997). "The performance of μ-kernel-based systems". Proceedings of the sixteenth ACM symposium on Operating systems principles: 66–77. ISBN 0-89791-916-5
[5] Jochen Liedtke. Lava Nucleus (LN) Reference Manual (486, Pentium, PPro) Version 2.2. 1998
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論