Se ha presentado el lanzamiento del proyecto QEMU 10.0.0. Como emulador, QEMU le permite ejecutar un programa compilado para una plataforma de hardware en un sistema con una arquitectura completamente diferente, por ejemplo, ejecutar una aplicación ARM en una PC compatible con x86. En el modo de virtualización en QEMU, el rendimiento de la ejecución de código en un entorno aislado es similar al del sistema de hardware debido a la ejecución directa de instrucciones en la CPU y al uso del hipervisor Xen o del módulo KVM en Linux, o del módulo NVMM en NetBSD.
El proyecto fue creado originalmente por Fabrice Bellard para permitir que los ejecutables de Linux creados para la plataforma x86 se ejecutaran en arquitecturas que no son x86. A lo largo de los años de desarrollo, se agregó soporte completo de emulación para 14 arquitecturas de hardware, la cantidad de dispositivos de hardware emulados superó los 400. En preparación para la versión 10.0, se realizaron más de 2800 cambios de 211 desarrolladores.
Mejoras clave agregadas en QEMU 10.0:
- El controlador virtio-scsi, que proporciona un controlador SCSI virtual (adaptador de bus de host SCSI) para máquinas virtuales, se ha actualizado para soportar un sistema de colas de múltiples niveles (multicola), que permite separar las colas para diferentes dispositivos de bloque para proporcionar acceso multiproceso en sistemas de múltiples núcleos (diferentes colas para la misma unidad pueden ser procesadas por diferentes subprocesos de E/S). En comparación con el controlador de dispositivo de bloque virtual (virtio-blk), el controlador SCSI virtual tiene un rendimiento ligeramente más lento, pero permite el uso de más de 28 discos.
- VFIO (E/S de función virtual) ha mejorado el soporte de paso de IGD (dispositivo de gráficos integrado) para las GPU integradas utilizadas en los procesadores Intel de 11.ª (Rocket Lake) y 12.ª (Alder Lake) generación. Se agregó soporte para GPU ATI más antiguas (x550). Se ha implementado soporte básico para PCI PM (Administración de energía).
- La documentación del Protocolo de Máquina QEMU (QMP), que permite que las aplicaciones controlen QEMU, se ha revisado y ampliado significativamente.
- Se agregó un nuevo modo de migración en vivo "cpr-transfer" (CheckPoint y Restart), que permite mover un sistema invitado a una nueva instancia de QEMU que se ejecuta en el mismo host. El modo minimiza el tiempo de suspensión al mapear la memoria del sistema invitado en el espacio de direcciones virtuales del nuevo QEMU sin copiar el contenido.
- Se agregaron dispositivos gráficos 'apple-gfx-pci' y 'apple-gfx-mmio' que usan el marco ParavirtualizedGraphics provisto en macOS para gráficos acelerados por hardware en invitados. El primer controlador está diseñado para usarse en dispositivos x86-64 y el segundo para ARM64.
- El emulador de arquitectura x86 ahora admite los modelos de procesadores Intel Xeon Clearwater Forest y Sierra Forest v2. Se ha acelerado la emulación de instrucciones de manipulación de datos de cadenas.
- El emulador de arquitectura ARM ahora admite las placas NPCM8445 Evaluation y i.MX 8M Plus EVK. Se agregó emulación de las extensiones FEAT_AFP, FEAT_RPRES y FEAT_XS, así como temporizadores físicos y virtuales EL2. Se ha dejado obsoleto el soporte para las CPU Arm PXA2xx y la emulación de instrucciones iwMMXt.
- El emulador de arquitectura RISC-V implementa la emulación de placas Microblaze V, CPU Ascalon y CPU RV64 Xiangshan Nanhu. Se agregó soporte para las extensiones de arquitectura del conjunto de comandos 'svukte', 'ssstateen', 'smrnmi', 'smdbltrp'/'ssdbltrp', 'supm', 'sspm', así como para las etiquetas de traducción IOMMU y los dispositivos riscv-iommu-sys.
- El emulador de arquitectura HPPA proporciona emulación de placas BMC Diva GSP. El firmware SeaBIOS-hppa se ha actualizado a la versión 18. Se aumentó la velocidad de transmisión. Código mejorado para restablecer la CPU virtual. En sistemas de 64 bits, se proporciona emulación de configuraciones con tamaños de memoria de hasta 256 GB.
- El emulador de arquitectura LoongArch ahora admite la conexión en caliente de la CPU. Se implementa IPI (interrupción entre procesadores) paravirtualizada. Se proporcionó seguimiento del tiempo de espera para el aprovisionamiento de recursos desde el hipervisor KVM. Se agregó soporte para enrutamiento virtual de interrupciones externas (extioi).
- El emulador de arquitectura s390x agrega soporte para la 17.ª generación de CPU de mainframe e implementa soporte virtio-mem. Para mejorar el rendimiento, se ha agregado la capacidad de interactuar con dispositivos PCI sin pasar por IOMMU.
Fuente: opennet.ru