背景:混合關(guān)鍵性系統(tǒng)
在嵌入式場景中,雖然 Linux 已經(jīng)得到了廣泛應(yīng)用,但并不能覆蓋所有需求,例如高實時、高可靠、高安全的場合。這些場合往往是實時操作系統(tǒng)的用武之地。有些應(yīng)用場景需要 Linux 的管理能力、豐富的生態(tài)又需要實時操作系統(tǒng)的高實時、高可靠、高安全,那么一種典型的設(shè)計是采用一顆性能較強的處理器運行 Linux 負(fù)責(zé)富功能,一顆微控制器/ DSP /實時處理器運行實時操作系統(tǒng)負(fù)責(zé)實時控制或者信號處理,兩者之間通過 I/O、網(wǎng)絡(luò)或片外總線的形式通信。這種方式存在的問題是,硬件上需要兩套系統(tǒng)、集成度不高,通信受限與片外物理機制的限制如速度、時延等,軟件上 Linux 和實時操作系統(tǒng)兩者之間是割裂的,在靈活性上、可維護(hù)性上存在改進(jìn)空間。
受益于硬件技術(shù)的快速發(fā)展,嵌入式系統(tǒng)的硬件能力越來越強大,如單核能力不斷提升、單核到多核、異構(gòu)多核乃至眾核的演進(jìn),虛擬化技術(shù)和可信執(zhí)行環(huán)境(TEE)技術(shù)的發(fā)展和應(yīng)用,未來先進(jìn)封裝技術(shù)會帶來更高的集成度等等,使得在一個片上系統(tǒng)中(SoC)部署多個 OS 具備了堅實的物理基礎(chǔ)。
同時,受應(yīng)用需求的推動,如物聯(lián)網(wǎng)化、智能化、功能安全與信息安全等等,整個嵌入式軟件系統(tǒng)也越發(fā)復(fù)雜,全部由單一 OS 承載所有功能所面臨的挑戰(zhàn)越來越大。解決方式之一就是不同系統(tǒng)負(fù)責(zé)各自所擅長的功能,如 Windows 的 UI、Linux 的網(wǎng)絡(luò)通信與管理、實時操作系統(tǒng)的高實時與高可靠等,而且還要易于開發(fā)、部署、擴展,實現(xiàn)的形式可以是容器、虛擬化等。
面對上述硬件和應(yīng)用的變化,結(jié)合自身原有的特點,嵌入式系統(tǒng)未來演進(jìn)的方向之一就是「混合關(guān)鍵性系統(tǒng)(MCS,Mixed Criticality System)」, 這可以從典型的嵌入式系統(tǒng)——汽車電子的最近發(fā)展趨勢略見一斑。
「圖 1」 openEuler Embedded 中的混合關(guān)鍵性系統(tǒng)大致架構(gòu)
從 openEuler Embedded 的角度,混合關(guān)鍵性系統(tǒng)的大致架構(gòu)如圖 1 所示,所面向的硬件是具有同構(gòu)或異構(gòu)多核的片上系統(tǒng),從應(yīng)用的角度看會同時部署多個 OS /運行時,例如 Linux 負(fù)責(zé)系統(tǒng)管理與服務(wù)、1 個實時操作系統(tǒng)負(fù)責(zé)實時控制、1 個實時操作系統(tǒng)負(fù)責(zé)系統(tǒng)可靠、1 個裸金屬運行時運行專用算法,全系統(tǒng)的功能是由各個 OS /運行時協(xié)同完成。中間的「混合部署框架」和「嵌入式虛擬化」是具體的支撐技術(shù)。關(guān)鍵性(Criticality)狹義上主要是指功能安全等級,參考泛功能安全標(biāo)準(zhǔn) IEC-61508,Linux 可以達(dá)到 SIL1 或 SIL2 級別,實時操作系統(tǒng)可以達(dá)到最高等級 SIL3;廣義上,關(guān)鍵性可以擴展至實時等級、功耗等級、信息安全等級等目標(biāo)。
在這樣的系統(tǒng)中,需要解決如下幾個問題:
「高效地混合部署問題」:如何高效地實現(xiàn)多 OS 協(xié)同開發(fā)、集成構(gòu)建、獨立部署、獨立升級。
「高效地通信與協(xié)作問題」:系統(tǒng)的整體功能由各個域協(xié)同完成,因此如何高效地實現(xiàn)不同域之間高效、可擴展、實時、安全的通信。
「高效地隔離與保護(hù)問題」:如何高效地實現(xiàn)多個域之間的強隔離與保護(hù),使得出故障時彼此不互相影響,以及較小的可信基(Trust Compute Base)。
「高效地資源共享與調(diào)度問題」:如何在滿足不同目標(biāo)約束下(實時、功能安全、性能、功耗),高效地管理調(diào)度資源,從而提升硬件資源利用率。
對于上述問題,openEuler Embedded 的當(dāng)前思路是「混合關(guān)鍵性系統(tǒng) = 部署 + 隔離 + 調(diào)度」,即首先實現(xiàn)多 OS 的混合部署,再實現(xiàn)多 OS 之間的隔離與保護(hù),最后通過混合關(guān)鍵性調(diào)度提升資源利用率,具體可以映射到「混合部署框架」和「嵌入式虛擬化」?;旌喜渴鹂蚣芙鉀Q「高效地混合部署問題」和「高效地通信與協(xié)作問題」,嵌入式虛擬化解決「高效地隔離與保護(hù)問題」和「高效地資源共享與調(diào)度問題」。
多 OS 混合部署框架
openEuler Embedded 中多 OS 混合部署框架的架構(gòu)圖如下所示,引入了開源框架 OpenAMP[1]作為基礎(chǔ),并結(jié)合自身需要進(jìn)一步創(chuàng)新。
「圖 2」 多 OS 混合部署框架的基礎(chǔ)架構(gòu)
在上述架構(gòu)中,libmetal 提供屏蔽了不同系統(tǒng)實現(xiàn)的細(xì)節(jié)提供了統(tǒng)一的抽象,virtio queue 相當(dāng)于網(wǎng)絡(luò)協(xié)議中的 MAC 層提供高效的底層通信機制,rpmsg 相當(dāng)于網(wǎng)絡(luò)協(xié)議中的傳輸層提供了基于端點(endpoint)與通道(channel)抽象的通信機制,remoteproc 提供生命周期管理功能包括初始化、啟動、暫停、結(jié)束等。
在 openEuler Embedded 22.03 中,集成了 OpenAMP 相關(guān)支持,并與 openEuler 的 SIG Zephyr[2] 合作實現(xiàn)了 openEuler Embedded 與實時操作系統(tǒng) Zephyr[3] 在 QEMU 平臺上的混合部署,具體可以參考
多 OS 混合部署 Demo[4]
在此基礎(chǔ)上,openEuler Embedded 的混合部署框架還會繼續(xù)演進(jìn),包括對接更多的實時操作系統(tǒng),如國產(chǎn)開源實時操作系統(tǒng) RT-Thread[5],實現(xiàn)如圖 3 所示的多 OS 服務(wù)化部署并適時引入基于虛擬化技術(shù)的嵌入式彈性底座。
「圖 3」 多 OS 服務(wù)化部署架構(gòu)
在上述多 OS 服務(wù)化部署架構(gòu)中,openEuler Embedded 是中心,主要對其他 OS 提供管理、網(wǎng)絡(luò)、文件系統(tǒng)等通用服務(wù),其他 OS 可以專注于其所擅長的領(lǐng)域,并通過 shell、log 和 debug 等通道與 Linux 豐富而強大維測體對接從而簡化開發(fā)工作。
原文標(biāo)題:Embedded SIG | 多 OS 混合部署框架
文章出處:【微信公眾號:openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
處理器
+關(guān)注
關(guān)注
68文章
19382瀏覽量
230479 -
嵌入式
+關(guān)注
關(guān)注
5087文章
19153瀏覽量
306425 -
硬件
+關(guān)注
關(guān)注
11文章
3354瀏覽量
66338 -
openEuler
+關(guān)注
關(guān)注
2文章
319瀏覽量
5922
原文標(biāo)題:Embedded SIG | 多 OS 混合部署框架
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論