Lanzamiento del emulador QEMU 4.0

Formado lanzamiento del proyecto QEMU 4.0. 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.0, se realizaron más de 3100 cambios de 220 desarrolladores.

Llave mejorasagregado en QEMU 4.0:

  • Se agregó soporte para extensiones de instrucciones ARMv8+ al emulador de arquitectura ARM: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT y BTI. Se agregó soporte para emular placas Musca y MPS2. Emulación ARM PMU (Unidad de administración de energía) mejorada. a la plataforma virtud se agregó la capacidad de usar más de 255 GB de RAM y soporte para imágenes de u-boot con el tipo “noload”;

  • En el emulador de arquitectura x86 en el motor de aceleración de virtualización HAX (Intel Hardware Accelerated Execution) agregó soporte para hosts compatibles con POSIX, como Linux y NetBSD (anteriormente solo se admitía la plataforma Darwin). En el emulador de chipset Q35 (ICH9) para los principales puertos PCIe, ahora se puede declarar opcionalmente la velocidad máxima (16GT/s) y el número de líneas de conexión (x32) definidos en la especificación PCIe 4.0 (para garantizar la compatibilidad, se recomienda 2.5GT). instalado de forma predeterminada para tipos más antiguos de máquinas QEMU /s y x1). Es posible cargar imágenes Xen PVH con la opción “-kernel”;
  • El emulador de arquitectura MIPS ha agregado soporte para la emulación multiproceso utilizando el generador de código clásico TCG (Tiny Code Generator). También se agregó soporte para la emulación de CPU I7200 (nanoMIPS32 ISA) e I6500 (MIPS64R6 ISA), la capacidad de procesar solicitudes de tipo de CPU utilizando QMP (Protocolo de administración QEMU), se agregó soporte para registros de configuración SAARI y SAAR. Rendimiento mejorado de máquinas virtuales con el tipo Fulong 2E. Implementación actualizada de la Unidad de Comunicación Interthread;
  • En el emulador de arquitectura PowerPC, se agregó soporte para emular el controlador de interrupciones XIVE, se amplió el soporte para POWER9 y, para la serie P, se agregó la capacidad de conectar en caliente puentes de host PCI (PHB, puente de host PCI). La protección contra ataques Spectre y Meltdown está habilitada de forma predeterminada;
  • Se agregó soporte para emulación PCI y USB al emulador de arquitectura RISC-V. El servidor de depuración integrado (gdbserver) ahora admite la especificación de listas de registros en archivos XML. Se agregó soporte para los campos de mstatus TSR, TW y TVM;
  • El emulador de arquitectura s390 ha agregado soporte para el modelo de CPU z14 GA 2, así como soporte para emular extensiones de instrucciones para operaciones de punto flotante y vectoriales. Se agregó la capacidad de conectar dispositivos en caliente a vfio-ap;
  • El emulador de procesadores de la familia Tensilica Xtensa ha mejorado el soporte SMP para Linux y ha agregado soporte para FLIX (extensión de instrucciones de longitud flexible);
  • Se ha añadido a la interfaz gráfica la opción '-display Spice-app' para configurar y lanzar una versión del cliente de acceso remoto Spice con un diseño similar a la interfaz QEMU GTK;
  • Se agregó soporte para control de acceso usando las opciones tls-authz/sasl-authz a la implementación del servidor VNC;
  • QMP (Protocolo de administración QEMU) agregó soporte para la ejecución de comandos centralizados/externos (fuera de banda) e implementó comandos adicionales para trabajar con dispositivos de bloque;
  • Se agregó una implementación de la interfaz EDID a VFIO para mdevs compatibles (Intel vGPU), lo que le permite cambiar la resolución de la pantalla usando las opciones xres e yres;
  • Se agregó un nuevo dispositivo 'xen-disk' para Xen, que puede crear de forma independiente un backend de disco para Xen PV (sin acceder a xenstore). Se ha aumentado el rendimiento del backend del disco Xen PV y se ha agregado la capacidad de cambiar el tamaño del disco;
  • Se han ampliado las capacidades de diagnóstico y rastreo en los dispositivos de bloque de red y se ha mejorado la compatibilidad del cliente con implementaciones problemáticas del servidor NBD. Se agregaron las opciones “--bitmap”, “--list” y “--tls-authz” a qemu-nbd;
  • Se agregó soporte para el modo PCI IDE al dispositivo IDE/vía emulado;
  • Se agregó soporte para usar el algoritmo lzfse para comprimir imágenes dmg. Para el formato qcow2, se agregó soporte para conectar archivos de datos externos. Las operaciones de descompresión de qcow2 se mueven a un hilo separado. Se agregó soporte para la operación "blockdev-create" en imágenes vmdk;
  • El dispositivo de bloques virtio-blk ha agregado soporte para las operaciones DISCARD (informar sobre la liberación de bloques) y WRITE_ZEROES (poner a cero un rango de bloques lógicos);
  • El dispositivo pvrdma admite servicios de datagramas de gestión (MAD) RDMA;
  • contribuido cambios, violando la compatibilidad con versiones anteriores. Por ejemplo, en lugar de la opción "manejar" en "-fsdev" y "-virtfs", debería utilizar las opciones "local" o "proxy". Se eliminaron las opciones “-virtioconsole” (reemplazada por “-device virtconsole”), “-no-frame”, “-clock”, “-enable-hax” (reemplazada por “-accel hax”). Dispositivo eliminado "ivshmem" (debe usar "ivshmem-doorbell" y "ivshmem-plain"). Se ha descontinuado el soporte para compilar con SDL1.2 (es necesario usar SDL2).

Fuente: opennet.ru

Añadir un comentario