QEMU 7.1 llega con mejoras para ARM, RISC-V, Linux y mas
Se presentó el lanzamiento de la nueva versión de QEMU 7.1, versión que presenta una serie de mejoras para los diferentes emuladores y de los cuales se destacan los cambios para ARM, Risc-V, asi como tambien una mejora para linux en relación con la transferencia de memoria. En la preparación para la versión 7.1, se realizaron más de 2800 cambios de 238 desarrolladores.
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 7.1
En esta nueva versión que se presenta, para Linux, se implementa la opción zero-copy-send, que permite organizar la transferencia de páginas de memoria durante la migración en vivo sin almacenamiento en búfer intermedio.
Ademas de ello, QMP (protocolo de máquina QEMU) agrega la capacidad de usar el comando block-export-add para exportar imágenes NBD con datos de página en estado «dirty». También se agregaron nuevos comandos ‘query-stats’ y ‘query-stats-schema’ para consultar estadísticas de varios subsistemas QEMU.
Otro de los cambios que se destaca de esta nueva versión de QEMU, es que el agente invitado mejoró la compatibilidad con la plataforma Solaris y agregó nuevos comandos ‘guest-get-diskstats’ y ‘guest-get-cpustats’ para mostrar el estado del disco y la CPU. Se agregó salida de información de NVMe SMART al comando ‘guest-get-disks’ y salida de información sobre el tipo de bus NVMe al comando ‘guest-get-fsinfo’.
Ademas de ello, tambien se destaca que se agregó un nuevo emulador LoongArch para admitir la versión de 64 bits de la arquitectura del conjunto de instrucciones LoongArch (LA64). El emulador admite procesadores Loongson 3 5000 y puentes norte Loongson 7A1000.
Por otra parte, tambien se destaca que el emulador ARM ha implementado nuevos tipos de máquinas emuladas: Aspeed AST1030 SoC, Qualcomm y AST2600/AST1030 (fby35), ademas de que se agregó soporte para la emulación de CPU Cortex-A76 y Neoverse-N1, así como SME (Scalable Matrix Extensions), extensiones de procesador RAS (Reliability, Availability, Serviceability) y comandos para bloquear fugas de caché internas durante la ejecución de instrucciones especulativas en la CPU.
Mientras que el emulador de arquitectura RISC-V ha agregado soporte para las nuevas extensiones de conjunto de instrucciones (ISA) definidas en la especificación 1.12.0, así como soporte adicional para la extensión Sdtrig y soporte mejorado para instrucciones vectoriales.
De los demás cambios que se destacan de esta nueva versión:
- Opciones de depuración mejoradas.
- Se agregó compatibilidad con TPM (Trusted Platform Module) a la máquina emulada ‘virt’ y se agregó compatibilidad con Ibex SPI a la máquina ‘OpenTitan’.
- El emulador x86 para KVM ha agregado soporte para la virtualización del mecanismo de rastreo LBR (Last Branch Record).
- Se implementó la emulación del controlador de interrupción GICv4 para máquinas ‘virt’.
- El emulador de arquitectura HPPA ofrece un nuevo firmware basado en SeaBIOS v6 que admite el uso de un teclado PS/2 en el menú de inicio.
- Emulación de puerto serie mejorada.
- Se agregaron fuentes de consola STI adicionales.
- El emulador de arquitectura MIPS para placas Nios2 (-machine 10m50-ghrd) implementa la emulación del controlador de interrupción vectorial y el conjunto de registros de sombra.
- Manejo de excepciones mejorado.
- Se agregó la capacidad de usar hasta 4 dispositivos UART 16550A en el emulador de arquitectura OpenRISC para la máquina ‘or1k-sim’.
- El emulador de arquitectura 390x brinda soporte para extensiones VEF 2 (Vector-Enhancements Facility 2). El BIOS s390-ccw tiene la capacidad de arrancar desde discos con un tamaño de sector distinto de 512 bytes.
- Se agregó soporte para kernels lx106 y códigos de objeto para pruebas de caché al emulador de arquitectura Xtensa.
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 7.1 puedes consultar los detalles y más en el siguiente enlace