Virtual-Machine

QEMU 作為管理程序的行為

  • August 25, 2018

根據官方 QEMU文件

當用作虛擬器時,QEMU 通過直接在主機 CPU 上執行來賓程式碼來實現接近原生的性能。

我的問題是這種行為與我們稱為管理程序的程序(例如 VirtualBox、KVM 等)有何不同?他們不是也在“主機CPU”上執行“客戶程式碼”嗎?他們還會在哪裡執行它?

更新

如果下圖(來源)是正確的,那麼事實證明 QEMU 執行應用程序(而不是像管理程序這樣的整個作業系統)但執行不同架構類型之間的轉換(例如,為 ARM 編寫的程序可以在 x86 上執行)

在此處輸入圖像描述

鑑於上述情況,一個人執行的情況是:

a) 針對特定架構的整個作業系統(例如 ARM)

b) 在具有不同架構的主機上(例如 amd64)

兩者需要共存

QEMU(執行跨架構映射)

KVM(充當硬體管理程序)

需要嗎?

您引用的段落應與文件中的上一段進行對比:

當用作機器模擬器時,QEMU 可以在另一台機器(例如您自己的 PC)上執行為一台機器(例如 ARM 板)製作的作業系統和程序。通過使用動態翻譯,它實現了非常好的性能。

該文件強調了用作仿真器的 QEMU 與用作虛擬器的 QEMU 之間的區別,後者速度較慢,因為它涉及翻譯二進制程式碼。

關於圖表,它是不完整的。QEMU 非常通用,可以單獨使用來模擬完整系統,執行客戶作業系統,或虛擬化整個系統,再次執行客戶作業系統,或者在主機作業系統中模擬或虛擬化 CPU,僅執行客戶應用程序. 它還可用於模擬設備以與 KVM 一起使用。

引用自:https://unix.stackexchange.com/questions/464769