Lanzamiento del emulador QEMU 7.2

Se ha presentado el lanzamiento del proyecto QEMU 7.2. 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 cercano al de un 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.

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 7.2, se realizaron más de 1800 cambios de 205 desarrolladores.

Mejoras clave agregadas en QEMU 7.2:

  • El emulador x86 en el generador de código TCG clásico ha agregado soporte para instrucciones AVX, AVX2, F16C, FMA3 y VAES, así como optimizaciones de rendimiento relacionadas con el uso de instrucciones SSE. Para KVM, se ha agregado soporte para un mecanismo para rastrear las salidas de máquinas virtuales (“notificar vmexit”), que le permite evitar errores en la CPU que pueden provocar bloqueos.
  • El emulador ARM admite CPU Cortex-A35 y extensiones de procesador ETS (sincronización de traducción mejorada), PMUv3p5 (extensiones de PMU 3.5), GTG (gránulo de traducción invitada 4 KB, 16 KB, 64 KB), HAFDBS (control de hardware del indicador de acceso y estado "sucio") y E0PD (que impide el acceso de EL0 a mapas de direcciones particionadas).
  • El emulador LoongArch agrega soporte para fw_cfg DMA, memoria de conexión en caliente y emulación de dispositivos TPM (Trusted Platform Module).
  • El emulador de arquitectura OpenRISC implementa la plataforma 'virt' para probar dispositivos y utilizarlos en sistemas de integración continua. Se ha implementado soporte para la ejecución multiproceso del clásico generador de código TCG (Tiny Code Generator).
  • El emulador de la arquitectura RISC-V en las máquinas emuladas 'virt' tiene la capacidad de cargar firmware desde pflash en modo S. Trabajo mejorado con árbol de dispositivos.
  • El emulador 390x proporciona soporte para MSA5 (Message-Security-Assist Extension 5 con la instrucción PRNO para generar números pseudoaleatorios), instrucciones KIMD/KLM (implementación de SHA-512) e interpretación zPCI extendida para sistemas invitados basados ​​en el hipervisor KVM. .
  • Los backends para trabajar con memoria proporcionan una preasignación de memoria teniendo en cuenta la arquitectura NUMA.
  • Se ha reforzado la verificación de encabezados de dispositivos de bloques cifrados LUKS y se ha agregado la capacidad de crear imágenes LUKS en macOS.
  • El backend 9pfs, que permite utilizar el sistema de archivos de red Plan 9 para acceder de una máquina virtual a otra, pasó a utilizar el hash GHashTable en la tabla de identificadores, lo que en algunas situaciones condujo a un aumento de rendimiento de 6 a 12 veces.
  • Se agregaron nuevos backends de netdev stream y dgram.
  • Se agregó soporte para FreeBSD al agente para invitados basados ​​en ARM.
  • Las compilaciones de GUI para macOS brindan la capacidad de incluir interfaces basadas en Cocoa y SDL/GTK en un archivo ejecutable.
  • Se ha eliminado el submódulo integrado “slirp”, en su lugar se recomienda utilizar la biblioteca del sistema libslirp.
  • Debido a la falta de capacidad de prueba, la compatibilidad con sistemas host con procesadores MIPS de 32 bits que utilizan el orden de bytes Big Endian ha quedado obsoleta.

Fuente: opennet.ru

Añadir un comentario