91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文帶你深入了解KVM的基本原理

Linux閱碼場(chǎng) ? 來(lái)源:內(nèi)核工匠 ? 作者: Nick.Hu ? 2021-10-20 09:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、 概述

KVM的全稱(chēng)是Kernel-based Virtual Machine,其是一種基于linux內(nèi)核的采用硬件輔助虛擬化技術(shù)的全虛擬化解決方案。它最初由以色列的初創(chuàng)公司Qumranet開(kāi)發(fā),并在linux-2.6.20中開(kāi)始被納入在linux內(nèi)核,成為內(nèi)核源碼的一部分。KVM自誕生之初就定位于基于硬件輔助的虛擬化來(lái)提供全虛擬化的支持,其以?xún)?nèi)核模塊的形式被加載。加載KVM模塊的linux內(nèi)核相當(dāng)于變成了一個(gè)Hypervisor,同時(shí)依賴(lài)linux內(nèi)核提供的各種功能來(lái)實(shí)現(xiàn)硬件管理,擁有極高的兼容性及可擴(kuò)展性。

上面提到KVM是作為一個(gè)內(nèi)核模塊出現(xiàn)的,所以它還得借助用戶(hù)空間的程序來(lái)和用戶(hù)進(jìn)行交互,這就不得不提到大名鼎鼎的QEMU了。QEMU是一套由法布里斯·貝拉(Fabrice Bellard)所編寫(xiě)的以GPL許可證分發(fā)源碼的模擬處理器,在GNU/Linux平臺(tái)上使用廣泛。

其本身是一個(gè)純軟件的支持CPU虛擬化、內(nèi)存虛擬化及I/O虛擬化等功能的用戶(hù)空間程序。其借助KVM提供的虛擬化支持可以將CPU、內(nèi)存等虛擬化工作交由KVM處理,自己則處理大多數(shù)I/O虛擬化的功能,可以實(shí)現(xiàn)極高的虛擬化效率。KVM及QEMU配合使用的整體接口如圖1所示。

QEMU盡管非常的強(qiáng)大,但也正是應(yīng)為它的強(qiáng)大導(dǎo)致其對(duì)初學(xué)者非常的不友好。這里推薦大家剛開(kāi)始學(xué)習(xí)KVM時(shí)可以先學(xué)習(xí)kvm tool,這是一個(gè)基于C語(yǔ)言開(kāi)發(fā)的KVM虛擬化工具,其代碼非常精簡(jiǎn)易懂,同時(shí)也可以支持完整的linux虛擬化,非常適合初學(xué)者入門(mén)使用。其項(xiàng)目地址為https://github.com/kvmtool/kvmtool。

二、 ARM64虛擬化支持

arm最早在armv7-a引入硬件虛擬化支持。到了armv8中,arm拋棄了armv7時(shí)代的特權(quán)級(jí),引入了全新的Exception Level(EL),其如圖2所示(armv8.4-A引入了對(duì)安全世界虛擬化的支持)。

18fed650-3102-11ec-82a8-dac502259ad0.png

圖2

其中4個(gè)異常等級(jí)中的EL2留給Hypervisor用于各種虛擬化功能的訪(fǎng)問(wèn)及配置,如:stage 2轉(zhuǎn)換、EL1/EL0指令和寄存器訪(fǎng)問(wèn)、注入虛擬異常等。

三、 CPU虛擬化

CPU被稱(chēng)為計(jì)算機(jī)的大腦,是計(jì)算機(jī)系統(tǒng)中最核心的模塊。在沒(méi)有CPU硬件虛擬化技術(shù)之前都是使用二進(jìn)制指令動(dòng)態(tài)翻譯技術(shù)來(lái)實(shí)現(xiàn)對(duì)客戶(hù)機(jī)操作系統(tǒng)中執(zhí)行的執(zhí)行(例如qemu的軟件虛擬化),其不僅實(shí)現(xiàn)復(fù)雜而且效率非常低下。因此硬件虛擬化技術(shù)應(yīng)運(yùn)而生,為KVM的誕生創(chuàng)造了必要的條件。

有時(shí)Hypervisor需要模擬一些操作,例如VM里運(yùn)行的軟件試圖配置處理器的一些屬性,如電源管理或是緩存一致性時(shí)。通常你不會(huì)允許VM直接配置這些屬性,因?yàn)檫@會(huì)打破隔離性,從而影響其他VMs。這就需要通過(guò)以陷入的方式產(chǎn)生異常,在異常處理程序中做相應(yīng)的模擬。armv8包含一些陷入控制來(lái)幫助實(shí)現(xiàn)陷入(trapping) – 模擬(emulating)。如果對(duì)相應(yīng)操作配置了陷入,則這種操作發(fā)生時(shí)會(huì)陷入到更高的異常級(jí)別。

例如,正常我們?cè)趫?zhí)行WFI指令時(shí)會(huì)使CPU進(jìn)入一個(gè)低功耗的狀態(tài),但是對(duì)于HOST OS來(lái)說(shuō),如果讓CPU真正進(jìn)入低功耗狀態(tài),顯然會(huì)影響其他VM的運(yùn)行。如果我們配置了HCR_EL2.TWI==1時(shí),那么Guest OS在執(zhí)行WFI時(shí)就會(huì)觸發(fā)EL2的異常,然后陷入Hypervisor,那么此時(shí)Hypervisor就可以將對(duì)應(yīng)VCPU所處的線(xiàn)程調(diào)出出去,將CPU讓給其他的VCPU線(xiàn)程使用。

1929c39c-3102-11ec-82a8-dac502259ad0.png

圖3

四、 內(nèi)存虛擬化

內(nèi)存虛擬化的目的是給虛擬客戶(hù)機(jī)操作系統(tǒng)提供一個(gè)從0開(kāi)始的連續(xù)的地址空間,同時(shí)在多個(gè)客戶(hù)機(jī)之間實(shí)現(xiàn)隔離與調(diào)度。

arm主要通過(guò)Stage 2轉(zhuǎn)換來(lái)提供對(duì)內(nèi)存虛擬化的支持,其允許Hypervisor控制虛擬機(jī)的內(nèi)存視圖,而在這之前則是使用及其復(fù)雜的影子頁(yè)表技術(shù)來(lái)實(shí)現(xiàn)。Stage 2轉(zhuǎn)換可以控制虛擬機(jī)是否可以訪(fǎng)問(wèn)特定的某一塊物理內(nèi)存,以及該內(nèi)存塊出現(xiàn)在虛擬機(jī)內(nèi)存空間的位置。這種能力對(duì)于虛擬機(jī)的隔離和沙箱功能來(lái)說(shuō)至關(guān)重要。

這使得虛擬機(jī)只能看到分配給它自己的物理內(nèi)存。為了支持Stage 2 轉(zhuǎn)換, 需要增加一個(gè)頁(yè)表,我們稱(chēng)之為Stage 2頁(yè)表。操作系統(tǒng)控制的頁(yè)表轉(zhuǎn)換稱(chēng)之為stage 1轉(zhuǎn)換,負(fù)責(zé)將虛擬機(jī)視角的虛擬地址轉(zhuǎn)換為虛擬機(jī)視角的物理地址。而stage 2頁(yè)表由Hypervisor控制,負(fù)責(zé)將虛擬機(jī)視角的物理地址轉(zhuǎn)換為真實(shí)的物理地址。虛擬機(jī)視角的物理地址在A(yíng)rmv8中有特定的詞描述,叫中間物理地址(intermediate Physical Address, IPA)。

stage 2轉(zhuǎn)換表的格式和stage 1的類(lèi)似,但也有些屬性的處理不太一樣,例如,判斷內(nèi)存類(lèi)型 是normal 還是 device的信息被直接編碼進(jìn)了表里,而不是通過(guò)查詢(xún)MAIR_ELx寄存器。

19524754-3102-11ec-82a8-dac502259ad0.png

圖4

五、 I/O虛擬化

I/O設(shè)備作為一種外部設(shè)備,其虛擬化的實(shí)現(xiàn)相較于前面的CPU虛擬化及內(nèi)存虛擬化有些不同,其目前主要有以下四種虛擬化方案。

1、 設(shè)備模擬:

在虛擬機(jī)監(jiān)控器中模擬具體的I/O設(shè)備的特性,例如qemu。在KVM和qemu的組合中通過(guò)Hypervisor捕獲Guest OS的I/O請(qǐng)求交給用戶(hù)空間的qemu進(jìn)行模擬,然后將結(jié)果再通過(guò)Hypervisor傳遞給Guest OS。這種方式能夠提供非常好的兼容性但是性能太差,同時(shí)模擬設(shè)備的功能特性支持不夠多。

2、 前后端驅(qū)動(dòng)接口

在Hypervisor和Guest OS之間定義一種權(quán)限的適用于虛擬機(jī)的交互接口,比如virtio技術(shù)。這個(gè)方案相較于設(shè)備模擬在性能上有所提高,但是兼容性較差,而且在高I/O負(fù)載場(chǎng)景,后端驅(qū)動(dòng)的CPU占用較高。

3、 設(shè)備直接分配

將一個(gè)物理設(shè)備直接分配給Guest OS使用。此方式的性能顯而易見(jiàn),要比上面兩種好很多,但是需要硬件設(shè)備支持,且無(wú)法共享和動(dòng)態(tài)遷移。

4、 設(shè)備共享分配

此方式是設(shè)備直接分配的一個(gè)擴(kuò)展,其主要就是讓一個(gè)物理設(shè)備可以支持多個(gè)虛擬機(jī)功能接口,將不同的接口地址獨(dú)立分配給不同的Guest OS使用。如SR-IOV協(xié)議。

參考文獻(xiàn):

1、《KVM實(shí)戰(zhàn):原理、進(jìn)階與性能調(diào)優(yōu)》

2、https://segmentfault.com/a/1190000022797518

3、https://www.cnblogs.com/LoyenWang/

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    135

    文章

    9553

    瀏覽量

    391859
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11277

    瀏覽量

    224958
  • KVM
    KVM
    +關(guān)注

    關(guān)注

    0

    文章

    205

    瀏覽量

    13663
  • 驅(qū)動(dòng)接口
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    2781

原文標(biāo)題:KVM原理簡(jiǎn)介

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    深入了解 LM4881 雙聲道 200mW 耳機(jī)放大器:特性、參數(shù)與應(yīng)用設(shè)計(jì)

    深入了解 LM4881 雙聲道 200mW 耳機(jī)放大器:特性、參數(shù)與應(yīng)用設(shè)計(jì) 在電子設(shè)備日新月異的今天,音頻放大器作為眾多設(shè)備中不可或缺的部分,其性能和特點(diǎn)對(duì)整個(gè)系統(tǒng)的音效體驗(yàn)起著至關(guān)重要的作用
    的頭像 發(fā)表于 02-04 16:50 ?591次閱讀

    深入了解 S32K312EVB-Q172 開(kāi)發(fā)板:硬件特性與使用指南

    深入了解 S32K312EVB-Q172 開(kāi)發(fā)板:硬件特性與使用指南 在嵌入式開(kāi)發(fā)領(lǐng)域,款優(yōu)秀的開(kāi)發(fā)板能夠極大地提升開(kāi)發(fā)效率和項(xiàng)目的成功率。NXP 的 S32K312EVB-Q172 開(kāi)發(fā)板就是
    的頭像 發(fā)表于 12-25 09:30 ?268次閱讀

    深入了解SRF7038A系列共模扼流圈

    深入了解SRF7038A系列共模扼流圈 在電子設(shè)計(jì)的領(lǐng)域中,共模扼流圈是解決電磁干擾(EMI)問(wèn)題的關(guān)鍵元件之。今天,我們就來(lái)詳細(xì)探討下BOURNS的SRF7038A系列共模扼流圈,看看它有
    的頭像 發(fā)表于 12-22 14:10 ?379次閱讀

    搞清 BLE 藍(lán)牙 UUID

    帶你搞清楚藍(lán)牙 UUID ...... 矜辰所致
    的頭像 發(fā)表于 12-18 11:23 ?4251次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>搞清 BLE 藍(lán)牙 UUID

    帶你了解聚焦離子束(FIB)加工技術(shù)

    與樣品表面的相互作用,實(shí)現(xiàn)對(duì)材料的局部刻蝕、沉積以及改性,從而在納米加工領(lǐng)域展現(xiàn)出重要價(jià)值。FIB技術(shù)的基本原理FIB加工技術(shù)的基礎(chǔ)是離子束與物質(zhì)之間的相互作用。該
    的頭像 發(fā)表于 11-10 11:11 ?446次閱讀
    <b class='flag-5'>帶你</b><b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>聚焦離子束(FIB)加工技術(shù)

    簡(jiǎn)述沖擊電壓發(fā)生器的基本原理?

    沖擊電壓發(fā)生器的基本原理是 “電容并聯(lián)充電、串聯(lián)放電”,核心流程分三步: 先通過(guò)整流電路,將工頻交流電轉(zhuǎn)換為直流電,給多組電容器并聯(lián)充電,儲(chǔ)存足夠電能并達(dá)到設(shè)定電壓; 當(dāng)充電完成后,觸發(fā)高壓開(kāi)關(guān)使
    發(fā)表于 10-17 14:10

    帶你了解海凌科毫米波雷達(dá)

    什么是毫米波雷達(dá)?毫米波雷達(dá)有什么特點(diǎn)?毫米波雷達(dá)有什么作用?海凌科有哪些系列毫米波雷達(dá)?帶你了解!毫米波的定義毫米波是指頻率在30GHz至300GHz之間、波長(zhǎng)為1~10毫米的電
    的頭像 發(fā)表于 08-11 12:04 ?1823次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>了解</b>海凌科毫米波雷達(dá)

    單相調(diào)壓器和三相調(diào)壓器的基本原理與主要結(jié)構(gòu)

    調(diào)壓器在電力系統(tǒng)中扮演著至關(guān)重要的角色,無(wú)論是單相調(diào)壓器還是三相調(diào)壓器,它們都在各自的應(yīng)用場(chǎng)景中發(fā)揮著調(diào)節(jié)電壓、穩(wěn)定電力、保護(hù)設(shè)備的作用,了解這兩種調(diào)壓器的基本原理與主要結(jié)構(gòu),對(duì)于電力系統(tǒng)的設(shè)計(jì)和運(yùn)維具有重要意義。本文將和大家
    的頭像 發(fā)表于 08-05 15:27 ?1181次閱讀

    如何為不同的電機(jī)選擇合適的驅(qū)動(dòng)芯片?納芯微帶你深入了解!

    在現(xiàn)代生活中,電機(jī)廣泛使用在家電產(chǎn)品、汽車(chē)電子、工業(yè)控制等眾多應(yīng)用領(lǐng)域,每個(gè)電機(jī)的運(yùn)轉(zhuǎn)都離不開(kāi)合適的驅(qū)動(dòng)芯片。納芯微提供豐富的電機(jī)驅(qū)動(dòng)產(chǎn)品選擇,本期技術(shù)分享將重點(diǎn)介紹常見(jiàn)電機(jī)種類(lèi)與感性負(fù)載應(yīng)用,幫助大家更深入了解如何選擇合適的電機(jī)驅(qū)動(dòng)芯片。
    的頭像 發(fā)表于 07-17 14:00 ?1611次閱讀
    如何為不同的電機(jī)選擇合適的驅(qū)動(dòng)芯片?納芯微<b class='flag-5'>帶你</b><b class='flag-5'>深入了解</b>!

    帶你了解電源測(cè)試系統(tǒng)的功能!

    在當(dāng)今電子與電力技術(shù)飛速發(fā)展的時(shí)代,各類(lèi)電子設(shè)備、電力系統(tǒng)以及新能源相關(guān)產(chǎn)品的研發(fā)、生產(chǎn)和維護(hù)過(guò)程中,電源測(cè)試系統(tǒng)扮演著至關(guān)重要的角色。本文將帶你了解源儀電子的電源測(cè)試系統(tǒng)的功能。
    的頭像 發(fā)表于 07-02 09:10 ?968次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>了解</b>電源測(cè)試系統(tǒng)的功能!

    了解信號(hào)完整性的基本原理

    ,設(shè)計(jì)人員必須注意電路板布局并使用適當(dāng)?shù)膶?dǎo)線(xiàn)和連接器,從而最大限度地減少反射、噪聲和串?dāng)_。此外,還必須了解傳輸線(xiàn)、阻抗、回波損耗和共振等基本原理。 本文將介紹討論信號(hào)完整性時(shí)使用的些術(shù)語(yǔ),以及設(shè)計(jì)人員需要考慮的問(wèn)題,然后介紹
    的頭像 發(fā)表于 05-25 11:54 ?1357次閱讀
    <b class='flag-5'>了解</b>信號(hào)完整性的<b class='flag-5'>基本原理</b>

    帶你深入剖析RedCap技術(shù)

    隨著3GPPR17RedCap標(biāo)準(zhǔn)的凍結(jié),業(yè)界對(duì)RedCap技術(shù)的關(guān)注持續(xù)升溫。要將RedCap有效引入并服務(wù)于各行各業(yè),亟需明確其在5G承載體系中的能力定位,并深入分析當(dāng)前5G行業(yè)發(fā)展所面臨的痛點(diǎn)
    的頭像 發(fā)表于 05-14 10:53 ?3821次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>深入</b>剖析RedCap技術(shù)

    STM32定時(shí)器基本原理及常見(jiàn)問(wèn)題之培訓(xùn)資料

    STM32 定時(shí)器基本原理及常見(jiàn)問(wèn)題之培訓(xùn)資料v3.10 時(shí)基單元、捕捉比較功能、主從觸發(fā)與級(jí)聯(lián)、案例分享 培訓(xùn)內(nèi)容:
    發(fā)表于 04-08 16:26

    六天專(zhuān)修課程!電子電路基本原理66課

    介紹。應(yīng)用技術(shù)部分分別給出了模擬傳感器信號(hào)處理以及數(shù)字信號(hào)處理、數(shù)字無(wú)線(xiàn)通信等綜合應(yīng)用技術(shù),以提高相應(yīng)的綜合技術(shù)能力。全文以圖解為基礎(chǔ),直觀(guān)易懂、內(nèi)容全面、講解深入、理論與實(shí)際聯(lián)系緊密,既有基本原理的介紹,同時(shí)也具有良好的實(shí)用性和解決實(shí)際問(wèn)題的針對(duì)性。
    發(fā)表于 04-08 16:21

    無(wú)刷電機(jī)電調(diào)的基本原理

    有關(guān)本文所談?wù)摰臒o(wú)刷電機(jī)內(nèi)容, 只涉及低速飛行類(lèi)航模電調(diào)的小功率無(wú)傳感器應(yīng)用,講解的理論比較淺顯易懂 ,旨在讓初學(xué)者能夠?qū)o(wú)刷電機(jī)有個(gè)比較快的認(rèn) 識(shí),掌握基本原理和控制方法,可以在短時(shí)間內(nèi)達(dá)到
    發(fā)表于 03-17 19:57