01.虛擬化技術概述
近年來,隨著嵌入式軟硬體的高速發展,嵌入式系統產品已融入日常生活的方方面面,在航空航天、車載電子、工業控制等要求更為嚴苛等領域的應用也更加廣泛。特別對汽車領域,每輛車內ECU的使用數量已從21世紀初的30-50個飆升至上百個,其複雜程度也呈指數級上升,給汽車嵌入式軟體的開發與測試帶來極大挑戰。引入虛擬化技術來應對複雜硬體所帶來的挑戰,成為了歷史長河發展的必然。
虛擬化本質是提供一個虛擬的作業系統執行環境,讓複雜多樣的嵌入式程式(包括作業系統)能夠並行執行在同一物理硬體環境上。自上世紀六十年代以來,虛擬化技術已形成一套合理且受業界認可的理論體系:執行在真實物理環境上的稱為宿主機(host OS,Operating System),透過虛擬化技術實現的全系統執行環境稱為虛擬機器(Virtual Machine,VM),在虛擬環境中執行的作業系統稱為客戶作業系統(Guest OS)。
世界上第一位計算機博士David Wheeler說過,“電腦科學中的任何問題都可以透過增加一箇中間層來解決”,因此虛擬化技術在硬體和客戶作業系統軟體之間引入了一個新層級,稱之為Hypervisor或VMM(Virtual Machine Monitor),這一層級就可以簡單理解為軟體虛擬化技術。
02.如何理解Hypervisor
可以進行如此理解:一臺電腦的硬體就好比一棟高層大樓,電腦中的諸多虛擬機器就可看做大樓中的多套房屋。每個房屋都有各自的臥室(CPU)、儲藏室(記憶體)和私人網線(網路資源),享受著獨門獨戶的私密空間和生活設施。
但實際上,大樓的電梯、供水系統、電網是所有房屋共用的。也就是說,雖然每個房屋看似擁有專屬資源,但其背後依賴的是全樓共享的基礎設施。這些資源是由物理主機(大樓)統一提供並智慧分配的,每個虛擬機器只在需要時,按需使用共享資源的一部分。
Hypervisor就像這棟大樓的物業管理員,在幕後精心安排以確保每個虛擬機器(房屋)既能安全、高效的享用所需資源,又不會互相干擾,就像住在獨立的房屋中一樣。
03.Hypervisor分類
在虛擬化技術的發展歷程中,由於特點、用途、功能不同,出現了多個種類的虛擬化型別。大體上可以根據host OS的有無,或者Hypervisor是否直接執行在硬體上,將其分為Type-1型和Type-2型。
3.1 Type-1型Hypervisor
Type-1型也被稱為裸機型Hypervisor,如下圖所示,沒有宿主作業系統,而是直接執行底層硬體之上,直接管理CPU、記憶體等真實資源的同時,向上層提供客戶作業系統的抽象執行環境,常見的有VMware ESXi、Microsoft Hyper-V、Xen。
由於需要一定程度上融合作業系統的功能,Type-1型也被分為微核心架構和單核心架構,剛才介紹的前兩種屬於單核心Hypervisor產品,而Xen就是典型的微核心產品。
雖然Hypervisor能夠為虛擬機器提供更接近物理機的效能,但也存在顯著的缺點與侷限性:
1. 複雜性和部署難度:由於直接安裝在物理硬體上,其安裝與配置通常更為複雜,需要特定的管理工具來配置和管理虛擬機器,這些工具可能需要額外的培訓與學習成本。複雜裝備中,高昂的硬體成本也會對後續測試與驗證帶來挑戰。
2. 硬體相容性:直接執行在硬體上導致Type-1型的硬體依賴性較強,如果硬體不支援或相容性較差,就可能導致系統不穩定或效能下降。
3. 靈活性較低:無法輕鬆與現有的桌面作業系統整合,每次調整配置或測試新環境都需要直接在硬體上操作,系統更新與補丁管理也需要精心規劃以減少對生產環境的影響。
3.2 Type-2型Hypervisor
Type-2型Hypervisor安裝在作業系統上,依賴於基礎作業系統提供服務,其寄生的宿主作業系統擁有對硬體平臺和資源的全部控制權,包括CPU與實體記憶體。如下圖所示,Hypervisor包含在Host OS中,並不直接與硬體互動:
此類Hypervisor可以使用宿主機的各種功能模組,如宿主機自身的排程模組等,充分利用宿主作業系統對物理硬體的管理功能,只需提供對客戶作業系統的管理即可。這意味著,宿主作業系統首先啟動並管理硬體資源,而後Hypervisor在宿主系統內部執行,並進一步建立和管理虛擬機器。最具代表性的Type-2型硬體虛擬化產品為KVM(Kernel-based Virtual Machine),軟體虛擬化產品則為SkyEye(詳見下文)。
儘管可能在資源效率方面有所欠缺,但Type-2型相較Type-1型有著易用性和相容性方面的巨大優勢:
1. 易於部署和管理:直接安裝在作業系統上,不需要額外的硬體配置或引導管理,能與更多種類的硬體相容。
2. 使用體驗與測試友好:Type-2型能直接在桌面作業系統中使用,通常帶有圖形使用者介面(Graphical User Interface,GUI),使用者可以更方便地建立、管理和操作虛擬機器。
04.利用虛擬化技術模擬汽車嵌入式系統
對汽車領域而言,虛擬化技術的模擬可分為硬體虛擬化和軟體虛擬化。硬體虛擬化由於需要使用和嵌入式系統CPU相同架構的平臺,在採購成本上較為受限,僅能模擬同源架構,在外設虛擬化上的支援也較為遜色。
軟體虛擬化則較好解決了上述問題,透過將汽車嵌入式系統硬體環境進行虛擬模擬實現更高的靈活性,資源分配也更為靈活,工程師可不受物理硬體的限制,隨時訪問目標系統,快速搭建虛擬硬體原型,提前進行開發、測試及驗證工作。
05.應用案例
天目全數字實時模擬軟體SkyEye,屬於Hypervisor Type-2型的軟體虛擬化工具,是符合“軟體定義汽車”的工具軟體。
作為一款國產自主的基於視覺化建模的硬體行為級模擬平臺,SkyEye目前已支援涵蓋汽車ECU所用到的大部分處理器架構,如PowerPC、Tricore系列等,能夠用於汽車BMS系統、汽車發動機管理系統等虛擬原型(即虛擬ECU)的搭建。
應用基於SkyEye的虛擬ECU,工程師可以:
-
無需關心真實線纜繁瑣的連線關係,工程一次搭建,持續可複用;
-
具備真實CAN匯流排和INCA硬體的模擬能力,支援數量幾乎無限制的模擬硬體;
-
支援符合AUTOSAR協議的OS及應用程式的執行;
-
整合原有標定上位機軟體,外接Simulink模型模擬真實資料。
除了透過虛擬化技術及數字孿生幫助快速構建所需ECU、有效縮短整車研發週期外,SkyEye還能幫助使用者節省昂貴的硬體裝置製造成本,無需對程式進行任何修改即可實現嵌入式軟體的執行與除錯,覆蓋嵌入式軟體開發全生命週期,真正實現嵌入式的“敏捷開發,降本增效”。