Llega QEMU 4.1 con mayor soporte para CPUS y mucho más
Recientemente fue presentado el lanzamiento de la nueva versión del proyecto QEMU 4.1, el cual es una aplicación para la visualización (básicamente un emulador) que permite ejecutar un programa creado para una plataforma de hardware en un sistema con una arquitectura completamente diferente, por ejemplo, ejecutar una aplicación para ARM en una PC compatible con x86.
En el modo de virtualización en QEMU, el rendimiento de la ejecución del código en un entorno aislado está cerca del sistema nativo debido a la ejecución directa de instrucciones en la CPU y al uso del hipervisor Xen o el módulo KVM.
Principales novedades de QEMU 4.1
QEMU 4.1 llega con el soporte para los modelos de CPU Hygon Dhyana e Intel SnowRidge en el emulador de arquitectura x86, así como la emulación de la extensión RDRAND (generador de números pseudoaleatorios de hardware).
En el emulador de arquitectura MIPS, se mejora la compatibilidad con las instrucciones ASE de MSA cuando se utiliza el orden de bytes big-endian y el procesamiento de casos de división por cero se alinea con el equipo de referencia. Aumento del rendimiento de la emulación de instrucciones MSA para cálculos de enteros y operaciones de permutación.
El emulador de arquitectura PowerPC presenta soporte para el reenvío a GPU NVIDIA V100 / NVLink2 usando VFIO. Para pseries, se implementa la aceleración de emulación del controlador de interrupción XIVE y se agrega soporte para puentes PCI de conexión en caliente. Se introdujeron optimizaciones en la emulación de instrucciones vectoriales (Altivec / VSX).
QEMU 4.1 recibe un nuevo modelo de hardware, spike, al emulador de arquitectura RISC-V, así como el soporte para ISA 1.11.0, también las Llamadas del sistema ABI de 32 bits fueron mejoradas con procesamiento extendido de instrucciones no válidas y depurador incorporado mejorado.
El soporte para emular todas las instrucciones vectoriales del grupo “Vector Facility” se ha agregado al emulador de arquitectura s390, y se han agregado elementos adicionales para admitir sistemas gen15 (incluido el soporte para AP Queue Interruption Facility para vfio-ap). Se implementó el soporte de BIOS para arrancar desde ECKD DASD vinculado al sistema invitado a través de vfio-ccw.
El emulador de arquitectura SPARC para sistemas sun4m resuelve problemas usando el indicador “-vga none” para OpenBIOS.
Se destaca también la adición de los indicadores md-clear y mds-no para controlar la protección contra ataques MDS (Microarchitectural Data Sampling) en procesadores Intel. Se agregó la capacidad de determinar las topologías de los circuitos integrados utilizando la bandera “-smp …, dies =”. El control de versiones se implementa para todos los modelos de CPU x86.
Para la opción “–salvage” se ha agregado al comando de conversión qemu-img para deshabilitar la terminación anormal del proceso de conversión de imágenes en caso de errores de entrada / salida (por ejemplo, se puede usar para restaurar archivos qcow2 parcialmente dañados).
De los demás cambios que se destacan de esta nueva versión:
- El controlador de bloque SSH se ha convertido de usar libssh2 a libssh
- El controlador virtio-gpu (una GPU virtual desarrollada como parte del proyecto Virgil ) ha agregado soporte para transferir operaciones de renderizado 2D / 3D a un proceso externo de usuario vhost (por ejemplo, vhost-user-gpu)
- El soporte para la extensión ARMv8.5-RNG para generar números pseudoaleatorios se ha agregado al emulador de arquitectura ARM. Soporte implementado para la emulación de FPU para chips de la familia Cortex-M y resolvió problemas con la emulación de FPU para Cortex-R5F.
- Se propone un nuevo sistema para configurar las opciones de ensamblaje, diseñado al estilo de Kconfig. Para SoC Exynos4210 se agregó soporte para controladores DMA PL330.
- Se agregó soporte para subformato seSparse de solo lectura en el controlador de bloque VMDK.
- En el emulador de procesadores de la familia Tensilica Xtensa, se implementan opciones para MPU (unidad de protección de memoria) y acceso exclusivo
- Se agregó soporte para el controlador GPIO de SiIO en el controlador de emulación GPIO.
- Se agregó soporte para la topología de la CPU en el árbol de dispositivos.
- El comando “qemu-img rebase” proporciona trabajo cuando aún no se ha creado un archivo de respaldo para el archivo de entrada.