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