QEMU可以被當作模擬器,也可以被當作虛擬機。當QEMU被當作模擬器時,我們可以在一臺機器上通過模擬設備,運行針對不同于本機上CPU的程序或者操作系統(tǒng)。(使用" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網站運營 > QEMU虛擬機、源碼 【虛擬化與云原生】

QEMU虛擬機、源碼 【虛擬化與云原生】

時間:2023-06-29 17:24:01 | 來源:網站運營

時間:2023-06-29 17:24:01 來源:網站運營

QEMU虛擬機、源碼 【虛擬化與云原生】:

QEMU 概述

QEMU的幾個特點:

  1. QEMU可以被當作模擬器,也可以被當作虛擬機。
  2. 當QEMU被當作模擬器時,我們可以在一臺機器上通過模擬設備,運行針對不同于本機上CPU的程序或者操作系統(tǒng)。(使用了動態(tài)翻譯技術,在我們的虛擬化環(huán)境中并沒有使用,因此不展開敘述)
  3. 當QEMU被當作虛擬機使用時,QEMU必須基于Xen Hypervisor或者KVM內核模塊才能支持虛擬化。在這種條件下QEMU虛擬機可以通過直接在本機CPU上運行客戶機代碼獲得接近本機的性能。

QEMU與KVM的關系

QEMU與KVM的關系如下:

QEMU和KVM如何分工協(xié)作呢?

我們用一張圖說明:

外設的模擬一般不會由KVM負責,只有對性能要求較高的虛擬設備,如虛擬中斷控制器和虛擬時鐘,是由KVM模擬的,這樣可以大量減少處理器的模式轉換的開銷。

QEMU的代碼結構

線程事件驅動模型

系結構正如上圖展示的——每個vCPU都是一個線程,這些vCPU線程可以運行客戶機的代碼,以及虛擬中斷控制器、虛擬時鐘的模擬。

而Main loop主線程則是Event-driver的,通過輪詢文件描述符,調用對應的回調函數(shù),處理由Monitor發(fā)出的命令、Timers超時,并且實現(xiàn)VNC、完成IO等功能。

QEMU事件驅動的代碼主要可以查看include/qemu/main-loop.h,以及相關的實現(xiàn)代碼。

QEMU設備模擬

QEMU虛擬機管理命令

QEMU中可以使用hmp command對虛擬機進行管理,在虛擬機環(huán)境中同時按住ctrl、Alt、2就可以進入QEMU的命令模式,通過輸入命令,就可以進行虛擬機的管理。

比如savevm命令可以把虛擬機的當前狀態(tài)保存到虛擬機的磁盤中,這些命令的實現(xiàn)函數(shù)都有一個統(tǒng)一的命名方式:hmp_xxx,比如hmp_savevm就是savevm的實現(xiàn)函數(shù)的起始位置,

hmp_migrate就是migrate的實現(xiàn)函數(shù)的起始位置,因此對于QEMU中的每一條命令都可以很快找到相關的實現(xiàn)函數(shù)。

塊操作

QEMU源碼編譯

QEMU的編譯過程并不復雜,首先進入QEMU的代碼目錄后,首先運行./configure –help,查看qemu支持的特性。
選擇相關的特性進行編譯,由于我們使用的X86_64的平臺,我們使用下列命令配置:

./configure –enable-debug –enable-kvm –target-list=x86_64-softmmu

上述命令會生成Makefile文件,然后直接make就可以了,為了加速編譯可以使用多線程:make -j number。




./configure命令運行時會檢查物理機的環(huán)境,檢查需要的相關的庫是否已經安裝在宿主機上。

因此可能由于相關庫沒有安裝而中斷,其中一些庫包括:

pkg-config、zlib1g-dev、libglib2.0-dev、libpixman-1-dev、make等,庫都可以通過ubuntu的包管理命令apt-get install直接安裝。

如果需要把QEMU安裝到系統(tǒng)中可以使用make install命令。

后面我會單獨介紹 QEMU+KVM《純命令行方式安裝管理虛擬機》記錄的文章,如感興趣可查閱。

閱讀代碼的工具

閱讀代碼的工具Source Insight 4.0,軟件資料鏈接百度網盤地址:

鏈接:https://pan.baidu.com/s/1iYhR31FuJTLP1BeXxjKYOQ
提取碼:5iqa




此文件夾中有一些常用工具,大家自行下載。

安裝方法簡述:

下載 “SI4安裝及PJ文件.zip” 和 “sourceinssight.rar” 兩個文件,具體安裝方法參考第一個文件夾中說明。




qemu 源碼到官網上自行下載。
https://www.qemu.org/download/

此篇只是簡單介紹 qemu 相關特征,以及作為虛擬機使用時,與kvm之間關系;此篇內容相對簡單,但是對與初次接觸 虛擬化的同學來說非常重要。此篇可一窺全貌,后面在接觸virtio、virtio-net、vhost-net、kvm等知識時,不會迷路。筆者親身體驗過迷路的感受 ^=^ ,過程有點疼苦 。

虛擬化相關資料匯總

References

KVM

QEMU

? QEMU website: http://www.qemu.org/

? QEMU WIKI: https://wiki.qemu.org/Main_Page




Device Trees

devicetree.org website: http://devicetree.org

DTC, the device tree compiler is available at: The Device Tree Compiler .

DTC also includes a library called libfdt which can be used by software to parse device trees.




Virtio-- a framework for doing virtual I/O using KVM/QEMU

? http://www.ibm.com/developerworks/linux/library/l-virtio/

?http://ozlabs.org/~rusty/virtio-spec/virtio-paper.pdf

?http://docs.oasis-open.org/virtio/virtio/v1.0/csprd01/virtio-v1.0-csprd01.pdf




Virtual Networking with QEMU

? http://wiki.qemu.org/Documentation/Networking
? http://www.linux-kvm.org/page/Networking

轉載自::https://blog.csdn.net/weixin_38387929/article/details/120121636



Dpdk/網絡協(xié)議棧/vpp/OvS/DDos/NFV/虛擬化/高性能專家-學習視頻教程

學習資料、教學視頻和學習路線圖有需要的可以自行添加學習交流群973961276

關鍵詞:虛擬

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉