欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內不再提示

Jailhouse原理及openEuler下的性能剖析

openEuler ? 來源:openEuler ? 2023-12-12 10:40 ? 次閱讀

Jailhouse 誕生于西門子,自 2013 年 11 月遵循 GPLv2,至今發(fā)展 9 年,最新版本為 v0.12。Jailhouse 本身不對 Linux 做任何修改,通過硬件隔離的方式實現(xiàn) Linux 和多 RTOS 的同時運行,使用 Cell 來配置 CPU 和設備資源,且 Cell 之間設備資源不可共用。硬件至少需要 2 個邏輯 CPU 支撐它的運行,支持 x86 架構支持 VMX、EPT、Preemption timer 與帶有虛擬化擴展的 ARMv7 或 ARMv8 架構。

feb5d042-9837-11ee-8b88-92fbcf53809c.png

Jailhouse 原理

Jailhouse 本身并不改造 Linux 內核,而是利用 Linux 系統(tǒng)的開放性,增加一個或多個實時操作系統(tǒng),實現(xiàn)多系統(tǒng)在一個多核處理器上運行,如下圖所示:

fec53c1c-9837-11ee-8b88-92fbcf53809c.png

它是一個基于 Hypervisor 虛擬化技術的 Linux 靜態(tài)分區(qū)管理程序,其可以運行裸機應用程序或 RTOS 應用程序。為此,Jailhouse 使用 cell 單元節(jié)點來配置 CPU 和設備硬件平臺的虛擬化功能,且各個節(jié)點分配的資源互不干擾。Jailhouse 啟動后,可以在相對獨立的空間運行裸機應用程序、RTOS 系統(tǒng),甚至是 Linux 系統(tǒng)。Jailhouse 不支持硬件的多單元節(jié)點復用,其希望用戶僅分配需要安全隔離控制的外設硬件資源,這樣能保證裸機應用程序或 RTOS 最大限度減少因為應用虛擬化技術所造成的實時性損失。Jailhouse 不執(zhí)行任何調度。

一般而言,虛擬機監(jiān)控器擁有兩種結構類型:Type-I 類型和 Type-II 類型。Type-I 類型的虛擬機監(jiān)控器是獨立運行在硬件/固件層之上的一層很薄的軟件;而 Type-II 類型的虛擬機監(jiān)控器則是運行在宿主機操作系統(tǒng)之上的。

Jailhouse 上擁有一個主控節(jié)點,通常運行 Linux 操作系統(tǒng),負責完成系統(tǒng)的初始化并提供管理員接口。該主控節(jié)點并不具備全部硬件資源的控制權限。當虛擬機監(jiān)控器完成初始化,新的分區(qū)完成創(chuàng)建后,相關的硬件資源將直接劃分至對應的分區(qū)中,由運行在分區(qū)中的操作系統(tǒng)進行管理。如果從運行時的系統(tǒng)結構看,Jailhouse 是一種 Type-I 型的虛擬機監(jiān)控器。但與 Type-I 型虛擬機監(jiān)控器不同,其系統(tǒng)的初始化過程依賴于主控 Linux 分區(qū)。但它也不像 Type-II 型虛擬機監(jiān)控器圖,通過宿主操作系統(tǒng)來實現(xiàn)運行時的管理。它更類似于一種 Type-I 和 Type-II 的混合結構,主控 Linux 分區(qū)被用作當成虛擬機監(jiān)控器的 BootLoader,而不是一個具有特權的管理域。

內存虛擬化

在非虛擬化條件下,虛擬地址經(jīng)過 CPU 的內存管理單元(MMU)的一輪多級頁表查詢轉換為物理地址。在虛擬化平臺下,虛擬地址(VA)通過客戶操作系統(tǒng)所管理的頁表轉換后不再是實際發(fā)送到內存總線的物理地址(PA),而是一個待虛擬機化平臺繼續(xù)轉換(至物理地址)的中間地址。本文稱之為中間物理地址(IPA)。盡管直接重用針對操作系統(tǒng)設計的虛擬內存機制 ? 可找到支持虛擬機的方案,但通常而言這需要在虛擬機訪問虛存控制寄存器時發(fā)生自陷,并由虛擬機監(jiān)控器構建一個影子頁表。影子頁表方案的缺點在于增加了性能開銷和實現(xiàn)復雜度。因此,使客戶操作系統(tǒng)不通過自陷管理虛存數(shù)據(jù)結構,同時允許虛擬機監(jiān)控器對物理內存資源全權管理,是硬件內存虛擬化技術所追求的目標。為了實現(xiàn)該目標,ARM64 處理器實現(xiàn)了一個基于兩階段地址轉換的虛存管理機制,如下圖所示:

fee15d8e-9837-11ee-8b88-92fbcf53809c.png

在兩階段地址轉換下,第一階段地址轉換頁表由操作系統(tǒng)進行管理,負責將應用程序的虛擬地址(VA)轉換成操作系統(tǒng)視圖下的物理地址。由于此時操作系統(tǒng)所使用的內存資源處于虛擬機監(jiān)控器的管理之下,操作系統(tǒng)視圖下的物理地址并非真實的物理內存,而是一個中間物理地址(IPA)。虛擬機監(jiān)控器在 EL2 下管理第二階段地址轉換的頁表,該階段將 IPA 最終轉換成物理地址。

每一階段所使用的頁表級數(shù)由 VA、IPA 以及 PA 的地址空間以及頁面大小所決定。當?shù)诙A段轉換被使能時,所有 IPA 將通過一組專用的頁表被轉換為 PA。兩個階段的轉換均可以被獨立的使能與禁用。當?shù)谝浑A段地址轉換被禁用時,VA 和 IPA 相等。與其類似,當?shù)诙A段地址轉換被禁用時,IPA 和 PA 相等。兩個階段地址轉換使用的頁表格式有細節(jié)上的區(qū)別。

通過使能兩階段地址轉換機制,客戶操作系統(tǒng)無需自陷至 EL2 來管理自己的第一階段地址轉換的頁表以及相關的虛存控制寄存器。對于客戶操作系統(tǒng)中的應用程序,第一階段頁表將其 VA 轉換成 IPA,隨后 IPA 通過第二階段地址轉換被映射為 PA。第二階段地址轉換僅支持在 EL2 下進行配置,可被完全的禁止或使能。虛擬機監(jiān)控器負責管理 IPA 到 PA 的地址映射。對于虛擬機監(jiān)控器自身的程序,其 VA 的轉換并非為兩階段的轉換機制,而是使用一個特殊的頁表基地址寄存器(TTBR0_EL2),通過一個階段的地址轉換直接轉換成 PA。這是因為,虛擬機監(jiān)控器擁有對物理內存資源的所有管理權限,其自身所使用的地址即為真實的物理資源地址,而非如同在操作系統(tǒng)視圖下的物理地址那樣實際上只是一個中間物理地址。

IO 虛擬化

客戶機系統(tǒng)使用外圍設備區(qū)域來訪問其看到的物理外圍設備,這其中包含了直通設備和虛擬外圍設備。虛擬設備由 Jailhouse 模擬。

一個直通設備被直接分配給客戶機并映射到 IPA 地址空間,這使得客戶機中的軟件可用直接訪問真實的物理硬件。雖然客戶機中的軟件看來其是直接與物理設備交互,但實際上這一訪問會陷入相應的異常處理程序。IO 虛擬化實現(xiàn)之前首先是對 IO 訪問的攔截和校驗,因為 Jailhouse 首先要知道的是此次 IO 訪問是否合法,這是保證安全隔離的必要條件。通過與系統(tǒng)配置信息對比,如果是非法 IO 的話,MMIO 會轉到 panic 流程。在 panic 中 Jailhouse 會輸出此次非法 IO 的地址、讀寫以及異常發(fā)生時的上下文。只有當 IO 校驗符合系統(tǒng)配置要求時,才會進入 MMIO 的 handler 處理。這是做到安全隔離的必要手段。

中斷虛擬化

GIC 針對中斷虛擬化的需求進行了虛擬化功能擴展,降低了虛擬機監(jiān)控器對虛擬中斷傳遞模擬的開銷。GICv3 在物理 CPU 接口的基礎上擴展了虛擬 CPU 接口(VirtualCPUInterface)和相應的虛擬化控制接口(VirtualizationControlInterface)。虛擬機在運行時被配置為訪問虛擬 CPU 接口,而不是實際的物理 CPU 接口。虛擬中斷是通過向虛擬化控制接口中特殊寄存器 LR(ListRegiter)發(fā)起寫操作而生成的,虛擬中斷產生后直接進入 EL1。由于虛擬 CPU 接口中包含了對 ACK 和 EOI 的支持,因此當客戶操作系統(tǒng)的 ACK 或 EOI 操作不再觸發(fā)虛擬機監(jiān)控器的自陷和模擬,從而降低了虛擬機接收中斷的開銷。例如,當虛擬設備通過軟件編程接口向虛擬機發(fā)送虛擬中斷時,虛擬機監(jiān)控器將虛擬中斷號寫入 LR 寄存器,實現(xiàn)將虛擬中斷注入到虛擬機的操作。當進入虛擬機后,GIC 的虛擬化擴展中斷虛擬機內用戶進程的執(zhí)行,使之進入客戶操作系統(tǒng)所定義的異常向量入口,隨后由客戶操作系統(tǒng)獨立完成 ACK、EOI 等操作:

fefbc3d6-9837-11ee-8b88-92fbcf53809c.png

域間通信

雖然分區(qū)將硬件資源進行了劃分,通過虛擬機監(jiān)控器實現(xiàn)了相互隔離,但在實際應用過程中,分區(qū)間也需進行通信。為此,Jailhouse 為分區(qū)間使用共享內存與信號機制構建分區(qū)間通信的通道。具體來說,一個通道將兩個分區(qū) 1:1 對應地連接起來,不存在“1:N”,“N:M”的連接范式,如圖:

ff0dac40-9837-11ee-8b88-92fbcf53809c.png

可使用兩種類型的通信機制:通過傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)進行網(wǎng)絡通信,該協(xié)議使用 TCP/IP 協(xié)議在節(jié)點之間發(fā)送數(shù)據(jù),或通過使用分區(qū)之間的共享內存(利用此功能的協(xié)議示例為 IVSHMEM)。

TCP/IP 是一種更適合于客戶機駐留在獨立物理機中的協(xié)議,換句話說,當多個物理機需要相互連接時,它意味著為多個物理機提供通信通道。然而,考慮到要傳輸?shù)臄?shù)據(jù)經(jīng)過協(xié)議棧,通過 TCP/IP 進行通信更耗時。

共享內存更適用于虛擬機駐留再內存中的情況,因為不同的分區(qū)在同一個物理機上建立。使用共享內存協(xié)議可以減少交換數(shù)據(jù)所需的操作次數(shù),并且更改是直接可見的。

對每個分區(qū),通信通道的終端編程接口被設計為 PCI 設備接口,以便分區(qū)客戶操作系統(tǒng)通過初始化階段的 PCI 設備掃描發(fā)現(xiàn)。設備的實現(xiàn)參考了 ivshmem 設備模型,使用 intx 中斷實現(xiàn)信號通知機制。為了實現(xiàn)分區(qū)間設備狀態(tài)的同步,通道 PCI 設備提供了兩個額外的 MMIO 寄存器,一個用于寫入本地分區(qū)狀態(tài),另一個用于讀取遠程分區(qū)寫入的狀態(tài)。在兩個分區(qū)之間建立通信通道時,虛擬機監(jiān)控器首先需要在兩個分區(qū)的地址空間中分別分配一片內存區(qū)域,然后分配一片與之大小相同的可讀寫物理頁面并進行映射。最終在各個分區(qū)使用這個虛擬的 pci 設備進行域間通信。

Jailhouse 對 openEuler 系統(tǒng)性能評估

「對 HostOS 的影響性能評估」

ff2bc504-9837-11ee-8b88-92fbcf53809c.png

Jailhouse 設備穿透性能評估

ff3794ba-9837-11ee-8b88-92fbcf53809c.png

LTP 穩(wěn)定性測試

Intel I7-8700、鯤鵬 920、飛騰 2000/4、樹莓派 4B 平臺測試 5 天,開啟 Jailhouse 后無新增穩(wěn)定性問題出現(xiàn)。

「Jailhouse 在 openEuler 的現(xiàn)狀」

Jailhouse 是由工業(yè)控制 SIG 組引進,由麒麟軟件和菁蓉聯(lián)創(chuàng)科技共同維護。

已支持飛騰 FT2004、D2000、E2000Q、E2000D、RK3588 等設備 。

目前 jailhouse 已經(jīng)適配 openEuler2203 Embedded 系統(tǒng),可以在樹莓派 4B 平臺運行 FreeRTOS 虛擬化,由菁蓉聯(lián)創(chuàng)科技貢獻的jailhouse-gui 項目也已同步發(fā)布。

Jailhouse 在 openEuler 的未來發(fā)展

未來工業(yè)控制 SIG 組的麒麟軟件會關注于其他國內平臺適配,瑞芯微系列(RK3399、RK3568)、全志系列等;易用性工具推廣,如配置文件自動生成工具、UEFI 兼容等;新特新優(yōu)化,如子頁訪問效率提升、jailhouse coredump、PCIE 設備隔離。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10908

    瀏覽量

    213087
  • 西門子
    +關注

    關注

    95

    文章

    3063

    瀏覽量

    116487
  • Linux
    +關注

    關注

    87

    文章

    11350

    瀏覽量

    210464
  • 實時操作系統(tǒng)

    關注

    1

    文章

    199

    瀏覽量

    30831
  • openEuler
    +關注

    關注

    2

    文章

    319

    瀏覽量

    5945

原文標題:Jailhouse原理及openEuler下的性能剖析

文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    jailhouse是什么?有何優(yōu)點

    簡介jailhouse是一個嵌入式系統(tǒng)的虛擬化工具,它的英文介紹如下,非常強調partition。實時性比較好,隔離的也比較好。Jailhouse, a Linux-based partitioning hypervisor由德國西門子開發(fā)。。版權:GPLv2代碼地址:論
    發(fā)表于 12-23 08:05

    如何完成openEuler面向RK3399開發(fā)板的移植?

    如何制作openEuler的rootfs.img?如何完成openEuler面向RK3399開發(fā)板的移植?
    發(fā)表于 03-04 07:42

    openEuler 社區(qū) 2022 年 6 月運作報告

    openEuler社區(qū)運作報告2022年6月去年11月,openEuler社區(qū)捐贈給開放原子開源基金會后,openEuler在技術、商業(yè)、生態(tài)、開源建設等各方面取得顯著發(fā)展。本月,我們來聊聊
    發(fā)表于 07-08 14:37

    openEuler 社區(qū)完成首批顧問專家聘用,共同為社區(qū)的發(fā)展?貢獻力量

    openEuler 在2021年11月捐贈給開放原子開源基金會后,在生態(tài)構建、技術創(chuàng)新和商業(yè)落地全面加速,取得了跨越式進展。作為一個支持多樣性計算和持續(xù)推動技術創(chuàng)新的操作系統(tǒng)開源社區(qū)
    發(fā)表于 07-29 10:11

    openEuler資源利用率提升之道02:典型應用的效果

    前文[1]介紹了資源利用率提升這個課題的產生背景、形成原因、解決思路,以及在 openEuler 上所構建的資源利用率整體解決方案和技術演進思路。本篇我們針對容器在離線場景的典型應用類型( CPU
    發(fā)表于 08-10 11:12

    使用 Canonical MAAS 部署 openEuler 測試

    /openeuler$“http/ openeuler.ks”則基于“rhel8.ks”并刪除那些在openeuler會失敗的配置。其中最重要修改如下:ubuntu@vm-
    發(fā)表于 08-24 11:43

    一次 Rancher 和 openEuler 的上云之旅

    和 Docker 容器技術領域都有豐富的研發(fā)和實踐經(jīng)驗。Rancher 是一套開源的企業(yè)級容器管理平臺,支持大量的 Kubernetes 發(fā)行版以及 Linux 操作系統(tǒng),[將 openEuler Linux
    發(fā)表于 09-29 10:57

    openEuler RISC-V 23.03 創(chuàng)新版本亮相:全面提升硬件兼容性和桌面體驗

    VisionFive 2 和算能 SG2042 兩款設備。支持 SG2042openEuler RISC-V 23.03 創(chuàng)新版本成功接入 RISC-V 64 cores 高性能處理器 SG2042(EVB
    發(fā)表于 04-15 13:55

    openEuler RISC-V 成功適配 LicheePi 4A 開發(fā)板

    近期,RISC-V SIG 在 LicheePi 4A 開發(fā)板上成功實現(xiàn)了歐拉操作系統(tǒng)的適配。目前,最新版本的 openEuler RISC-V 23.03 V1 鏡像已在 LicheePi 4A
    發(fā)表于 05-04 22:22

    全面剖析負極材料和電池性能關系

    全面剖析負極材料和電池性能關系
    的頭像 發(fā)表于 03-11 15:53 ?2477次閱讀
    全面<b class='flag-5'>剖析</b>負極材料和電池<b class='flag-5'>性能</b>關系

    HPC SIG致力openEuler上的高性能計算軟件生態(tài)

    經(jīng) openEuler 社區(qū)技術委員會討論批準,openEuler 社區(qū)正式成立 HPC SIG。HPC SIG 致力于發(fā)展 openEuler 上的高性能計算軟件生態(tài),在
    的頭像 發(fā)表于 09-26 09:37 ?2190次閱讀

    歐拉(openEuler)Summit 2021:基于AI的操作系統(tǒng)性能調優(yōu)引擎

     歐拉(openEuler)Summit 2021直播會上,重點介紹基于AI的操作系統(tǒng)性能調優(yōu)引擎。
    的頭像 發(fā)表于 11-10 10:46 ?2201次閱讀
    歐拉(<b class='flag-5'>openEuler</b>)Summit 2021:基于AI的操作系統(tǒng)<b class='flag-5'>性能</b>調優(yōu)引擎

    歐拉(openEuler)Summit 2021:歐拉demo分享——etMem

    歐拉(openEuler)Summit 2021上,歐拉開源社區(qū)Maintainer,鄭振宇關于etMem內存分級擴展,同等性能內存成本顯著降低的相關介紹。
    的頭像 發(fā)表于 11-10 09:51 ?2027次閱讀
    歐拉(<b class='flag-5'>openEuler</b>)Summit 2021:歐拉demo分享——etMem

    全面剖析電子管的性能

    全面剖析電子管的性能
    發(fā)表于 01-20 10:14 ?9次下載

    RocketMQ on openEuler提供高性能消息隊列的穩(wěn)定性解決方案

    RocketMQ on openEuler,是一種將 RocketMQ 消息中間件通過容器化的方式部署在 openEuler 操作系統(tǒng)上運行,借助 openEuler 系統(tǒng)對于 OS 緩存回收
    的頭像 發(fā)表于 06-28 10:57 ?682次閱讀
    RocketMQ on <b class='flag-5'>openEuler</b>提供高<b class='flag-5'>性能</b>消息隊列的穩(wěn)定性解決方案