QEMU支持3種運行模式 -- 理解


虛擬機的運行軟件是QEMU。QEMU官方(www.qemu-project.org)對自己的定義為“QEMU is a generic and open source machine emulator and virtualizer.”名稱取自“Quick EMUlator”。

QEMU支持3種運行模式:

        Full-system emulation:Run operating systems for any machine, on any supported architecture

        User-mode emulation:Run programs for another Linux/BSD target, on any supported architecture

        Virtualization:Run KVM and Xen virtual machines with near native performance

用戶模式仿真允許將 為一個 CPU arch A(arm)構建的 可執行程序(用戶層程序,比如linux os 上面的一個elf 格式程序)在另一個 CPU arch B(x86) 上執行,前提是這兩個CPU arch A and B 上面都運行的是同一個OS (比如linux),需要這個arch (x86) + OS (linux) 上面運行的 qemu 具有翻譯另外一個arch 的指令(機器碼)的能力。因為用戶層可執行程序僅僅是對OS的調用,所以通過qemu 可以將 arm 指令描述的對OS 的調用翻譯為對x86 指令描述的對OS的調用調用即可。

系統模式仿真允許對整個系統進行仿真,包括處理器和配套的外圍設備;可以用x86 linux 上面運行的qemu 模擬一個arm開發板,這是就必須使用 系統模式仿真。虛擬化和用戶模式仿真都達不到這種級別的模擬。虛擬化無法實現不同arch的模擬,用戶模式模擬器無法實現裸板 級別的模擬。

虛擬化運行模式是指通過底層的硬件支持(Intel-VT,AMD-V等虛擬化技術)和Xen或者KVM等系統級虛擬化技術相結合,高效運行虛擬化系統。一個arch (x86)的cpu + 外設,虛擬為多台相同arch + 不同外設的虛擬機器。

模擬器(emulation)和虛擬化(virtulization)的區別

模擬器是emulator,通常是為了模擬不同指令集、不同體系架構的 CPU,所以多數情況要對微指令進行解釋執行,效率相對與虛擬化慢很多;

虛擬化技術 virtualization,基本都是去虛擬出來另外一套相同指令集相同架構的硬件平台,因此在做好保護的前提下,很多時候可以直接利用 CPU 去執行目標指令。雖然還是模擬物理 CPU 而不借助於 Host OS 的功能,少了一層指令集轉換,運行速度會提高不少。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM