QEMU 9.2 llega con soporte para modelos de dispositivos en Rust, GPU virtuales, mejoras y mas
Se dio a conocer el lanzamiento de la nueva versión, de QEMU 9.2 versión en la cual se incorpora el soporte experimental para la creación de modelos de dispositivos utilizando Rust, el soporte para la aceleración 3D con Vulkan, mejoras para ARM, x86, RISC-V, entre otras arquitecturas mas.
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.
Principales novedades de QEMU 9.2
En esta nueva versión que se presenta de QEMU 9.2 se agregó compatibilidad con modelos de dispositivos escritos en el lenguaje de programación Rust, ya que se incluye por defecto una implementación alternativa del controlador UART PL011 escrita en Rust. Sin embargo, esta implementación aún no está recomendada para un uso generalizado.
Cabe mencionar que actualmente, la compatibilidad con Rust se encuentra desactivada por defecto y debe habilitarse manualmente durante la configuración mediante la opción –enable-rust. Para la compilación, se requiere al menos Rustc 1.63.0 y bindgen 0.60.0, lo que puede implicar la instalación de versiones más recientes de Rust en algunas distribuciones, como Debian 12. En el futuro, se espera que Rust y bindgen se conviertan en dependencias obligatorias, y se planea ampliar el uso de Rust en componentes como controladores HPET, dispositivos de bloque y sistemas críticos para la seguridad, como VirtIO.
Otra mejora clave en esta versión es la adición de soporte para la aceleración 3D mediante Vulkan en el dispositivo VirtIO-GPU, que proporciona GPU virtuales. Esta funcionalidad se implementa a través del controlador Venus Vulkan de Mesa, lo que permite al sistema invitado realizar renderizado 3D sin acceso exclusivo a la GPU física del host. Para habilitar esta característica, se requiere la biblioteca virglrenderer en el host y el controlador Venus Mesa en el invitado, y se han publicado instrucciones detalladas para su configuración.
Además de ello, en QEMU 9.2 el Guest Migration Toolkit ahora ofrece una compresión más eficiente de los flujos de datos transmitidos simultáneamente mediante la biblioteca QATzip, que aprovecha la tecnología QuickAssist integrada en los procesadores Intel. Esto mejora significativamente el rendimiento en tareas de compresión y cifrado.
También se destaca que el emulador de arquitectura ARM ha mejorado con el soporte para las extensiones de procesador FEAT_EBF16 y FEAT_CMOW, junto con mejoras de seguridad específicamente para las placas xilinx-zynq-a9. Utilizando el componente HVF, que aprovecha el Hypervisor.framework para acelerar la ejecución de invitados en Mac ARM, ahora se ofrece soporte para más de 64 GB de memoria.
Para los sistemas sbsa-ref y virt, se ha añadido soporte para la traducción de direcciones de dos etapas en la SMMU. Sin embargo, se ha descontinuado la compatibilidad con varios tipos de hardware emulado antiguos, como Akita, Borzoi, Cheetah y otros.
En cuanto a la arquitectura RISC-V, se han integrado nuevas extensiones como Svvptc, Bitmanip y CFI, utilizadas en las placas OpenTitan. Además, el sistema «virt» emulado ahora soporta IOMMU, lo que mejora la gestión de la memoria en sistemas más complejos, y se ha optimizado el rendimiento de las instrucciones de carga y almacenamiento.
De los demás cambios que se destacan:
- El emulador de arquitectura x86 ha añadido soporte para una nueva configuración de hardware, el «nitro-enclave», que emula el entorno AWS Nitro Enclave y permite cargar imágenes del sistema en formato Enclave.
- Se ha habilitado la compatibilidad con el conjunto de instrucciones AVX10 en el hipervisor KVM de arquitectura x86, junto con sus versiones específicas: avx10-128, avx10-256 y avx10-512.
- En la arquitectura HPPA, el firmware SeaBIOS-hppa ha sido actualizado a la versión 17, y en el emulador de arquitectura s390x.
- Ahora es posible iniciar desde dispositivos alternativos en caso de fallo del dispositivo principal, lo que añade flexibilidad en los entornos de arranque.
- el backend criptográfico basado en GLib ha añadido soporte para el algoritmo hash SHA-384, ampliando sus capacidades en el manejo de operaciones criptográficas.
- Se corrigió la compilación riscv64 en musl libc, la compatibilidad con RISC-V bsd-user
- Se solucionó el problema de enlace con semihosting deshabilitado
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en la lista completa de cambios en el siguiente enlace.