QEMU 7.2 模拟器发布

QEMU 7.2项目的发布已经发布。 作为一个模拟器,QEMU 允许您在具有完全不同架构的系统上运行为一个硬件平台编译的程序,例如,在兼容 x86 的 PC 上运行 ARM 应用程序。 在QEMU的虚拟化模式下,由于直接在CPU上执行指令并使用Xen虚拟机管理程序或KVM模块,因此在隔离环境中代码执行的性能接近于硬件系统的性能。

该项目最初由 Fabrice Bellard 创建,旨在允许为 x86 平台构建的 Linux 可执行文件在非 x86 架构上运行。 经过多年的发展,已经为14种硬件架构增加了完整的仿真支持,仿真的硬件设备数量已超过400个。为准备7.2版本,1800位开发人员进行了205多次更改。

QEMU 7.2 添加的主要改进:

  • 经典TCG代码生成器中的x86模拟器增加了对AVX、AVX2、F16C、FMA3和VAES指令的支持,以及与SSE指令使用相关的性能优化。 对于 KVM,添加了对跟踪虚拟机退出(“通知 vmexit”)机制的支持,该机制允许您绕过 CPU 中可能导致挂起的错误。
  • ARM 仿真器支持 Cortex-A35 CPU 和处理器扩展 ETS(增强翻译同步)、PMUv3p5(PMU 扩展 3.5)、GTG(Guest Translation Granule 4KB、16KB、64KB)、HAFDBS(访问标志和“脏”状态的硬件控制)和 E0PD(防止 EL0 访问分区地址映射)。
  • LoongArch模拟器增加了对fw_cfg DMA、热插拔内存和TPM(可信平台模块)设备模拟的支持。
  • OpenRISC 架构仿真器实现了用于测试设备并在持续集成系统中使用它们的“虚拟”平台。 经典的TCG(Tiny Code Generator)代码生成器已经实现了对多线程执行的支持。
  • “虚拟”仿真机中的 RISC-V 架构仿真器能够在 S 模式下从 pflash 加载固件。 改进了设备树的工作。
  • 390x 仿真器支持 MSA5(带有用于生成伪随机数的 PRNO 指令的消息安全辅助扩展 5)、KIMD/KLM 指令(SHA-512 的实现)以及基于 KVM 管理程序的客户系统的扩展 zPCI 解释。
  • 考虑到 NUMA 架构,使用内存的后端提供内存预分配。
  • 加强了 LUKS 加密块设备的标头检查,并添加了在 macOS 上创建 LUKS 映像的功能。
  • 9pfs 后端允许使用 Plan 9 网络文件系统将一台虚拟机访问到另一台虚拟机,现在改用标识符表中的 GHashTable 哈希,这在某些情况下导致性能提高 6-12 倍。
  • 添加了新的 netdev 后端流和 dgram。
  • FreeBSD 支持已添加到基于 ARM 来宾的代理中。
  • macOS 的 GUI 构建提供了在一个可执行文件中包含基于 Cocoa 和 SDL/GTK 的界面的能力。
  • 内置子模块“slirp”已被删除,建议使用libslirp系统库。
  • 由于缺乏测试能力,对具有使用 Big Endian 字节顺序的 32 位 MIPS 处理器的主机系统的支持已被弃用。

来源: opennet.ru

添加评论