Hace poco se presento el lanzamiento de la nueva versión del proyecto QEMU 6.2, versión en la cual en la preparación de la nueva versión se realizaron más de 2300 cambios de 189 desarrolladores.
Para quienes desconocen del proyecto deben saber que actúa como un emulador que permite ejecutar un programa compilado para una plataforma de hardware en un sistema con una arquitectura completamente diferente, por ejemplo, para ejecutar una aplicación para 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 está cerca del sistema de hardware debido a la ejecución directa de instrucciones en la CPU y el uso del hipervisor Xen o el módulo KVM.
El proyecto fue creado originalmente por Fabrice Bellard para permitir que los binarios de Linux construidos en x86 se ejecuten en arquitecturas que no sean x86. A lo largo de los años, se ha agregado soporte para la emulación completa para 14 arquitecturas de hardware, la cantidad de dispositivos de hardware emulados ha superado los 400.
Principales novedades de QEMU 6.2
En esta nueva versión de QEMU 6.2 en el mecanismo virtio-mem, que permite conectar y desconectar la memoria de las máquinas virtuales, se ha agregado el soporte de completo para volcados de memoria de invitados, operaciones de copia antes y después de la migración del entorno (pre-copia/post-copia) y creación de instantáneas del sistema invitado en el fondo.
Otro de los cambios que se destaca, es en QMP (QEMU Machine Protocol) implementa el manejo de errores DEVICE_UNPLUG_GUEST_ERROR que ocurren en el lado del huésped en caso de fallas durante las operaciones de conexión en caliente.
También se destaca que se amplió la sintaxis de los argumentos de arranque procesados en complementos para el generador de código clásico TCG (Tiny Code Generator), ademas de que se agregó soporte para sistemas de múltiples núcleos al complemento «caché».
En el emulador x86 es compatible con el modelo de CPU Intel Snowridge-v4, se agregó soporte para acceder a enclaves de Intel SGX (Software Guard eXtensions) desde invitados usando el dispositivo /dev/sgx_vepc en el lado del host y el backend «memory-backend-epc» en QEMU. Para los sistemas invitados protegidos con tecnología AMD SEV (virtualización cifrada segura), se ha agregado la capacidad de verificar el lanzamiento directo del kernel (sin usar un cargador de arranque) (habilitado al configurar el parámetro ‘kernel-hashes=on’ en ‘sev-guest’) .
En el emulador ARM en los sistemas host Apple Silicon admite el mecanismo de aceleración de hardware «hvf» al iniciar sistemas invitados basados en AArch64.
De los demás cambios que se destacan de las nueva versión:
Se ha implementado un nuevo tipo de máquinas emuladas «kudo-mbc».
Para las máquinas ‘virt’ se agregó soporte para la emulación ITS (Servicio de traducción de interrupciones) y la capacidad de usar más de 123 CPU en modo de emulación.
Se agregó soporte para dispositivos BBRAM y eFUSE para máquinas emuladas «xlnx-zcu102» y «xlnx-versal-virt».
Para los sistemas basados en el chip Cortex-M55, se proporciona soporte para el perfil móvil de las extensiones del procesador MVE.
Se ha agregado soporte inicial para el modelo CPU POWER10 DD2.0 al emulador de arquitectura PowerPC.
Se ha mejorado el soporte de la arquitectura POWER10 para las máquinas emuladas «powernv» y se han agregado descripciones de FORM2 PAPR NUMA para las máquinas «pseries».
Se agregó soporte para extensiones de conjuntos de instrucciones Zb [abcs] al emulador de arquitectura RISC-V. Las opciones «host-user» y «numa mem» están permitidas para todas las máquinas emuladas.
Se agregó soporte para SiFive PWM (modulador de ancho de pulso).
El emulador 68k mejora la compatibilidad con el NuBus propuesto por Apple, incluida la capacidad de cargar imágenes ROM y la compatibilidad con ranuras de interrupción.
Se agregó soporte para emular el modelo de procesador Fujitsu A64FX.
El dispositivo de bloque qemu-nbd tiene el modo de almacenamiento en caché de escritura habilitado de forma predeterminada («escritura diferida» en lugar de «escritura directa») para que coincida con el comportamiento de qemu-img.
Se agregó la opción «–selinux-label» para etiquetar los sockets SELinux Unix.
- Código:
-
https://www.qemu.org/download/#source