Se dio a conocer el lanzamiento de la nueva versión QEMU 8.0, en la cual en preparación para la versión 8.0, se realizaron más de 2800 cambios de 238 desarrolladores y se implementan diversas mejoras para los emuladores, asi como tambien mayor soporte, entre otras cosas.
Para quienes desconocen de QEMU, deben saber que este permite ejecutar un programa creado 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 de un sistema de hardware debido a la ejecución directa de instrucciones en la CPU y el uso del hipervisor Xen o módulo KVM.
Principales novedades de QEMU 8.0
En esta nueva versión que se presenta de QEMU 8.0 se destaca que se agregó soporte para ejecutar invitados Xen en un entorno basado en el hipervisor KVM y kernels Linux 5.12+ en el emulador de arquitectura x86, asi como tambien se agregó soporte para las banderas FSRM, FZRM, FSRS y FSRC CPUID en el generador de código TCG clásico x86 y se implemento el soporte para el nuevo modelo de CPU Intel Sapphire Rapids (Intel 7).
Ademas de ello, tambien se destaca que se ha actualizado la implementación de las máquinas OpenTitan, PolarFire y OpenSBI emuladas en el emulador de arquitectura RISC-V y que se agregó soporte para extensiones y conjuntos de instrucciones de procesador (ISA) adicionales: Smstateen, contadores de depuración de icount, eventos de PMU relacionados con caché en modo virtual, extensiones ACPI, Zawrs, Svadu, T-Head y Zicond.
El emulador ARM ha implementado soporte para CPU Cortex-A55 y Cortex-R52, agregó un nuevo tipo de máquina emulada Olimex STM32 H405, soporte agregado para FEAT_EVT (trampas de virtualización mejoradas), FEAT_FGT (trampas de grano fino) y procesador AArch32 ARMv8-R extensiones _ Se agregó soporte para registros del sistema en gdbstub para la arquitectura de perfil M (perfil de microcontrolador).
Por otra parte, se menciona que en esta nueva versión de QEMU 8.0 se declaró obsoleto y pronto se interrumpirá la compatibilidad con la emulación del sistema (lanzamiento de todo el sistema operativo, incluidos los hipervisores KVM y Xen) en hosts x86 de 32 bits, se menciona que se continuará la compatibilidad con la emulación de modo de usuario (ejecutar procesos separados creados para una CPU diferente) en hosts x86 de 32 bits.
Tambien podremos encontrar que se ha agregado soporte para la instrucción fid (identificación de punto flotante) al emulador de arquitectura HPPA y se ha mejorado la emulación en modo de 32 bits, asi como tambien que se ha mejorado el manejo de dispositivos zPCI reenviados.
De los demás cambios que se destacan de esta nueva versión de QEMU 8.0:
- El emulador de arquitectura 390x admite la separación de memoria asíncrona al reiniciar invitados KVM seguros.
- El mecanismo virtio-mem, que le permite conectar y desconectar en caliente la memoria de las máquinas virtuales, implementa la asignación previa durante la migración en vivo.
- El soporte experimental para la migración se ha actualizado en VFIO (Virtual Function I/O) (la segunda edición del protocolo de migración está involucrada).
- El dispositivo de bloque qemu-nbd ha mejorado el rendimiento sobre TCP cuando se usa TLS.
- Se ha agregado soporte inicial para OpenBSD y NetBSD al agente invitado.
- Arreglar la propagación de PMP para tlb
- Eliminar la propiedad ipi-id redundante en la máquina virt
- Solucion a la causa de la excepción mret cuando no se configura ninguna regla pmp
- Corrección de error en el que la desactivación de instrucciones comprimidas bloquearía QEMU
- Firmware de limpieza y carga del árbol de dispositivosUna colección de arreglos para la virtualización
- Una solución para la excepción de instrucción virtual
- Una solución para la coincidencia de PMP para evitar la aplicación incorrecta de los permisos predeterminados en violaciones de permisos de PMP.
- Correcciones para las instrucciones de diapositivas vectoriales para evitar truncar valores de 64 bits (como dobles) en objetivos de 32 bits.
- Correcciones a gdbstub, accesos CSR, dependencias entre las diversas excepciones de punto flotante y XTheadMemPair.
- Solucion en el nombre de registro incorrecto en el desensamblador para las instrucciones fmv, fabs, fneg
Finalmente si estás interesado en poder conocer más al respecto de los cambios y novedades que se presentan en esta nueva versión de QEMU 8.0 puedes consultar los detalles y más en el siguiente enlace.