arm64架構kvm情景分析 - type1型和type2型虛擬機管理器

內核版本:linux-v5.9
架構:arm64

1 type1型和type2虛擬機管理器

在arm64架構中,共有EL3到EL0四個異常級別,EL3異常級別最高。通常操作系統(如linux)運行在EL1,應用程序運行在EL0,EL2則運行hypervisor管理程序。虛擬機管理器有type1型和type2型之分,kvm屬于type2型虛擬機管理器。

首先思考type1型和type2虛擬機管理器有什么相同之處,即同樣作為虛擬機管理器,它們都完成哪些工作。

  1. 虛擬機資源的管理:虛擬機地址空間的管理由虛擬機管理器統一管理;
  2. 虛擬機的調度和切換:虛擬機運行時VCPU需要進行調度和上下文切換;
  3. 虛擬設備的管理:虛擬機使用的虛擬設備即設備的中斷由虛擬機管理器統一管理。

知道了兩類虛擬機管理器都需要完成的工作后,再說明他們在完成上述工作時有何不同。type1型的虛擬機管理器在完成上述工作時,所有的行為都是在EL2完成的。而type2型的虛擬機管理器在完成上述工作時,大部分是在EL1完成的,即在EL1將虛擬機的運行時上下文準備好,而在EL2級別只實現模式切換,即將準備好的運行時上下文加載進寄存器。這里提到了模式切換,暫不描述。

然后再思考為什么會出現type1型和type2型在處理這些工作時存在不同的情況。解決這個問題后,再思考兩種類型的優劣,也許就是type1型和type2型虛擬機出現的初衷。type1型虛擬機管理器完成虛擬機管理器的工作都在EL2,因為自虛擬機管理器啟動到運行時,以及對資源的管理都是在EL2異常級別。type1型的架構圖如圖1.1所示。

在這里插入圖片描述

圖1.1 type1型虛擬機管理器的架構圖

如圖1.1所示,EL2運行的是虛擬機管理器(Hypervisor),EL1運行的是客戶機(Guest OS),層次分明。圖1.1中的Hypervisor一定程度上是一個運行在EL2異常級別的操作系統和虛擬化功能的組合(Host OS + Vitrulization)。在這樣的組織架構下,EL2有能力進行資源管理,因為它本身具有操作系統的功能,所以虛擬機管理器需要完成的工作都在EL2完成。而type1型虛擬機管理器的架構圖如圖1.2所示。

在這里插入圖片描述

圖1.2 type2型虛擬機管理器的架構圖

如圖1.2所示,EL2異常級別僅提供虛擬化功能,而對資源進行管理的Host OS在EL1運行。在這樣的組織架構下,自然在需要完成虛擬機管理器的工作時,需要到EL1的Host OS運行,在準備好Guest OS的運行時上下文后,切換至Guest OS運行。這里的Host OS具體就可以是開啟了kvm功能的linux,如圖1.3所示。

在這里插入圖片描述

圖1.3 linux+kvm的虛擬化框架圖

如圖1.3所示,開啟了kvm功能的linux充當的就是Host OS的角色,全權負責對系統資源,包括Guest OS的管理。type1型和type2型虛擬機管理器由于組織架構的不同,導致實現虛擬機管理器所需的工作時出現不同之處。那么這兩種類型的虛擬機管理器各有什么優劣。粗略的說是type1型效率更高,type2型效率低。而type2型可以復用已有的資源管理框架,如linux的內存管理、進程管理和設備驅動,type1型則需要自己實現或進行代理。type1型可以說是天生是為了管理虛擬機,type2型則可以說是為系統提供了虛擬化擴展和硬件加速。軟件系統生態也會影響兩類虛擬機管理器,linux有成熟的生態,例如開源的QEMU模擬器,設備驅動。所以兩類虛擬機管理器孰優孰劣,則要根據使用場景進行判斷。

通過一個情景來具體說明為何type1型效率高,而type2型效率低。假設虛擬機管理器通過地址映射為Guest OS配置了虛擬串口,然后Guest OS訪問該串口以向串口設備傳輸一個字符。type1型的訪問流程大致如圖1.4所示。

在這里插入圖片描述

圖1.4 type1型模擬串口輸出大致流程圖

如圖1.4所示,Guest OS在訪問虛擬串口的時候會觸發一個EL1同步異常,并在EL2被捕獲。EL2獲得該異常后,根據異常信息模擬串口輸出,模擬完成后返回即可,其中異常信息通常包含觸發異常的地址、讀寫操作標識、讀寫的內容和長度等。而type2型的訪問大致流程如圖1.5所示。

在這里插入圖片描述

圖1.5 type2型模擬串口輸出大致流程圖

圖1.5中的詳細內容暫不描述,此處僅用于type1型和type2型的對比。如圖1.5所示,Guest OS同樣是訪問虛擬串口。則需要更復雜的流程,經過多次異常級別的轉換。這個對比中同樣也說明了type2型的優勢,即能夠復用Host OS(linux)的機制,并且復用Host OS的軟件生態,使得Host OS和Host OS的軟件生態也獲得了虛擬化擴展和硬件加速能力。對type1型和type2型的討論到此為止,kvm場景為type2型虛擬機管理器,后文將著重描述type2型,并具體到kvm。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43630.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43630.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43630.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Apache中使用CGI

Apache24 使用Visual Studio 2022 // CGI2.cpp : 此文件包含 "main" 函數。程序執行將在此處開始并結束。 // #include <stdio.h> #include <stdlib.h>#include <stdio.h>void main() {//設置HTML語言printf("Content-type:text/html\n\n&q…

柯橋外語學校【韓語干貨】“-? ??” VS “-?/?/? ??”

01 相同點 都可以用于動詞之后&#xff0c;且形式有相似之處。 &#xff08;1&#xff09;?? ?? ??? ?? ????. 敏鎬正在打電話。 &#xff08;2&#xff09;?? ?? ??? ???? ????. 黃珉正在學習英語。 &#xff08;3&#xff09;? ??? ? …

06_Shell內置命令

06_Shell內置命令 一、如何判斷是否內置命令 使用type命令可以區分命令種類 二、alias #!/bin/bash#設置別名 psef alias psef"ps -ef | grep java"#刪除別名 psef unalias psef#刪除所有別名 unalias -a以上設置都是臨時性的&#xff0c;真正永久設置&#xff0c;…

“離職員工”試圖打包資料帶走,如何防止敏感數據外泄?

2010年5月間&#xff0c;某家電巨頭四名前職工非法泄露該家電洗衣機重要生產和采購環節數據&#xff0c;給家電集團造成直接經濟損失共計2952.35萬元。 2017年1月&#xff0c;某科技巨頭消費者終端業務6名員工&#xff0c;離職后拿著該企業終端的知識產權結果賺錢&#xff0c;最…

Flask和Django兩個Web框架的特點和適用場景

Flask與Django是兩個非常流行的Python Web框架&#xff0c;它們各有獨特的特點和適用場景。下面將從不同方面對這兩個框架進行比較。 一、特點比較 1. 輕量級與全功能 Flask&#xff1a; 輕量級&#xff1a;Flask是一個微框架&#xff0c;代碼量少&#xff0c;靈活性高&…

【系統架構設計師】九、軟件工程(軟件測試)

目錄 八、軟件測試 8.1 測試分類 8.2 靜態方法 8.2.1 靜態測試 8.2.2 動態測試 8.2.3 自動化測試 8.3 測試階段 8.3.1 單元測試 8.3.2 集成測試 8.3.3 確認測試 8.3.4 系統測試 8.3.5 性能測試 8.3.6 驗收測試 8.3.7 其他測試 8.4 測試用例設計 8.4.1 黑…

編程視頻用什么軟件好看:探索最佳編程教學工具

編程視頻用什么軟件好看&#xff1a;探索最佳編程教學工具 在數字化時代&#xff0c;編程技能已成為一項不可或缺的核心競爭力。然而&#xff0c;對于初學者來說&#xff0c;如何有效地學習編程卻是一個令人困惑的問題。觀看編程視頻成為了一種流行的學習方式&#xff0c;但如…

Spring-Data-ES-template工具類使用

SpringDataElasticsearch 提供了一個工具類 ElasticsearchTemplate&#xff0c;我們使用該類對象也可以對 ES 進行操作 1.操作索引 首先注入操作ES所需要的工具類(ElasticsearchTemplate)。 Autowiredprivate ElasticsearchTemplate template; 將createIndex改為false Docu…

springboot在線教育平臺-計算機畢業設計源碼68562

摘要 在數字化時代&#xff0c;隨著信息技術的飛速發展&#xff0c;在線教育已成為教育領域的重要趨勢。為了滿足廣大學習者對于靈活、高效學習方式的需求&#xff0c;基于Spring Boot的在線教育平臺應運而生。Spring Boot以其快速開發、簡便部署以及良好的可擴展性&#xff0c…

N6 word2vec文本分類

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊# 前言 前言 上周學習了訓練word2vec模型&#xff0c;這周進行相關實戰 1. 導入所需庫和設備配置 import torch import torch.nn as nn import torchvision …

【啟明智顯分享】樂鑫HMI方案4.3寸觸摸串口屏:水質檢測儀應用解決方案

水是萬物的源泉&#xff0c;了解水的酸堿度對于保障我們的健康、生產和生活環境至關重要。水質檢測儀應運而生&#xff0c;它讓我們能夠洞察水的酸堿奧秘。 水是萬物的源泉&#xff0c;了解水的酸堿度對于保障我們的健康、生產和生活環境至關重要。水質檢測儀應運而生&#xff…

springboot藥房庫存管理系統-計算機畢業設計源碼50588

目 錄 摘要 1 緒論 1.1 研究背景與意義 1.2開發現狀 1.3論文結構與章節安排 2 藥房庫存管理系統系統分析 2.1 可行性分析 2.1.1 技術可行性分析 2.1.2 經濟可行性分析 2.1.3 法律可行性分析 2.2 系統功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系統用例分…

MES ERP PM 質量管理 人機料法環測 質量控制六要素

七要素 在質量管理理論中&#xff0c;特別是在制造業中&#xff0c;分析生產過程中影響產品質量的七個關鍵因素 人機料法環測七要素是指在質量管理理論中&#xff0c;特別是在制造業中&#xff0c;分析生產過程中影響產品質量的七個關鍵因素。這七個要素包括&#xff1a; …

谷歌報告顯示:2023 年 50% 的0day漏洞利用背后都是間諜軟件供應商

人不走空 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌賦&#xff1a;斯是陋室&#xff0c;惟吾德馨 導 讀 谷歌威脅分析小組 (TAG) 和谷歌子公司 Mandiant 表示&#xff0c;他們觀察到 2023 年攻擊中利用的0day漏洞…

print(f‘ \‘)python中加了\之后有很大空行,如何去掉

在 Python 中&#xff0c;反斜杠 \ 通常用于表示字符串的續行符&#xff0c;允許你將長字符串拆分成多行。然而&#xff0c;如果你在 print 函數中使用反斜杠并在其后面加上空格或換行符&#xff0c;可能會導致意外的空行或空格。 在 print 函數中避免這些空行或空格&#xff…

垃圾百度網盤到底誰在使用

通過鏈接分享 通過鏈接分享到vx給好友查看好友在微信聊天框內打開百度網盤鏈接直接查看即使點擊查看大圖查看的圖片依舊很模糊&#xff0c;不是原圖點擊右下角去app查看在百度網盤內部查看時&#xff0c;顯示的和下載的才是原圖真的是用戶體驗極差&#xff0c;真的垃圾… 通過…

數據結構與算法的聯系(筆記)

文章目錄 1. 什么是數據結構定義舉例CRUD難道不是都一樣嗎&#xff1f; 總結 2. 什么是算法3. 數據結構與算法的聯系舉例 4. 推薦 1. 什么是數據結構 定義 數據結構(data structure)是計算機中存儲、組織數據的方式。 關鍵詞&#xff1a;① 數據 ② 存儲 ③ 組織 舉例 以手機通…

基于 Nginx + Spring Boot + Vue + JPA 的網站安全防護指南

引言 在現代互聯網時代&#xff0c;確保網站的安全性非常重要。尤其是基于前后端分離架構&#xff0c;更需要特別注意安全防護。接下來&#xff0c;帶你了解幾種常見的安全攻擊及其應對措施。 常見的安全攻擊及應對措施 1. 跨站腳本攻擊 (XSS) 攻擊描述&#xff1a; 跨站腳…

css簡單易懂的加載動畫,看不會算我輸好吧

效果展示 步驟 第一階段 先準備結構&#xff0c;并且放置12個div&#xff0c;每一個div旋轉30*n度&#xff0c; 做一個圓圈 dom <div class"modal"><div class"loading"><div class"item1"></div><div class&quo…

Spark 分布式彈性計算集(RDD)相關概念介紹

目錄 一、概述 二、RDD的核心概念 2.1 Partition 2.2 Partitioner 2.3 RDD的依賴關系 2.4 Stage 2.5 PreferredLocation 2.6 CheckPoint 三、RDD的持久化 3.1 概述 3.2 概念 3.3 RDD持久化級別 3.3.1 MEMORY_ONLY 3.3.2 MEMORY_AND_DISK 3.3.3 MEMORY_ONLY_SER …