Lanzamiento del emulador QEMU 6.0

Se presenta el lanzamiento del proyecto QEMU 6.0. Como emulador, QEMU le permite ejecutar un programa creado 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 similar al de un sistema de hardware debido a la ejecución directa de instrucciones en la CPU y el uso del hipervisor Xen o 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 6.0, se realizaron más de 3300 cambios de 268 desarrolladores.

Mejoras clave agregadas en QEMU 6.0:

  • El emulador de controlador NVMe cumple con la especificación NVMe 1.4 y está equipado con soporte experimental para espacios de nombres de zonas, E/S de múltiples rutas y cifrado de datos de extremo a extremo en la unidad.
  • Se agregaron opciones experimentales “-machine x-remote” y “-device x-pci-proxy-dev” para mover la emulación de dispositivos a procesos externos. En este modo, actualmente solo se admite la emulación del adaptador SCSI lsi53c895.
  • Se agregó soporte experimental para crear instantáneas de contenidos de RAM.
  • Se agregó un módulo FUSE para exportar dispositivos de bloque, lo que le permite montar una porción del estado de cualquier dispositivo de bloque utilizado en el sistema invitado. La exportación se realiza mediante el comando QMP block-export-add o mediante la opción “--export” en la utilidad qemu-storage-daemon.
  • El emulador ARM agrega soporte para la arquitectura ARMv8.1-M 'Helium' y los procesadores Cortex-M55, así como las instrucciones extendidas ARMv8.4 TTST, SEL2 y DIT. También se agregó soporte para placas ARM mps3-an524 y mps3-an547. Se ha implementado una emulación de dispositivo adicional para las placas xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx y sabrelite.
  • Para ARM, en los modos de emulación a nivel del sistema y del entorno de usuario, se ha implementado soporte para la extensión ARMv8.5 MTE (MemTag, Memory Tagging Extension), que le permite vincular etiquetas a cada operación de asignación de memoria y organizar una verificación del puntero cuando accediendo a la memoria, que debe estar asociada con la etiqueta correcta. La extensión se puede utilizar para bloquear la explotación de vulnerabilidades causadas por el acceso a bloques de memoria ya liberados, desbordamientos del búfer, accesos antes de la inicialización y uso fuera del contexto actual.
  • El emulador de arquitectura 68k ha agregado soporte para un nuevo tipo de máquina emulada “virt”, que utiliza dispositivos virtio para optimizar el rendimiento.
  • El emulador x86 agrega la capacidad de utilizar la tecnología AMD SEV-ES (virtualización cifrada segura) para cifrar los registros del procesador utilizados en el sistema invitado, haciendo que el contenido de los registros sea inaccesible para el entorno host a menos que el sistema invitado les conceda acceso explícitamente.
  • El generador de código clásico TCG (Tiny Code Generator), al emular sistemas x86, implementa soporte para el mecanismo PKS (Protection Keys Supervisor), que se puede utilizar para proteger el acceso a páginas de memoria privilegiadas.
  • Se ha agregado un nuevo tipo de máquinas emuladas "virt" al emulador de arquitectura MIPS con soporte para procesadores chinos Loongson-3.
  • En el emulador de arquitectura PowerPC para máquinas emuladas “powernv”, se ha agregado soporte para controladores BMC externos. Para máquinas pseries emuladas, se proporciona notificación de fallas al intentar eliminar memoria y CPU en caliente.
  • Se agregó soporte para emular procesadores Qualcomm Hexagon con DSP.
  • El generador de códigos clásico TCG (Tiny Code Generator) admite entornos de host macOS en sistemas con el nuevo chip Apple M1 ARM.
  • El emulador de arquitectura RISC-V para placas Microchip PolarFire admite flash QSPI NOR.
  • El emulador Tricore ahora es compatible con el nuevo modelo de placa TriBoard, que emula el SoC Infineon TC27x.
  • El emulador ACPI brinda la capacidad de asignar nombres a adaptadores de red en sistemas invitados que son independientes del orden en que están conectados al bus PCI.
  • virtiofs ha agregado soporte para la opción FUSE_KILLPRIV_V2 para mejorar el rendimiento de los invitados.
  • VNC ha agregado soporte para la transparencia del cursor y soporte para escalar la resolución de la pantalla en virtio-vga, según el tamaño de la ventana.
  • QMP (Protocolo de máquina QEMU) ha agregado soporte para acceso paralelo asíncrono al realizar tareas de respaldo.
  • El emulador USB ha agregado la capacidad de guardar el tráfico generado al trabajar con dispositivos USB en un archivo pcap separado para su posterior inspección en Wireshark.
  • Se agregaron nuevos comandos QMP cargar-instantánea, guardar-instantánea y eliminar-instantánea para administrar instantáneas de qcow2.
  • Las vulnerabilidades CVE-2020-35517 y CVE-2021-20263 se han solucionado en virtiofs. El primer problema permite el acceso al entorno anfitrión desde el sistema invitado mediante la creación de un archivo de dispositivos especiales en el sistema invitado por parte de un usuario privilegiado en un directorio compartido con el entorno anfitrión. El segundo problema es causado por un error en el manejo de atributos extendidos en la opción 'xattrmap' y puede causar que se ignoren los permisos de escritura y que se incrementen los privilegios dentro del sistema invitado.

Fuente: opennet.ru

Añadir un comentario