電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 2081|回復(fù): 0
收起左側(cè)

嵌入式培訓(xùn)就業(yè)情況_微內(nèi)核操作系統(tǒng)在嵌入式平臺上的應(yīng)用

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-8-4 16:17:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
嵌入式培訓(xùn)就業(yè)情況_微內(nèi)核操作系統(tǒng)在嵌入式平臺上的應(yīng)用,   

所謂嵌入式系統(tǒng)是指為特定應(yīng)用而設(shè)計的專用電腦系統(tǒng),通常執(zhí)行的是帶有特定要求的預(yù)先定義的任務(wù)。說到嵌入式系統(tǒng)上的操作系統(tǒng),人們首先想到的是各種經(jīng)過裁剪的Linux以及WinCE。但是Linux和WinCE本身作為單內(nèi)核(monolithickernel)操作系統(tǒng),內(nèi)核部分過于復(fù)雜,并不適用于嵌入式平臺。而μC/Os-II和eCos等又過于簡單,不能提供完整的功能。而隨著微內(nèi)核(microkernel)操作系統(tǒng)的理論和實現(xiàn)越來越成熟,微內(nèi)核操作系統(tǒng)開始成為嵌入式平臺一個很好的選擇。

  
  




圖1 嵌入式平臺操作系統(tǒng)占有率比較圖

嵌入式平臺對操作系統(tǒng)的需求

嵌入式平臺上運行的操作系統(tǒng)一方面會根據(jù)嵌入式平臺所執(zhí)行的功能對內(nèi)核組件進(jìn)行裁剪,在滿足系統(tǒng)的應(yīng)用功能的基礎(chǔ)上去除不必要的部分;另一方面,嵌入式平臺對操作系統(tǒng)的可靠性,實時性和安全性特性有很高的要求。

可靠性是指嵌入式設(shè)備特別是工業(yè)設(shè)備中的嵌入式系統(tǒng)經(jīng)常需要連續(xù)運行數(shù)以年計的時間而不出差錯?梢韵胂袢绻w機中的嵌入式系統(tǒng)在飛機飛行時崩潰重啟,會造成多么大的危害。這就要求嵌入式系統(tǒng)上的操作系統(tǒng)的運行完全沒有錯誤,或者在錯誤出現(xiàn)的時候可以快速自動復(fù)位,并且避免在操作系統(tǒng)中使用不穩(wěn)定的模塊。

實時性是指系統(tǒng)能在確定的時間內(nèi)執(zhí)行操作并對外部的異步事件做出響應(yīng),比如汽車發(fā)生車禍時安全氣囊必須在極短的時間內(nèi)打開。一次正確的操作不僅要求邏輯功能上的正確,而且要求完成這些操作所花費的時間在限定之內(nèi)。實時又分成硬實時和軟實時,硬實時要求任務(wù)在規(guī)定時間內(nèi)必須完成,這由操作系統(tǒng)來保證;而軟實時要求事件響應(yīng)是實時的,并按照任務(wù)的優(yōu)先級,盡可能在短時間內(nèi)完成任務(wù)。實時操作系統(tǒng)需要調(diào)度一切可利用的資源完成有實時性要求的任務(wù),其次才著考慮提高操作系統(tǒng)的整體效率。

隨著嵌入式系統(tǒng)越來越多得與外部連接,甚至是通過互聯(lián)網(wǎng)連接,其安全性也越來越受到關(guān)注。比如用掌上電腦進(jìn)行網(wǎng)上購物的時候,用戶的銀行帳號信息必須得到嚴(yán)格的保護(hù)。安全性具體是指要求嵌入式設(shè)備在與外部連接的過程中,其內(nèi)部的數(shù)據(jù)不會偶然或被惡意地破壞、更改或者泄露,維持嵌入式系統(tǒng)中信息的保密性和完整性。

微內(nèi)核操作系統(tǒng)

所謂微內(nèi)核是一種最小的的計算機操作系統(tǒng)內(nèi)核,其設(shè)計思想是內(nèi)核本身不提供操作系統(tǒng)的相關(guān)服務(wù),而是提供實現(xiàn)這些服務(wù)的機制,諸如底層的地址空間管理,線程調(diào)度以及進(jìn)程間通信。一般的硬件都有執(zhí)行權(quán)限級別,比如IntelIA32架構(gòu)有Ring0到Ring3的特權(quán)級,而一般的操作系統(tǒng)至少會用到兩個,稱之為內(nèi)核態(tài)和用戶態(tài)。而對于微內(nèi)核操作系統(tǒng)來說,并非操作系統(tǒng)服務(wù)都運行于內(nèi)核態(tài),而是提供服務(wù)實現(xiàn)的機制部分運行于內(nèi)核態(tài);而操作系統(tǒng)的服務(wù),包括設(shè)備驅(qū)動,文件系統(tǒng)和用戶界面等則作為用戶態(tài)的服務(wù)應(yīng)用程序運行。

  
  




圖2 單內(nèi)核操作系統(tǒng)(左)和微內(nèi)核操作系統(tǒng)結(jié)構(gòu)比較圖嵌入式系統(tǒng)要加班嗎, 常用的嵌入式os, 嵌入式實訓(xùn)的目的, 嵌入式電路怎么設(shè)計, 嵌入式原理的書, 復(fù)旦大學(xué)嵌入式系統(tǒng), 嵌入式應(yīng)用程序燒寫, 嵌入式的英文簡稱, 2u嵌入式錄音系統(tǒng), 嵌入式AHB全稱, 嵌入式方面問題, 西鐵城嵌入式怎么開, 無法識別嵌入式字體, 雅特生嵌入式電源, 嵌入式動詞嗎, 華工嵌入式操作系統(tǒng), 可控硅嵌入式控制器, 嵌入式掃描模組構(gòu)造, 嵌入式工作輕松么, 嵌入式米箱壞處, 嵌入式qt作品, 嵌入式型芯ug,

如圖2所示,左邊的是單內(nèi)核操作系統(tǒng)的結(jié)構(gòu)示意圖。我們常用的Windows操作系統(tǒng)和Linux操作系統(tǒng)都屬于這個類型。單內(nèi)核操作系統(tǒng)的內(nèi)核提供完整的操作系統(tǒng)服務(wù),比如圖中所示的文件系統(tǒng),進(jìn)程間通信,進(jìn)程調(diào)度器,內(nèi)存管理,設(shè)備驅(qū)動程序等等。而應(yīng)用程序則運行在用戶態(tài),應(yīng)用程序想要使用操作系統(tǒng)提供的服務(wù),需要通過內(nèi)核提供的接口,我們稱之為系統(tǒng)調(diào)用。當(dāng)應(yīng)用程序進(jìn)程執(zhí)行系統(tǒng)調(diào)用時,會陷入到內(nèi)核的代碼去執(zhí)行,進(jìn)程此時運行于內(nèi)核態(tài),處理器處于特權(quán)級最高的Ring0狀態(tài)執(zhí)行。當(dāng)應(yīng)用程序需要的操作系統(tǒng)服務(wù)調(diào)用完成,進(jìn)程回到原本的應(yīng)用程序代碼中繼續(xù)執(zhí)行,也同時回到了用戶態(tài),在Ring3的特權(quán)級上運行。

而對于右邊的微內(nèi)核操作系統(tǒng),操作系統(tǒng)的內(nèi)核部分被大大簡化,只包括基本的IPC機制,虛擬內(nèi)存映射和調(diào)度機制,這些僅僅是用于實現(xiàn)操作系統(tǒng)服務(wù)的基本機制。真正的操作系統(tǒng)服務(wù),比如設(shè)備驅(qū)動,文件系統(tǒng),應(yīng)用程序間通信等,通過用戶態(tài)服務(wù)程序的方式實現(xiàn)。當(dāng)普通的應(yīng)用程序需要操作系統(tǒng)的相關(guān)服務(wù)時,通過發(fā)送IPC消息給這個服務(wù)程序,這些服務(wù)程序進(jìn)行相關(guān)的操作,必要時也會通過內(nèi)核提供的系統(tǒng)調(diào)用陷入到內(nèi)核態(tài)去執(zhí)行基本的操作,并把結(jié)果再通過IPC返回給請求服務(wù)的應(yīng)用程序。

微內(nèi)核操作系統(tǒ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)中的錯誤在各模塊中的分布

然后是實時性。實時性是指操作系統(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ǔ)(TrustedComputingBase)是指整個系統(tǒng)中對安全性最關(guān)鍵的部分,在可信計算基礎(chǔ)內(nèi)的漏洞會危及整個系統(tǒng)的安全性。因為操作系統(tǒng)內(nèi)核是可信計算基礎(chǔ)中最重要的一部分,微內(nèi)核操作系統(tǒng)內(nèi)核較小的特點使之在安全性應(yīng)用方面很有優(yōu)勢。[!--empirenews.page--]

上面說了很多微內(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)用到嵌入式平臺上。
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表