Se ha presentado el lanzamiento del proyecto QEMU 9.1. 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 9.1, se realizaron más de 2800 cambios de 263 desarrolladores.
Mejoras clave agregadas en QEMU 9.1:
- Guest Migration Toolkit brinda soporte para acelerar la compresión de datos utilizando la tecnología IAA (Intel In-Memory Analytics Accelerator) o UADK (User Space Accelerator Development Kit). Soporte mejorado para la recuperación de fallas de migración en modo poscopia.
- El mecanismo virtio, utilizado para organizar la interacción entre los sistemas invitados y el sistema anfitrión, ha agregado soporte para la función VIRTIO_F_NOTIFICATION_DATA, que permite a los conductores del lado invitado transmitir datos adicionales junto con las notificaciones enviadas. La función se puede utilizar, por ejemplo, para enviar datos de depuración u optimizar el rendimiento.
- El comando guest-network-get-route se agregó a guest-agent para sistemas Linux y el comando guest-ssh-* para sistemas Windows. La interfaz de línea de comandos ha ampliado las opciones para configurar el funcionamiento de los comandos "permitidos" y "bloqueados".
- El emulador de arquitectura ARM ha agregado soporte para las extensiones de procesador EAT_NMI, FEAT_CSV2_3, FEAT_ETS2, FEAT_Spec_FPACC, FEAT_WFxT, FEAT_Debugv8p8. Al emular la unidad de administración de memoria SMMUv3 (Unidad de administración de memoria del sistema), se implementa soporte para páginas de memoria anidadas y de dos niveles. Para las placas Xilinx Zynq, se agregó soporte para emulación de configuraciones multiprocesador, controlador de pantalla DM163 y controlador de caché.
- El emulador de arquitectura LoongArch brinda la capacidad de cargar directamente imágenes del kernel en formato ELF y agrega soporte para ejecutar hasta 256 CPU usando la extensión extioi. Capacidades de depuración mejoradas.
- El emulador de arquitectura RISC-V agrega soporte para las extensiones de procesador Zve32x, Zve64x, Zimop, Zcmop, Zama16b, Zabha, Zawrs y Smcntrpmf, así como la versión 1.13 de la Especificación de arquitectura de conjunto de instrucciones privilegiadas. Capacidades de depuración mejoradas.
- El emulador de arquitectura SPARC ha agregado soporte para extensiones de procesador FMAF, IMA, VIS3 y VIS4.
- El emulador x86 para el hipervisor KVM brinda la capacidad de ejecutar sistemas invitados utilizando la extensión del procesador AMD SEV-SNP (Secure Nested Paging), que garantiza el funcionamiento seguro de las tablas de páginas de memoria anidadas. Se ha implementado soporte para emulación de CPU basada en las microarquitecturas Icelake-Server-v7, SapphireRapids-v3 y SierraForest.
- Se ha solucionado una vulnerabilidad (CVE-2024-7409) en el servidor NBD (Network Block Device), que permite la manipulación en el sistema invitado para causar que QEMU se bloquee durante la operación nbd-server-stop, incluso si el cliente no tiene Claves TLS para la conexión al servidor NBD.
Fuente: opennet.ru