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