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