Lanzamiento del emulador QEMU 4.1

Presentado por lanzamiento del proyecto QEMU 4.1. 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 del sistema nativo 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 4.1, se realizaron más de 2000 cambios de 276 desarrolladores.

Llave mejorasagregado en QEMU 4.1:

  • Se agregó compatibilidad con los modelos de CPU Hygon Dhyana e Intel SnowRidge al emulador de arquitectura x86. Se agregó emulación de la extensión RDRAND (generador de números pseudoaleatorios de hardware). Banderas agregadas
    md-clear y mds-no para controlar la protección contra ataques MDS (Muestreo de datos de microarquitectura) en procesadores Intel. Se agregó la capacidad de determinar topologías de circuitos integrados usando el indicador "-smp...,dies=". Se han implementado versiones para todos los modelos de CPU x86;

  • El controlador del bloque SSH ha dejado de usarse libssh2 en libre;
  • El controlador virtio-gpu (GPU virtual desarrollada como parte del proyecto Virgil) agregó soporte para mover operaciones de renderizado 2D/3D a un proceso de usuario vhost externo (por ejemplo, vhost-user-gpu);
  • El emulador de arquitectura ARM ha agregado soporte para la extensión ARMv8.5-RNG para generar números pseudoaleatorios. Se implementó soporte para la emulación de FPU para chips de la familia Cortex-M y se resolvieron los problemas con la emulación de FPU para Cortex-R5F. Se ha propuesto un nuevo sistema para configurar opciones de compilación, diseñado al estilo Kconfig. Para SoC Exynos4210, se agregó soporte para controladores DMA PL330;
  • El emulador de arquitectura MIPS ha mejorado la compatibilidad con las instrucciones MSA ASE cuando se utiliza el orden de bytes big-endian y ha alineado el manejo de los casos de división por cero con el hardware de referencia. Se ha aumentado el rendimiento de la emulación de instrucciones MSA para cálculos de números enteros y operaciones de permutación;
  • El emulador de arquitectura PowerPC ahora admite el reenvío a GPU NVIDIA V100/NVLink2 mediante VFIO. Para pseries, se implementó la aceleración de la emulación del controlador de interrupciones XIVE y se agregó soporte para conexión en caliente de puentes PCI. Se han realizado optimizaciones en la emulación de instrucciones vectoriales (Altivec/VSX);
  • Se agregó un nuevo modelo de hardware al emulador de arquitectura RISC-V: "spike". Se agregó soporte para ISA 1.11.0. Se mejoró la ABI de llamada al sistema de 32 bits, se mejoró el manejo de instrucciones no válidas y se mejoró el depurador incorporado. Se agregó soporte para la topología de la CPU en el árbol de dispositivos;
  • El emulador de arquitectura s390 agregó soporte para emular todas las instrucciones vectoriales del grupo "Vector Facility" y agregó elementos adicionales para admitir sistemas gen15 (incluido soporte adicional para AP Queue Interruption Facility para vfio-ap). Se implementó soporte de BIOS para arrancar desde ECKD DASD vinculado al sistema invitado a través de vfio-ccw;
  • En el emulador de arquitectura SPARC para sistemas sun4m, se resolvieron los problemas con el uso del indicador “-vga none” para OpenBIOS;
  • El emulador de procesadores de la familia Tensilica Xtensa incluye opciones para MPU (unidad de protección de memoria) y acceso exclusivo;
  • La opción "-salvage" se ha agregado al comando "qemu-img convert" para deshabilitar el bloqueo del proceso de conversión de imágenes en caso de errores de E/S (por ejemplo, se puede usar para restaurar archivos qcow2 parcialmente dañados). En un equipo
    “qemu-img rebase” funciona cuando aún no se ha creado un archivo de respaldo para el archivo de entrada;

  • Se agregó la capacidad de redirigir la salida organizada usando la tecnología "semihosting" (permite que el dispositivo emulado use stdout, stderr y stdin para crear archivos en el lado del host) al backend chardev ("-semihosting-config enable=on,target=native ,chardev=[ID]");
  • Se agregó soporte para el subformato seSparse en modo de solo lectura en el controlador de bloque VMDK;
  • Se agregó soporte para el controlador SiFive GPIO en el controlador de emulación GPIO.

Fuente: opennet.ru

Añadir un comentario