微內核操作系統在嵌入式平臺上的應用*
微內核操作系統特有的架構帶來的很多優點,這些特點正好匹配了嵌入式平臺對操作系統的需求,非常適合于嵌入式環境的應用。
首先是可靠性,按照單內核操作系統的設計,內核包括所有的操作系統服務,其中任何一個服務出錯,就會造成整個系統的崩潰。微內核操作系統的設計思想是在內核中留盡量少的東西,只保留實現操作系統服務的最基本機制,而把具體服務的實現放到用戶態的服務應用程序中去。這就大大降低了內核崩潰的幾率。特別是目前操作系統的許多錯誤都是因為不規范,并且沒有經過嚴格測試的驅動程序造成的。圖3顯示了Linux內核代碼不同目錄的錯誤分布,顯然驅動程序的錯誤是主要原因。

圖3 操作系統中的錯誤在各模塊中的分布(來源:文獻[4])
然后是實時性。實時性是指操作系統對響應時間有嚴格的要求,不僅要求成功執行還要求在規定的時間內完成所有操作。一般會要求操作系統內核是搶占式的,并且內核的代碼是可重入的。微內核操作系統內核較小也意味著需要實時化的部分較少。而且微內核之上也可以很方便同時運行實時的程序和一般的非實時的程序。
此外還不能忘了安全性。設計安全系統的準則是最小權限準則,也即所有的部件都只擁有執行相關功能所必須的權限,而沒有額外的權限。最小權限準則需要系統的可信計算基礎盡可能地小。可信計算基礎(Trusted Computing Base)是指整個系統中對安全性最關鍵的部分,在可信計算基礎內的漏洞會危及整個系統的安全性。因為操作系統內核是可信計算基礎中最重要的一部分,微內核操作系統內核較小的特點使之在安全性應用方面很有優勢。
上面說了很多微內核操作系統的優點,但微內核架構也不是完美的,它有一個很大的缺點那就是性能。我們知道對于單內核操作系統,調用系統服務的方式是用過系統調用,需要的僅僅是用戶態和內核態的兩次轉換,每個進程都同時有用戶棧和內核棧可以存放執行過程中的信息。而對于微內核操作系統,調用系統服務需要通過發送IPC消息給服務應用程序,服務應用程序通過系統調用完成服務請求后再通過另一個IPC消息把結果返回給調用者。這涉及到了進程的上下文切換,并且由于沒有內核棧這樣簡單的機制,傳送消息需要額外的拷貝開銷。因此性能對于微內核架構操作系統成了一個很大的問題。事實上第一代微內核操作系統諸如Mach之上運行的系統的性能讓人難以接受。然而以L4為首的第二代微內核操作系統通過合理的架構設計,將IPC的開銷相對Mach成數量級級別得減少。有分析表明在L4微內核操作系統之上運行的L4Linux的性能相對原本的Linux只有幾個百分點的損失。[5]
結語
綜上文所述,微內核操作系統的可靠性、實時性和安全性特點很好得匹配了嵌入式平臺對操作系統的需求。隨著對微內核操作系統研究的深入,其相應技術將會不斷地成熟,性能也會不斷地提高,可以預見不久的將來,我們將會見到越來越多的微內核操作系統被應用到嵌入式平臺上。
參考文獻:
[1] 鄧亞明,嵌入式操作系統比較研究,中國高新技術企業,2008年2期
[2] 滕艷平,嵌入式Linux操作系統實時性的研究與實現,微計算機信息,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操作系統文章專題:linux操作系統詳解(linux不再難懂)
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)








評論