lanzamiento del proyecto . Como emulador, QEMU permite ejecutar un programa diseñado para una plataforma de hardware en un sistema con una arquitectura completamente diferente, por ejemplo, ejecutar una aplicación para ARM en un PC compatible con x86. En modo de virtualización, el rendimiento de ejecución de código en un entorno aislado se acerca al de un sistema nativo gracias a la ejecución directa de instrucciones en la CPU y la utilización del hipervisor Xen o el módulo KVM.
Inicialmente, el proyecto fue 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, se ha añadido soporte para la emulación completa de 14 arquitecturas de hardware, y el número de dispositivos de hardware emulados ha superado los 400. En la preparación de la versión 5.0, se realizaron más de 2800 cambios por parte de 232 desarrolladores.
Mejoras clave , añadidos en QEMU 5.0:
- La capacidad de montar parte del sistema de archivos del entorno host en la máquina invitada utilizando . La máquina invitada puede montar un directorio marcado para exportación en el lado del sistema host, lo que simplifica significativamente la organización del acceso compartido a directorios en sistemas de virtualización. A diferencia del uso de sistemas de archivos de red, como NFS y virtio-9P, virtiofs permite lograr un rendimiento cercano al de un sistema de archivos local;
- la migración en vivo de datos de procesos externos que utilizan el bus QEMU D-Bus;
- Posibilidad de usar para gestionar la memoria principal del sistema invitado. El backend se especifica mediante la opción «-machine memory-backend»;
- Un nuevo filtro «compress», que se puede usar para crear copias de seguridad comprimidas de imágenes;
- El comando «qemu-img measure» ahora puede trabajar con imágenes LUKS, y el comando «qemu-img convert» ha añadido la opción «—target-is-zero» para omitir la nulificación de la imagen de destino;
- Se ha añadido soporte experimental para el proceso qemu-storage-daemon, que proporciona acceso al nivel de bloque de QEMU y a los comandos QMP, incluyendo la gestión de dispositivos de bloque y un servidor NBD integrado, sin necesidad de iniciar una máquina virtual completa;
- En el emulador de la arquitectura ARM se ha añadido la capacidad de emular la CPU Cortex-M7 y se ha proporcionado soporte para las placas tacoma-bmc, Netduino Plus 2 y Orangepi PC. En las máquinas emuladas ‘virt’ se ha agregado soporte para dispositivos vTPM y virtio-iommu. Se ha declarado obsoleta la posibilidad de utilizar sistemas host AArch32 para ejecutar entornos invitados KVM. Se ha implementado el soporte para emular las siguientes capacidades arquitectónicas:
- ARMv8.1: VHE, VMID16, PAN, PMU
- ARMv8.2: UAO, DCPoP, ATS1E1, TTCNP
- ARMv8.3: RCPC, CCIDX
- ARMv8.4: PMU, RCPC
- En el emulador de la arquitectura HPPA se ha añadido soporte para la consola gráfica utilizando el dispositivo gráfico HP Artist;
- En el emulador de la arquitectura MIPS se ha añadido soporte para la instrucción GINVT (Global Invalidation TLB);
- En el emulador de arquitectura PowerPC para máquinas 'powernv', se ha añadido la emulación de mecanismos de aceleración de hardware KVM para ejecutar sistemas invitados.
KVM con un generador de código clásico TCG (Tiny Code Generator). Se ha añadido soporte para NVDIMM reflejado en archivo para la emulación de memoria persistente. Para las máquinas 'pseries', se eliminó la necesidad de reiniciar para coordinar la operación de los controladores de interrupciones XIVE/XICS en modo 'ic-mode=dual'; - En el emulador de arquitectura RISC-V para las placas 'virt' y 'sifive_u', se ha implementado el soporte de controladores syscon típicos en Linux para el manejo de energía y reinicio. Para la placa 'virt', se ha añadido soporte para Goldfish RTC. Se ha añadido una implementación experimental de extensiones de hipervisor;
- En el emulador de arquitectura s390, se ha añadido soporte para AIS (Adapter Interrupt Suppression) al operar en modo KVM.
Fuente: opennet.ru
