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