Virtual-Machine
QEMU 作為管理程序的行為
根據官方 QEMU文件:
當用作虛擬器時,QEMU 通過直接在主機 CPU 上執行來賓程式碼來實現接近原生的性能。
我的問題是這種行為與我們稱為管理程序的程序(例如 VirtualBox、KVM 等)有何不同?他們不是也在“主機CPU”上執行“客戶程式碼”嗎?他們還會在哪裡執行它?
更新:
如果下圖(來源)是正確的,那麼事實證明 QEMU 執行應用程序(而不是像管理程序這樣的整個作業系統)但執行不同架構類型之間的轉換(例如,為 ARM 編寫的程序可以在 x86 上執行)
鑑於上述情況,一個人執行的情況是:
a) 針對特定架構的整個作業系統(例如 ARM)
b) 在具有不同架構的主機上(例如 amd64)
兩者需要共存
QEMU(執行跨架構映射)
和
KVM(充當硬體管理程序)
需要嗎?
您引用的段落應與文件中的上一段進行對比:
當用作機器模擬器時,QEMU 可以在另一台機器(例如您自己的 PC)上執行為一台機器(例如 ARM 板)製作的作業系統和程序。通過使用動態翻譯,它實現了非常好的性能。
該文件強調了用作仿真器的 QEMU 與用作虛擬器的 QEMU 之間的區別,後者速度較慢,因為它涉及翻譯二進制程式碼。
關於圖表,它是不完整的。QEMU 非常通用,可以單獨使用來模擬完整系統,執行客戶作業系統,或虛擬化整個系統,再次執行客戶作業系統,或者在主機作業系統中模擬或虛擬化 CPU,僅執行客戶應用程序. 它還可用於模擬設備以與 KVM 一起使用。