QEMU 是一個開源且速度非常快的虛擬化軟件,專注於動態轉換以實現合理的性能,同時易於移植到新的主機CPU(處理器)。
功能強大的機器模擬器和虛擬器
它也被稱為機器仿真器,旨在模擬一個完整的系統,包括處理器及其外圍設備。仿真部分支持為單個硬件平台創建的操作系統和程序,但運行在具有不同體系結構的不同計算機之上。
另一方面,當應用程序用作虛擬器時,它可以通過在主處理器上直接運行訪客代碼來實現幾乎本機性能。它支持Xen管理程序和KVM(內核虛擬機)內核模塊。
支持眾多硬件平台的虛擬化
如果首選KVM,該應用程序將能夠虛擬化x86(32位),s390,PowerPC,ARM,m68k,MIPS,CRIS,Microblaze,MIPSEL或32,以及SPARC計算機。它可以模擬Windows XP,FreeDOS和SunOS系統,以及Virtio,USB Root Hub,網絡,輸入,視頻和存儲設備。
在VirtualBox和VMware之後,QEMU是Linux平台的第三大虛擬化軟件,但卻是開源生態系統中第一個也是最強大的虛擬化軟件。它的關鍵特性是能夠在64位或32位架構上作為本機虛擬機運行,或者作為純仿真器運行。
支持的操作系統
它是一個命令行軟件,可在基於Linux的操作系統,以及Microsoft Windows和各種UNIX風格上運行。專用下載部分提供了源存檔,允許用戶在任何Linux發行版以及OpenBSD,Solaris,AIX,MinGW和Cygwin系統中配置,編譯和安裝該程序。
底線
無論您是要測試軟件,嘗試各種操作系統,還是僅運行平台不支持的應用程序,QEMU都會為用戶提供最快的虛擬化和仿真器之一。
這個版本中有什麼新功能:
- 系統仿真:
- 不兼容的變更:
- pSeries機器的允許PCI主橋數量從256個減少到31個(可以通過手動設置MMIO窗口來配置更多)。
- 在塊圖層中刪除了對tftp://的支持,因為對於大於256KB的文件,這已經永遠被破壞了。
- 未來不兼容的變化:
- 三個選項在命令行和配置文件中使用不同的名稱。特別是:
- “acpi”配置文件部分匹配命令行選項“acpitable”;
- “boot-opts”配置文件部分匹配命令行選項“boot”;;
- “smp-opts”配置文件部分匹配命令行選項“smp”。
- -readconfig將標準化命令行選項的名稱。
- 當省略-smp的某些SMP拓撲選項(套接字,內核,線程)時,SMP拓撲的自動計算行為將來會發生變化。如果在使用SMP拓撲選項時需要在升級時保留來賓ABI,則用戶應該明確設置所有選項(套接字,核心,線程),或省略所有選項。
- Devices" allwinner-a10"," pc87312"," ssi-sd"將使用顯式屬性而不是隱式配置。這不太可能影響用戶。
- QMP命令blockdev-add仍在進行中。它不支持所有塊驅動程序,它缺少匹配的blockdev-del等等。它可能會發生不相干的變化。
- 對於x86,指定具有“+ feature / -feature”和“+ feature / -feature”的CPUID功能。和“feature = on / off”會引起警告。該組合的當前行為(“+特徵/特徵”勝過“特徵=開/關”)將被改變,以便“+特徵”與“+特徵”相同。和“特徵”將是“feature = on”的同義詞和“feature = off”分別地)。
- ARM:
- 對Aspeed董事會的改進。
- 支持AArch32模式(ARM和Thumb)中的HLT半主機陷阱。
- “virt”的ACPI表機器類型支持ITS。
- Cadence GEM設備現在通過num-priority-queues屬性支持多個優先級隊列。
- STM32F2xx板(Netduino 2)現在包括ADC和SPI設備。
- MIPS:
- 支持24KEc CPU。
- 的PowerPC:
- 支持POWER9 CPU。
- 對新“powernv”的改進平台。
- 的pSeries:
- PCI主橋可以與NUMA節點相關聯。
- 支持超過1 TiB的賓客記憶。
- 支持PCI主橋中超過64 GiB的MMIO窗口。
- 支持“-prom-env”參數
- S390:
- 支持CPU型號。
- 支持virtio-ccw修訂版2。
- 86:
- 支持與AVX-512指令集擴展相關的幾個新CPUID功能。
- 模擬的IOAPIC(由TCG和KVM使用,如果“-machine kernel_irqchip”選項具有值“off”或“split”),現在默認為版本0x20,它支持定向結束中斷消息。
- 支持intel_iommu設備中的擴展中斷模式(EIM)。 EIM需要KVM(Linux v4.7或更高版本,用於x2APIC支持)和“-machine kernel-irqchip = split”;如果啟用了中斷重映射,則會自動啟用它(“-machine kernel-irqchip = split -device intel_iommu,intremap = on”)。
- 使用Q35機器類型支持多達288個CPU。僅當啟用了IOMMU和EIM時,才支持256個或更多CPU。
- Xen的:
- 支持拔出SCSI磁盤。
- 支持與SUSE xenlinux兼容的設備拔下插頭。
- 設備模擬和分配:
- QEMU現在包含一個通用加載程序偽設備,可讓您在啟動時將多個圖像或值加載到內存中。該設備記錄在docs / generic-loader.txt。 中
- ACPI:
- 支持熱插拔NVDIMM設備(_FIT)
- 網絡設備:
- 支持基於粗粒度鎖定步進(COLO)的容錯。
- PCI /的PCIe:
- 示例EDU設備現在支持MSI。
- 已添加PCI Express指南文檔,以獲取有關拓撲和PCI與PCIe的建議。
- 為Virtio:
- 新設備vhost-vsock。
- 對優雅處理訪客錯誤的初步支持(即QEMU不應退出訪客錯誤)。
- 支持新的virtio-crypto設備。
- Xen的:
- 支持授權副本。
- 加密子系統:
- 支持更多PBKDF哈希算法。
- 支持點擊率模式。
- GUI:
- 如果“gl = on”,則SPICE可以使用純OpenGL渲染。已指定。
- 顯示器:
- 遷移:
- 支持基於粗粒度鎖定步進(COLO)的容錯。
- 網絡:
- 阻止設備和工具:
- 更多QMP命令支持node-name(塊流,塊提交,blockdev-backup,blockdev-mirror,blockdev-snapshot-delete-internal-sync,blockdev-snapshot-internal-sync,change-backing-file ,驅動器備份,驅動器鏡像,nbd-server-add)。
- BLOCK_IO_ERROR事件現在包含節點名稱。
- 更多QMP命令接受設備型號名稱(block_set_io_throttle,blockdev-change-medium,eject,x-blockdev-remove-medium,x-blockdev-insert-medium,blockdev-open-tray,blockdev-close-tray)
- DEVICE_TRAY_MOVED事件現在包含設備ID。
- 限制現在僅適用於訪客設備,而不是阻止作業或NBD服務器。
- drive-backup和blockdev-backup支持以壓縮格式寫出備份。
- LUKS格式現在可以配置PBKDF迭代計數。
- block-stream支持從後備文件流式傳輸到另一個後備文件。
- 支持複製,用於粗粒度鎖定步進(COLO)容錯。
- 新“dd” qemu-img的subcomamand。
- 可以將DMG驅動程序編譯為單獨的驅動程序,以使QEMU對libbz2的依賴性可選。
- 通過iser:// URI。 支持QEMU的iSCSI發起程序中的iSER
- NBD客戶端和服務器支持NBD_CMD_WRITE_ZEROES擴展。
- 原始圖像支持“偏移”和“大小”只訪問文件或設備的一部分的選項。
- 跟踪:
- 新跟踪後端“syslog”。
- 支持多個“-d trace:PATTERN”命令行參數。
- CLI選項:
- 用戶模式模擬
- 刪除了目標支持
- unicore32-linux-user目標為該架構實現了與主線Linux不同的系統調用ABI。對它的支持已被取消。
- 新功能:
- 添加了對更多系統調用的支持,包括preadv,pwritev,syslog。
- 多線程程序(ARM,SPARC,x86)的主要可擴展性改進。
- QEMU現在可以理解並生成fence和cmpxchg操作。
- TCG:
- 為了安全地建模架構同步指令(例如原子,LL / SC,LOCK前綴),添加了新的TCG原語。 arm,aarch64,alpha和x86目標現在將這些原語用於多線程linux用戶程序。鼓勵TCG目標維護者移植他們的前端以使用新設施。
- TCG後端現在在運行多線程程序時為前端障礙發出適當的屏障指令。但是,在弱序的架構(例如,ARM或POWER)上模擬強排序架構(例如,x86)將無法工作。
- tb_flush()最終是線程安全的,這意味著當重置轉換緩衝區時,多線程程序不太可能崩潰。
- 主cpu運行循環中的鎖爭用已經減少,提高了多線程代碼的性能
- 確定並修復了許多種族
- 許多TCG工作在此週期中合併,其中支持多線程系統仿真(MTTCG)的先決條件。雖然預計完整的MTTCG支持將在下一個開發週期中合併,但多線程Linux用戶程序已經從這項工作中受益。
版本中的新功能:
- 系統仿真:
- 不兼容的變更:
- pSeries機器的允許PCI主橋數量從256個減少到31個(可以通過手動設置MMIO窗口來配置更多)。
- 在塊圖層中刪除了對tftp://的支持,因為對於大於256KB的文件,這已經永遠被破壞了。
- 未來不兼容的變化:
- 三個選項在命令行和配置文件中使用不同的名稱。特別是:
- “acpi”配置文件部分匹配命令行選項“acpitable”;
- “boot-opts”配置文件部分匹配命令行選項“boot”;
- “smp-opts”配置文件部分匹配命令行選項“smp”。
- -readconfig將標準化命令行選項的名稱。
- 當省略-smp的某些SMP拓撲選項(套接字,內核,線程)時,SMP拓撲的自動計算行為將來會發生變化。如果在使用SMP拓撲選項時需要在升級時保留guest ABI,則用戶應該明確設置所有選項(套接字,內核,線程),或省略所有選項。
- 設備“allwinner-a10”,“pc87312”,“ssi-sd”將使用顯式屬性而非隱式配置。這不太可能影響用戶。
- QMP命令blockdev-add仍在進行中。它不支持所有塊驅動程序,它缺少匹配的blockdev-del等等。它可能會發生不相干的變化。
- 對於x86,指定同時具有“+ feature / -feature”和“feature = on / off”的CPUID功能將發出警告。此組合的當前行為(“+ feature / -feature”勝過“feature = on / off”)將被更改,以便“+ feature”和“-feature”將是“feature = on”和“feature”的同義詞=分別“關閉”。
- ARM:
- 對Aspeed董事會的改進。
- 支持AArch32模式(ARM和Thumb)中的HLT半主機陷阱。
- “virt”機器類型的ACPI表支持ITS。
- Cadence GEM設備現在通過num-priority-queues屬性支持多個優先級隊列。
- STM32F2xx板(Netduino 2)現在包括ADC和SPI設備。
- MIPS:
- 支持24KEc CPU。
- 的PowerPC:
- 支持POWER9 CPU。
- 新“powernv”平台的改進。
- 的pSeries:
- PCI主橋可以與NUMA節點相關聯。
- 支持超過1 TiB的賓客記憶。
- 支持PCI主橋中超過64 GiB的MMIO窗口。
- 支持“-prom-env”參數
- S390:
- 支持CPU型號。
- 支持virtio-ccw修訂版2。
- 86:
- 支持與AVX-512指令集擴展相關的幾個新CPUID功能。
- 模擬IOAPIC(由TCG和KVM使用,如果“-machine kernel_irqchip”選項的值為“off”或“split”)現在默認為版本0x20,它支持定向的中斷結束消息。
- 支持intel_iommu設備中的擴展中斷模式(EIM)。 EIM需要KVM(Linux v4.7或更高版本,用於x2APIC支持)和“-machine kernel-irqchip = split”;如果啟用了中斷重映射,則會自動啟用它(“-machine kernel-irqchip = split -device intel_iommu,intremap = on”)。
- 使用Q35機器類型支持多達288個CPU。僅當啟用了IOMMU和EIM時,才支持256個或更多CPU。
- Xen的:
- 支持拔出SCSI磁盤。
- 支持與SUSE xenlinux兼容的設備拔下插頭。
- 設備模擬和分配:
- QEMU現在包含一個通用加載程序偽設備,可讓您在啟動時將多個圖像或值加載到內存中。該設備記錄在docs / generic-loader.txt。 中
- ACPI:
- 支持熱插拔NVDIMM設備(_FIT)
- 網絡設備:
- 支持基於粗粒度鎖定步進(COLO)的容錯。
- PCI /的PCIe:
- 示例EDU設備現在支持MSI。
- 已添加PCI Express指南文檔,以獲取有關拓撲和PCI與PCIe的建議。
- 為Virtio:
- 新設備vhost-vsock。
- 對優雅處理訪客錯誤的初步支持(即QEMU不應退出訪客錯誤)。
- 支持新的virtio-crypto設備。
- Xen的:
- 支持授權副本。
- 加密子系統:
- 支持更多PBKDF哈希算法。
- 支持點擊率模式。
- GUI:
- 如果指定了“gl = on”,SPICE可以使用純OpenGL渲染。
- 顯示器:
- 遷移:
- 支持基於粗粒度鎖定步進(COLO)的容錯。
- 網絡:
- 阻止設備和工具:
- 更多QMP命令支持node-name(塊流,塊提交,blockdev-backup,blockdev-mirror,blockdev-snapshot-delete-internal-sync,blockdev-snapshot-internal-sync,change-backing-file ,驅動器備份,驅動器鏡像,nbd-server-add)。
- BLOCK_IO_ERROR事件現在包含節點名稱。
- 更多QMP命令接受設備型號名稱(block_set_io_throttle,blockdev-change-medium,eject,x-blockdev-remove-medium,x-blockdev-insert-medium,blockdev-open-tray,blockdev-close-tray)
- DEVICE_TRAY_MOVED事件現在包含設備ID。
- 限制現在僅適用於訪客設備,而不是阻止作業或NBD服務器。
- drive-backup和blockdev-backup支持以壓縮格式寫出備份。
- LUKS格式現在可以配置PBKDF迭代計數。
- block-stream支持從後備文件流式傳輸到另一個後備文件。
- 支持複製,用於粗粒度鎖定步進(COLO)容錯。
- qemu-img的新“dd”subcomamand。
- 可以將DMG驅動程序編譯為單獨的驅動程序,以使QEMU對libbz2的依賴性可選。
- 通過iser:// URI。 支持QEMU的iSCSI發起程序中的iSER
- NBD客戶端和服務器支持NBD_CMD_WRITE_ZEROES擴展。
- 原始圖像支持“偏移”和“大小”選項,僅可訪問文件或設備的一部分。
- 跟踪:
- 新的跟踪後端“syslog”。
- 支持多個“-d trace:PATTERN”命令行參數。
- CLI選項:
- 用戶模式模擬
- 刪除了目標支持
- unicore32-linux-user目標為該架構實現了與主線Linux不同的系統調用ABI。對它的支持已被取消。
- 新功能:
- 添加了對更多系統調用的支持,包括preadv,pwritev,syslog。
- 多線程程序(ARM,SPARC,x86)的主要可擴展性改進。
- QEMU現在可以理解並生成fence和cmpxchg操作。
- TCG:
- 為了安全地建模架構同步指令(例如原子,LL / SC,LOCK前綴),添加了新的TCG原語。 arm,aarch64,alpha和x86目標現在將這些原語用於多線程linux用戶程序。鼓勵TCG目標維護者移植他們的前端以使用新設施。
- TCG後端現在在運行多線程程序時為前端障礙發出適當的屏障指令。但是,在弱序的架構(例如,ARM或POWER)上模擬強排序架構(例如,x86)將無法工作。
- tb_flush()最終是線程安全的,這意味著當重置轉換緩衝區時,多線程程序不太可能崩潰。
- 主cpu運行循環中的鎖爭用已經減少,提高了多線程代碼的性能
- 確定並修復了許多種族
- 許多TCG工作在此週期中合併,其中支持多線程系統仿真(MTTCG)的先決條件。雖然預計完整的MTTCG支持將在下一個開發週期中合併,但多線程Linux用戶程序已經從這項工作中受益。
版本2.9.0中的新功能:
- 系統仿真:
- 不兼容的變更:
- pSeries機器的允許PCI主橋數量從256個減少到31個(可以通過手動設置MMIO窗口來配置更多)。
- 在塊圖層中刪除了對tftp://的支持,因為對於大於256KB的文件,這已經永遠被破壞了。
- 未來不兼容的變化:
- 三個選項在命令行和配置文件中使用不同的名稱。特別是:
- “acpi”配置文件部分匹配命令行選項“acpitable”;
- “boot-opts”配置文件部分匹配命令行選項“boot”;
- “smp-opts”配置文件部分匹配命令行選項“smp”。
- -readconfig將標準化命令行選項的名稱。
- 當省略-smp的某些SMP拓撲選項(套接字,內核,線程)時,SMP拓撲的自動計算行為將來會發生變化。如果在使用SMP拓撲選項時需要在升級時保留guest ABI,則用戶應該明確設置所有選項(套接字,內核,線程),或省略所有選項。
- 設備“allwinner-a10”,“pc87312”,“ssi-sd”將使用顯式屬性而非隱式配置。這不太可能影響用戶。
- QMP命令blockdev-add仍在進行中。它不支持所有塊驅動程序,它缺少匹配的blockdev-del等等。它可能會發生不相干的變化。
- 對於x86,指定同時具有“+ feature / -feature”和“feature = on / off”的CPUID功能將發出警告。此組合的當前行為(“+ feature / -feature”勝過“feature = on / off”)將被更改,以便“+ feature”和“-feature”將是“feature = on”和“feature”的同義詞=分別“關閉”。
- ARM:
- 對Aspeed董事會的改進。
- 支持AArch32模式(ARM和Thumb)中的HLT半主機陷阱。
- “virt”機器類型的ACPI表支持ITS。
- Cadence GEM設備現在通過num-priority-queues屬性支持多個優先級隊列。
- STM32F2xx板(Netduino 2)現在包括ADC和SPI設備。
- MIPS:
- 支持24KEc CPU。
- 的PowerPC:
- 支持POWER9 CPU。
- 新“powernv”平台的改進。
- 的pSeries:
- PCI主橋可以與NUMA節點相關聯。
- 支持超過1 TiB的賓客記憶。
- 支持PCI主橋中超過64 GiB的MMIO窗口。
- 支持“-prom-env”參數
- S390:
- 支持CPU型號。
- 支持virtio-ccw修訂版2。
- 86:
- 支持與AVX-512指令集擴展相關的幾個新CPUID功能。
- 模擬IOAPIC(由TCG和KVM使用,如果“-machine kernel_irqchip”選項的值為“off”或“split”)現在默認為版本0x20,它支持定向的中斷結束消息。
- 支持intel_iommu設備中的擴展中斷模式(EIM)。 EIM需要KVM(Linux v4.7或更高版本,用於x2APIC支持)和“-machine kernel-irqchip = split”;如果啟用了中斷重映射,則會自動啟用它(“-machine kernel-irqchip = split -device intel_iommu,intremap = on”)。
- 使用Q35機器類型支持多達288個CPU。僅當啟用了IOMMU和EIM時,才支持256個或更多CPU。
- Xen的:
- 支持拔出SCSI磁盤。
- 支持與SUSE xenlinux兼容的設備拔下插頭。
- 設備模擬和分配:
- QEMU現在包含一個通用加載程序偽設備,可讓您在啟動時將多個圖像或值加載到內存中。該設備記錄在docs / generic-loader.txt。 中
- ACPI:
- 支持熱插拔NVDIMM設備(_FIT)
- 網絡設備:
- 支持基於粗粒度鎖定步進(COLO)的容錯。
- PCI /的PCIe:
- 示例EDU設備現在支持MSI。
- 已添加PCI Express指南文檔,以獲取有關拓撲和PCI與PCIe的建議。
- 為Virtio:
- 新設備vhost-vsock。
- 對優雅處理訪客錯誤的初步支持(即QEMU不應退出訪客錯誤)。
- 支持新的virtio-crypto設備。
- Xen的:
- 支持授權副本。
- 加密子系統:
- 支持更多PBKDF哈希算法。
- 支持點擊率模式。
- GUI:
- 如果指定了“gl = on”,SPICE可以使用純OpenGL渲染。
- 顯示器:
- 遷移:
- 支持基於粗粒度鎖定步進(COLO)的容錯。
- 網絡:
- 阻止設備和工具:
- 更多QMP命令支持node-name(塊流,塊提交,blockdev-backup,blockdev-mirror,blockdev-snapshot-delete-internal-sync,blockdev-snapshot-internal-sync,change-backing-file ,驅動器備份,驅動器鏡像,nbd-server-add)。
- BLOCK_IO_ERROR事件現在包含節點名稱。
- 更多QMP命令接受設備型號名稱(block_set_io_throttle,blockdev-change-medium,eject,x-blockdev-remove-medium,x-blockdev-insert-medium,blockdev-open-tray,blockdev-close-tray)
- DEVICE_TRAY_MOVED事件現在包含設備ID。
- 限制現在僅適用於訪客設備,而不是阻止作業或NBD服務器。
- drive-backup和blockdev-backup支持以壓縮格式寫出備份。
- LUKS格式現在可以配置PBKDF迭代計數。
- block-stream支持從後備文件流式傳輸到另一個後備文件。
- 支持複製,用於粗粒度鎖定步進(COLO)容錯。
- qemu-img的新“dd”subcomamand。
- 可以將DMG驅動程序編譯為單獨的驅動程序,以使QEMU對libbz2的依賴性可選。
- 通過iser:// URI。 支持QEMU的iSCSI發起程序中的iSER
- NBD客戶端和服務器支持NBD_CMD_WRITE_ZEROES擴展。
- 原始圖像支持“偏移”和“大小”選項,僅可訪問文件或設備的一部分。
- 跟踪:
- 新的跟踪後端“syslog”。
- 支持多個“-d trace:PATTERN”命令行參數。
- CLI選項:
- 用戶模式模擬
- 刪除了目標支持
- unicore32-linux-user目標為該架構實現了與主線Linux不同的系統調用ABI。對它的支持已被取消。
- 新功能:
- 添加了對更多系統調用的支持,包括preadv,pwritev,syslog。
- 多線程程序(ARM,SPARC,x86)的主要可擴展性改進。
- QEMU現在可以理解並生成fence和cmpxchg操作。
- TCG:
- 為了安全地建模架構同步指令(例如原子,LL / SC,LOCK前綴),添加了新的TCG原語。 arm,aarch64,alpha和x86目標現在將這些原語用於多線程linux用戶程序。鼓勵TCG目標維護者移植他們的前端以使用新設施。
- TCG後端現在在運行多線程程序時為前端障礙發出適當的屏障指令。但是,在弱序的架構(例如,ARM或POWER)上模擬強排序架構(例如,x86)將無法工作。
- tb_flush()最終是線程安全的,這意味著當重置轉換緩衝區時,多線程程序不太可能崩潰。
- 主cpu運行循環中的鎖爭用已經減少,提高了多線程代碼的性能
- 確定並修復了許多種族
- 許多TCG工作在此週期中合併,其中支持多線程系統仿真(MTTCG)的先決條件。雖然預計完整的MTTCG支持將在下一個開發週期中合併,但多線程Linux用戶程序已經從這項工作中受益。
評論沒有發現