關於KVM一些概念

2021-08-04 11:48:18 字數 981 閱讀 6457

kvm(kernel virtual machine核心虛擬機器)是乙個linux核心模組,可以用modprobe去載入kvm模組。載入模組後,才能進一步通過其他工具建立虛擬機器。但僅有kvm模組是不行的,因為使用者無法直接控制核心模組去作事情,所以還要有乙個使用者空間的工具才行。這個使用者空間的工具,開發者選擇了已經成型的qemu。

qemu也是乙個開源的虛擬化軟體,它是一套虛擬機器管理系統,只要執行的目標體系結構是相同的主機架構,那麼qemu就可以使用kvm。它的特點是可虛擬不同的cpu。比如說在x86的cpu上可虛擬乙個power的cpu,並可利用它編譯出可執行在power上的程式。也就是說qemu自身主要作為模擬器來用。

當一起工作的時候,kvm管理cpu和mem的訪問,qemu**硬體資源(硬碟,音效卡,usb,等等)當qemu單獨執行時,qemu同時模擬cpu和硬體。

kvm專案保持qemu的乙個分支叫的qemu-kvm。由於kvm是在qemu的基礎上開發的,kvm 使用了 qemu 的基於 x86 的部分,並稍加改造,形成可控制 kvm 核心模組的使用者空間工具qemu-kvm。它可以像普通qemu一樣分配ram、載入**。不同於重新編譯或者呼叫callingkqemu,它建立了乙個執行緒(這個很重要)。這個執行緒呼叫kvm核心模組去切換到使用者模式,並且去執行vm**。當遇到乙個特權指令,它從新切換會kvm核心模組,該核心模組在需要的時候,像qemu執行緒發訊號去處理大部分的硬體**。它提供了最佳的效能和kvm使用qemu在x86上的某些附加功能。

libvirt,virt-manager,virsh。由於qemu-kvm的效率及通用性問題,有組織開發了libvirt用於虛擬機器的管理,帶有一套基於文字的虛擬機器的管理工具virsh,以及一套使用者渴望的圖形介面管理工具virt-manager。libvirt是用python語言寫的通用的api,不僅可以管理kvm,也可用於管理xen。

kqemu是qemu的核心加速模組,

用於加速qemu,

不是kvm。wiki裡qemu部分有寫,和kvm是分為兩部分的,是兩種不同的核心加速模組。

關於uboot一些概念

u boot的環境變數值得注意的有兩個 bootcmd和bootargs。bootcm bootargs bootargs是環境變數中的重中之重,甚至可以說整個環境變數都是圍繞著bootargs來設定的。bootargs的種類非常非常的多,我們平常只是使用了幾種而已.bootargs非常的靈活,核心...

關於Socket的一些概念

對於 tcp ip 我們還知道 tcp和 udp,前者可以保證資料的正確和可靠性,後者則允許資料丟失。最後,我們還知道,在建立連線前,必須知道對方的 ip位址和埠號。除此,普通的程式設計師就不會知道太多了,很多時候這些知識已經夠用了。最多,寫服務程式的時候,會使用多執行緒來處理併發訪問。我們還知道如...

關於QT的一些概念

之前學過qt,只是簡單的學學,開始時在windows下練習的,最後是在天嵌s3c2440裡跑的,不過天嵌給的軟體是qtopia 當時沒理這有什麼區別,反正在師兄的幫助下,成功的將qt4.7安裝到ubantu上並且成功執行到arm板上了,現在重新看看qt,發現有必要了解一下這些概念,到時再發一些關於q...