<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

電源管理入門:Hypervisor中的電源管理

yzcdx ? 來源:OS與AUTOSAR研究 ? 2023-12-06 09:27 ? 次閱讀

很多時候聽說Hypervisor,但是對底層軟件技術不了解的人感覺挺神秘。本篇文章簡單介紹下Hypervisor的基本概念,另外介紹下電源管理在Hypervisor之上多OS間怎么應用。

1. Hypervisor概念介紹

95ef6c5a-93c6-11ee-939d-92fbcf53809c.png

虛擬機管理器,又稱Hypervisor ,也稱為虛擬機監控程序(VMM),其處于SoC 硬件平臺之上,將實體資源(如 CPU、內存、存儲空間、網絡適配器、外設等 ) 轉換為虛擬資源,按需分配給每個虛擬機,允許它們獨立地訪問已授權的虛擬資源。

Hypervisor實現了硬件資源的整合和隔離,使應用程序既能共享CPU等物理硬件,也能依托不同的內核環境和驅動運行,從而滿足現代復雜軟硬件系統多元化應用場景需求。目前,通常使用兩種類型的管理程序:

Type 1:裸機虛擬機管理程序:一種在硬件上本機運行的管理程序。

Type 2:托管虛擬機監控程序:此類型的虛擬機監控程序必須由另一個操作系統托管,并且僅負責使用主機操作系統可用的資源來虛擬化客戶操作系統。

類型 優點 缺點
Type 1 不必預先加載底層操作系統,直接訪問底層硬件而無需其他軟件(例如操作系統和設備驅動程序),速度快直接在物理硬件上運行相對較安全,因為裸機虛擬機管理程序可避免操作系統通常存在的安全問題和漏洞。這可確保每個訪客VM與惡意軟件和活動保持邏輯隔離。 移植成本較高
Type 2 通用性強,好移植 底層操作系統的存在會引入不可避免的延遲,因為所有該管理程序的活動和每個VM的工作都必須通過主機操作系統。主機操作系統中的任何安全問題或漏洞都可能會危及在其上運行的所有虛擬機。因此,Type2管理程序通常不用于數據中心計算,并且僅用于客戶端或最終用戶系統,其中性能和安全性較少受到關注。

VMM首先需要對CPU、內存、中斷等資源進行管理,并提供對應虛擬化功能;按照I/O設備驅動的布局,又可以分為Hypervisor模型混合模型;

Hypervisor模型:VMM設備驅動提供物理設備驅動管理,并向上提供服務;

混合模型:VMM只提供必要的CPU資源管理,由Guest Server OS提供設備管理和虛擬化服務。

Type 1和2的區別就是管理硬件的程序放OS還是OS之下,全放OS就是Type 2,全放OS之下就是Type 1.

驅動程序放OS里面的話會引起兩個OS直接通信的開,全放OS之下VMM的話,VMM驅動開發工作量較大,因為OS里面的驅動基本就是現成的,VMM里面很大可能沒可以抄的驅動。

參考Hypervisor模型:QNX

參考混合模型:代表有

[Xen](https://xenproject.org/),

Intel的[Acrn](https://projectacrn.org/),

以及國內的[minos](https://github.com/minosproject/minos),

和[bao-hypervisor](https://github.com/bao-project/bao-hypervisor)

2. 汽車軟件中的Hypervisor應用

9612fd5a-93c6-11ee-939d-92fbcf53809c.png

Hypervisor處于 SoC 硬件平臺之上,將實體資源(如 CPU、內存、存儲空間、網絡適配器、外設等 ) 轉換為虛擬資源,按需分配給每個虛擬機,允許它們獨立地訪問已授權的虛擬資源。Hypervisor 實現了硬件資源的整合和隔離,使應用程序既能共享 CPU 等物理硬件,也能依托不同的內核環境和驅動運行,從而滿足汽車領域多元化應用場景需求。

為什么汽車中迫切需求Hypervisor?

汽車上有三個域:車身域、座艙域、智駕域。也就是說有三個OS運行在復雜的SoC上。在域融合的同時,要保證關鍵業務的安全可靠,也要考慮應用生態的可持續性兼容,這就需要有資源隔離技術來支撐在同一 SOC 上切分資源,可并發運行多種操作系統,保障互不干擾?;诎踩唾Y源隔離的需求需要Hypervisor。

資源隔離技術有很多,為什么是Hypervisor?

資源隔離技術有多種,從硬件底層逐層向上包括硬件隔離、虛擬化隔離、容器隔離、進程隔離等。硬件隔離的隔離性最好,單隔離域的性能、安全可靠性最好,但靈活性、可配置性差,不能實現硬件共享,導致整個系統的資源利用率差,不能充分達到軟件定義汽車的目標。容器隔離、進程隔離可以更輕量級地實現業務隔離,但還是在同一個操作系統內,存在著資源干擾、相互安全攻擊的隱患,并且無法支持異構操作系統業務域融合,影響傳統業務繼承,不利于生態發展。在眾多的資源隔離技術中,虛擬化是安全可靠、彈性靈活的優選方案,是軟件定義汽車的重要支撐技術。

在汽車領域,Hypervisior 主要完成以下任務:

虛擬化:為虛擬機提供 VCPU 資源和運行環境;

內存虛擬化:負責為其自身和虛擬機分配和管理硬件內存資源;

中斷虛擬化:發生中斷和異常時,按需將中斷和異常路由到虛擬機進行處理;

虛擬機設備模擬:根據需求創建虛擬機可以訪問的虛擬硬件組件;

硬件支持 BSP:提供 Hypervisor 在 SoC上運行的板級支持包,如串口驅動;

虛擬機資源配置:對虛擬機的 CPU,內存,IO 外設等資源進行配置和管理;

虛擬機通信:為虛擬機提供 IPC,共享內存等通信機制。

虛擬機調度:為虛擬機提供優先級和時間片等調度算法;

虛擬機生命周期管理:創建,啟動和停止虛擬機;

虛擬機調測服務:提供控制臺,日志等調試功能;

3. QNX Hypervisor

962ab88c-93c6-11ee-939d-92fbcf53809c.png

QNX Hypervisor是基于Type 1實時優先級的微內核管理程序,用于管理虛擬機。在QNX 虛擬機管理程序可以更容易地獲得并通過從不同的客戶機操作系統的非安全關鍵組分分離安全關鍵部件保持安全認證。QNX Hypervisor能夠滿足嵌入式零停機生產系統的精度要求。

基于標準的訪客通信(virtIO)和靈活的虛擬機配置確保了虛擬機管理程序環境可以擴展到大型服務器級設計(根據自動驅動器和高端計算系統的要求)。此外,虛擬機管理程序環境可以擴展到深度嵌入式系統(集群+信息娛樂汽車系統,ECU整合,醫療設備,工業控制)。QNX Hypervisor實現為經過業界驗證的基于QNX Neutrino微內核RTOS的虛擬化擴展; 繼承QNX操作系統的所有實時性和穩定性,該操作系統已經在全球數百萬個嵌入式系統中提供。

Type 1 Hypervisor

安全認證譜系

虛擬CPU模型

根據優先級固定核心或共享核心

自適應分區 - 允許客戶運行時的CPU保證

64位和32位客戶:QNX,Linux,Android,RTOS

共享內存與觸發

VirtIO(0.95 / 1.0)設備共享

TAP和具有橋接功能的點對點網絡

故障檢測并重新啟動客人

用于訪客完整性檢查的虛擬監視器

低開銷(典型<2%)

用于分析和調試的圖形工具

VM間通信

運行在多個虛擬機中的應用程序必須協同工作才能提供嵌入式設備的服務。通過這種方式,QNX Hypervisor支持共享內存訪問,共享文件訪問以及虛擬機之間的TCP / IP / UDP網絡。

9644815e-93c6-11ee-939d-92fbcf53809c.png

QNX ()高級虛擬化框架 (QAVF) 擴展了 QNX ()管理程序和 QNX ()安全管理程序,提供高級虛擬化軟件組件,使 Android ()、Linux ()和 QNX ()等來賓能夠在涉及安全性的復雜環境中共存,安全認證、設備抽象和設備共享。

通過遵循 VIRTIO 等開放標準,未經修改的 Android 和 Linux 客戶機可以共享底層硬件和高級軟件服務,例如圖形顯示、聲學環境、觸摸屏、媒體存儲設備、視頻流、相機、通信、藍牙 (等)。

QAVF 允許在訪客外部共享設備。這是支持響應式用戶體驗的重要功能。例如,它使用戶能夠在來賓仍在啟動時與硬件設備(如相機、顯示器、音頻或觸摸屏)進行交互。

4. Hypervisor中的多OS通信技術

Hypervisor中有很多技術,例如CPU 虛擬化和節能降耗技術、IO 設備虛擬化、實時性技術、安全和可靠性技術等,大家可以自己查資料去學習,特別是參考國內的minos,bao-hypervisor開源軟件去學習,修改,使用(大家懂的)。

這里主要介紹下多OS的通信技術,后面在介紹多OS電源管理時會用到。

Hypervisor(虛擬化管理程序)是一種軟件或硬件層面的虛擬化技術,用于在物理計算機上運行多個虛擬操作系統(OS)。Hypervisor需要提供一種有效的機制,以便不同虛擬機(VM)之間以及虛擬機與宿主機(host)之間進行通信。以下是幾種常見的Hypervisor的OS間通信機制:

1. 虛擬網絡:Hypervisor可以創建虛擬網絡,為虛擬機提供網絡連接和通信功能。虛擬網絡允許虛擬機之間進行網絡通信,就像它們連接在同一物理網絡上一樣。這種通信機制基于網絡協議和虛擬網絡設備的實現。

2. 共享內存:Hypervisor可以在物理內存中創建共享區域,允許不同的虛擬機共享內存數據。通過在共享內存區域中讀取和寫入數據,虛擬機可以進行相互通信。這種通信機制可以在虛擬機之間高效地傳遞數據,但需要適當的同步和互斥機制來處理并發訪問。

3. 虛擬設備和驅動程序:Hypervisor可以為虛擬機提供虛擬設備和驅動程序,使得虛擬機可以與宿主機和其他虛擬機進行通信。通過虛擬設備接口和相關驅動程序,虛擬機可以發送和接收數據包、訪問存儲資源和執行其他設備相關的操作。

4. 信號和事件:Hypervisor可以使用信號和事件機制來實現虛擬機之間的通信。例如,一個虛擬機可以向Hypervisor發送信號,通知其他虛擬機發生了特定事件或狀態變化。這些信號可以在虛擬機之間進行同步或觸發相應的處理邏輯。

5. 宿主機通道:有些Hypervisor提供了特定的宿主機通道,允許虛擬機與宿主機之間進行通信。這些通道可以用于傳遞命令、狀態信息、性能指標等。通常,宿主機通道是通過特定的API或驅動程序提供的。

其實就是:

要么共享內存+中斷,

要么寄存在某個程序上(驅網絡動、虛擬設備驅動)

要么Hypervisor加一套消息處理通道機制(事件、信號、通道)。

5. 電源管理相關

例如司機不開車時對整車進行關機,那么這個命令如何在三個OS直接傳遞執行,這里必須有一個次序,并且有一個代理人。比如司機上帝)發送了一個指令給汽車,汽車里面的車控OS最先接收到指令(教皇),然后教皇下令給座艙OS大主教),大主教繼續給智駕OS主教)傳達命令,然后各自去完成指令。

96710e04-93c6-11ee-939d-92fbcf53809c.png

教皇就是Host OS,其他的都是Guest OS。Host OS和Guest OS的通信就是上面3章說的一種方法即可。例如采用中斷+共享內存,那么兩個OS都需要注冊對應的中斷處理函數,映射好共享內存,Guest OS一旦接受到中斷,讀取共享內存中的命令后就去執行。

不管是Host OS或者Guest OS執行電源命令都是通過HVC命令陷入到Hypervisor去處理。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電源管理
    +關注

    關注

    113

    文章

    6042

    瀏覽量

    141428
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10512

    瀏覽量

    207264
  • 管理器
    +關注

    關注

    0

    文章

    234

    瀏覽量

    18372
  • 虛擬機
    +關注

    關注

    1

    文章

    866

    瀏覽量

    27515

原文標題:參考:

文章出處:【微信號:OS與AUTOSAR研究,微信公眾號:OS與AUTOSAR研究】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    電源管理入門-Regulator驅動是什么?Regulator的作用是什么?

    Regulator是Linux系統中電源管理的基礎設施之一,用于穩壓電源管理,是各種驅動子系統中設置 電壓的標準接口。
    的頭像 發表于 11-16 16:51 ?4261次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理入門</b>-Regulator驅動是什么?Regulator的作用是什么?

    電源管理入門:Thermal熱管理

    管理指的是在電子設備或系統中通過各種方式控制其溫度來保證其正常工作或延長壽命的過程。其中包括散熱設計、溫度監測、溫度控制等方面。熱管理的重要性越來越凸顯,尤其在高性能計算、人工智能等領域的應用中更為重要。
    的頭像 發表于 11-29 10:09 ?1623次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理入門</b>:Thermal熱<b class='flag-5'>管理</b>

    電源管理入門:驅動Runtime PM管理

    Runtime PM管理也就是設備驅動里面的電源管理,即設備驅動結構體里面的struct dev_pm_ops,只控制設備自己的電源。這樣可以在設備不需要工作的時候可以進入到低功耗狀態
    的頭像 發表于 11-29 10:13 ?944次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理入門</b>:驅動Runtime PM<b class='flag-5'>管理</b>

    電源管理入門:Power supply子系統

    對于便攜設備來說,電源管理更加的重要,因為電池電量有限,容易電量焦慮。除了省電管理外,還需要對電池進行監控管理和充放電管理,這樣保護好電池和
    的頭像 發表于 11-29 10:15 ?1995次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理入門</b>:Power supply子系統

    電源管理入門:Power Domain管理

    SoC中通常有很多IP,按邏輯可以把幾個相關功能的IP劃為一個電源域。一個電源域內的IP,通常按相同的方式由同一個硬件模塊PMIC供電,電壓一樣并且電源管理例如休眠喚醒一致。
    的頭像 發表于 11-29 10:16 ?1719次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理入門</b>:Power Domain<b class='flag-5'>管理</b>

    電源管理入門-芯片設計中的電源管理介紹

    SCP直接控制SoC的電源和時鐘,而AP通過硬件和軟件接口協同管理。
    的頭像 發表于 12-06 09:16 ?1236次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理入門</b>-芯片設計中的<b class='flag-5'>電源</b><b class='flag-5'>管理</b>介紹

    B03_01電源管理 概述#電源管理系統

    電源電源管理
    硬件工程師Lukou
    發布于 :2022年08月01日 14:33:03

    B03_02電源管理 為什么學不好開關電源#電源管理系統

    電源電源管理
    硬件工程師Lukou
    發布于 :2022年08月01日 14:35:42

    B03_04電源管理 電源常用術語-1#電源管理系統

    電源電源管理
    硬件工程師Lukou
    發布于 :2022年08月01日 14:53:21

    B03_04電源管理 電源常用術語2#電源管理系統

    電源電源管理
    硬件工程師Lukou
    發布于 :2022年08月01日 14:55:59

    B03_04電源管理 電源常用術語3#電源管理系統

    電源電源管理
    硬件工程師Lukou
    發布于 :2022年08月01日 14:57:42

    電源管理#芯片

    電源電源管理
    jf_97106930
    發布于 :2022年08月27日 16:21:37

    電源管理IC和充電管理IC區別

    部分電路的供電電壓。充電管理IC應該只是用于充電設備的電源管理。所以,充電管理IC可以看作電源管理
    發表于 07-05 11:55

    電源管理IC和充電管理IC區別

    部分電路的供電電壓。充電管理IC應該只是用于充電設備的電源管理。所以,充電管理IC可以看作電源管理
    發表于 07-09 17:29

    電源管理,電源管理是什么意思

    電源管理,電源管理是什么意思 電源管理的概念  指如何將
    發表于 03-23 13:38 ?1617次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>