Se ha presentado el lanzamiento del proyecto QEMU 7.0. Como emulador, QEMU permite ejecutar un programa compilado para una plataforma de hardware en un sistema con una arquitectura completamente diferente; por ejemplo, ejecutar una aplicación de ARM en un PC compatible con x86. En modo de virtualización, el rendimiento de la ejecución de código en un entorno aislado es similar al de un sistema físico, gracias a la ejecución directa de instrucciones en el CPU y al uso del hipervisor Xen o del módulo KVM.
El proyecto fue originalmente creado por Fabrice Bellard con el objetivo de permitir la ejecución de archivos ejecutables de Linux compilados para la plataforma x86 en arquitecturas distintas de x86. A lo largo de los años de desarrollo, se ha añadido soporte para la emulación completa de 14 arquitecturas de hardware, y se ha superado el número de 400 dispositivos de hardware emulados. En la preparación de la versión 7.0, se realizaron más de 2500 cambios por parte de 225 desarrolladores.
Mejoras clave añadidas en QEMU 7.0:
- En el emulador de la arquitectura x86 se ha añadido soporte para el conjunto de instrucciones Intel AMX (Advanced Matrix Extensions), implementadas en los procesadores de servidor Intel Xeon Scalable. AMX ofrece nuevos registros configurables TMM «TILE» e instrucciones para manipular datos en esos registros, como TMUL (Tile matrix MULtiply) para multiplicación de matrices.
- Se ha habilitado la capacidad de registro de eventos ACPI desde el sistema invitado a través de la interfaz ACPI ERST.
- En el módulo virtiofs, utilizado para redirigir parte del sistema de archivos del entorno host al sistema invitado, se ha mejorado el soporte para etiquetas de seguridad (security label). Se ha corregido la vulnerabilidad CVE-2022-0358, que permitía elevar privilegios en el sistema al crear archivos ejecutables en directorios redirigidos a través de virtiofs, pertenecientes a otro grupo y marcados con el flag SGID.
- Se ha aumentado la flexibilidad de la copia de seguridad de imágenes de sistema activas en funcionamiento (se crea un instantáneo, tras lo cual se aplica un filtro de copia antes de escribir (CBW) para actualizar el estado del instante, copiando datos de áreas donde el sistema invitado está realizando escrituras). Se ha añadido soporte para imágenes en formatos distintos de qcow2. Se ha facilitado el acceso a la instantánea de la copia de seguridad no de manera directa, sino a través del controlador de dispositivo de bloque snapshot-access. Se han ampliado las capacidades para gestionar el funcionamiento del filtro CBW, por ejemplo, se pueden excluir de procesamiento ciertos mapas de bits.
- En el emulador ARM para máquinas 'virt' se ha añadido soporte para virtio-mem-pci, definiciones de topología de CPU para el sistema invitado y habilitación de PAuth al utilizar el hipervisor con acelerador hvf. KVM En el emulador de placas 'xlnx-versal-virt' se ha añadido soporte para PMC SLCR y emulación del controlador de memoria Flash OSPI. Para máquinas emuladas 'xlnx-zynqmp', se han añadido nuevos modelos de control de CRF y APU. Se ha añadido emulación de las extensiones FEAT_LVA2, FEAT_LVA (Large Virtual Address space) y FEAT_LPA (Large Physical Address space).
- En el generador de código clásico TCG (Tiny Code Generator) se ha cesado el soporte para hosts con CPU ARMv4 y ARMv5, que no tienen soporte para accesos a memoria no alineados y carecen de suficiente RAM para ejecutar QEMU.
- En el emulador de arquitectura RISC-V se ha añadido soporte para el hipervisor KVM y se han implementado las extensiones vectoriales Vector 1.0, así como instrucciones Zve64f, Zve32f, Zfhmin, Zfh, zfinx, zdinx y zhinx{min}. Para las máquinas emuladas 'spike' se ha añadido soporte para cargar archivos binarios OpenSBI (Interfaz Binaria del Supervisor RISC-V). Para las máquinas emuladas 'virt' se ha implementado la posibilidad de utilizar hasta 32 núcleos de procesador y soporte para AIA.
- En el emulador de arquitectura HPPA se ha proporcionado la posibilidad de utilizar hasta 16 vCPU y se ha mejorado el controlador gráfico para entornos de usuario HP-UX VDE/CDE. Se ha añadido la posibilidad de cambiar el orden de arranque para dispositivos SCSI.
- En el emulador de arquitectura OpenRISC para placas 'sim' se ha añadido soporte para utilizar hasta 4 núcleos de CPU, cargar una imagen externa initrd y generar automáticamente el árbol de dispositivos para el núcleo que se va a cargar.
- En el emulador de arquitectura PowerPC para máquinas emuladas 'pseries' se ha implementado la posibilidad de ejecutar sistemas invitados bajo un hipervisor anidado KVM. Se ha añadido soporte para el dispositivo spapr-nvdimm. Para máquinas emuladas 'powernv' se ha añadido soporte para el controlador de interrupciones XIVE2 y controladores PHB5, mejorando el soporte para XIVE y PHB 3/4.
- En el emulador de arquitectura s390x se ha añadido soporte para las extensiones z15 (Miscellaneous-Instruction-Extensions Facility 3).
Fuente: opennet.ru
