Noticia QEMU 10.2.0 llega con migración cpr-exec, io_uring y soporte ARM Versal

QEMU


Hace pocos días el proyecto QEMU dio a conocer la disponibilidad de la versión 10.2.0, una actualización que se centra en optimizar el rendimiento del bucle de eventos principal, mejorar las capacidades de migración en vivo y ampliar el soporte de hardware para arquitecturas ARM, RISC-V y HPPA.

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.

Principales novedades de QEMU 10.2.0​


Uno de los cambios importantes de esta nueva versión es la migración del bucle de eventos principal de QEMU. En los sistemas host que lo admiten (principalmente Linux modernos), QEMU ahora utiliza la interfaz de E/S asincrónica io_uring. Esto promete reducir la sobrecarga del sistema y mejorar la latencia en operaciones intensivas de entrada/salida.

Ademas de ello, se ha introducido un nuevo modo de migración en vivo denominado cpr-exec. Este modo está diseñado para reducir drásticamente el consumo de recursos durante las actualizaciones de la máquina virtual (VM). Su gran ventaja radica en la capacidad de reutilizar estados y conexiones existentes, permitiendo que la VM persista o se actualice con una interrupción mínima, preservando descriptores de archivos y memoria.

Novedades por Arquitectura​

ARM y aarch64​


El emulador ARM añade nuevas características arquitectónicas de CPU emuladas:

  • FEAT_SCTLR2
  • FEAT_TCR2
  • FUNCIÓN_CSSC
  • FEAT_LSE128
  • HAZAÑA_ATS1A
  • FUNCIÓN_RME_GPC2
  • FEAT_AIE
  • FEAT_MEC
  • FEAT_GCS

A nivel de CPU, se ha implementado la emulación de múltiples extensiones técnicas (FEAT_SCTLR2, FEAT_TCR2, FEAT_LSE128, entre otras), lo que permite a los desarrolladores probar software que dependa de las instrucciones más recientes del conjunto ARM.

RISC-V y PowerPC​

  • RISC-V: Se ha actualizado el OpenSBI (Open Supervisor Binary Interface) a la versión 1.7 y se ha implementado la API HMP MonitorDef.
  • PowerPC: Se añade compatibilidad con las CPUs PowerNV11 y PPE42. Para los sistemas pSeries, se ha implementado el mecanismo FADUMP (Volcado Asistido por Firmware), crucial para el análisis post-mortem tras fallos del sistema.

HPPA y x86​


En HPPA gracias al trabajo realizado durante el Google Summer of Code, se ha mejorado la emulación de la estación de trabajo HP 715/64, incluyendo el controlador SCSI NCR 53c710 y el controlador de E/S HP LASI.

x86 introduce soporte para un nuevo acelerador, MSHV, que permite crear máquinas virtuales desde un invitado Hyper-V sin incurrir en la penalización de rendimiento de la virtualización anidada tradicional. Además, se ha eliminado el «gran bloqueo de QEMU» (BQL) para el dispositivo HPET.

Almacenamiento y Sistemas de Archivos​


El backend 9pfs, utilizado para compartir sistemas de archivos entre el host y el invitado de manera eficiente, se ha actualizado para soportar FreeBSD como host, una noticia excelente para los usuarios de sistemas BSD.

En cuanto a dispositivos de bloque, se ha añadido la emulación de RPMB (Replay Protected Memory Block) para dispositivos eMMC y se han expuesto los límites de bloque detectados a través de comandos QMP, mejorando la visibilidad para herramientas de gestión.

Seguridad y Criptografía​


El subsistema criptográfico ahora admite la carga de múltiples identidades de certificado + clave x509. Esto permite el uso de certificados paralelos con diferentes algoritmos, facilitando una transición suave hacia nuevos estándares criptográficos.

Además, se ha actualizado la política de seguridad del proyecto. Se aclara que la definición de «errores de seguridad» en el contexto de virtualización se aplica estrictamente a tipos de máquinas específicos y configuraciones soportadas, las cuales ahora se enumeran explícitamente para evitar ambigüedades.

Rust y Cambios Técnicos​


El soporte experimental para Rust sigue avanzando. La versión mínima requerida es ahora Rust 1.83. Aunque su uso sigue restringido al desarrollo, los dispositivos PL011 y HPET implementados en Rust ya han alcanzado la paridad de funciones con sus contrapartes en C.

Elementos eliminados u obsoletos:

  • Se ha eliminado la opción de línea de comandos -old-param.
  • La familia de CPUs ARM pxa ha sido eliminada definitivamente.
  • Los comandos wavcapture, stopcapture e info capture han sido marcados como obsoletos.

Finalmente, si estás interesado en poder conocer más al respeto, puedes consultar los detalles en el siguiente enlace.

Continúar leyendo...