QEMU 9.1

QEMU 9.1 lançado com novas melhorias para virtualização

O QEMU 9.1.0 traz mais de 2.800 alterações, melhorando a emulação e virtualização com novos recursos para arquiteturas ARM, RISC-V, x86 e SPARC, além de correções de vulnerabilidades e otimizações no desempenho.

logo QEMU

O QEMU 9.1.0 foi oficialmente lançado em 5 de setembro de 2024, trazendo diversas melhorias significativas para emulação e virtualização de plataformas de hardware. O QEMU permite executar aplicativos projetados para uma arquitetura de hardware em sistemas com arquiteturas completamente diferentes, como rodar um programa ARM em um PC com processador x86. Com suporte a hipervisores como Xen, KVM no Linux e NVMM no NetBSD, o QEMU oferece desempenho próximo ao de hardware real em ambientes virtuais.

História e evolução do QEMU

Inicialmente desenvolvido por Fabrice Bellard, o QEMU começou como uma ferramenta para rodar programas Linux compilados para x86 em sistemas com arquiteturas não-x86. Desde então, o projeto evoluiu, incorporando emulação para mais de 14 arquiteturas de hardware e mais de 400 dispositivos. Com a versão 9.1, o projeto conta com mais de 2.800 alterações realizadas por 263 desenvolvedores, destacando a contribuição ativa da comunidade.

Principais novidades do QEMU 9.1.0

A nova versão apresenta um conjunto robusto de melhorias, focadas em otimizar tanto a emulação quanto a virtualização:

  • Guest Migration Toolkit: Suporte para a aceleração da compactação de dados com tecnologias como IAA (Intel In-Memory Analytics Accelerator) e UADK (User Space Accelerator Development Kit). Também houve aprimoramento na recuperação de falhas de migração em modo pós-cópia.
  • Virtio: O mecanismo Virtio, que facilita a comunicação entre o sistema host e os convidados, recebeu a função VIRTIO_F_NOTIFICATION_DATA, permitindo a transmissão de dados adicionais junto com notificações, otimizando o desempenho e facilitando o envio de dados de depuração.
  • Agente convidado: Foram adicionados os comandos guest-network-get-route para sistemas Linux e guest-ssh-* para Windows, permitindo maior controle sobre o comportamento da rede e conexões SSH. A interface de linha de comando também recebeu novas opções para configurar comandos permitidos e bloqueados.

Melhoria nas arquiteturas suportadas

A versão 9.1.0 aprimora a compatibilidade com diversas arquiteturas de hardware, trazendo novos recursos e suporte estendido:

  • ARM: Implementação de suporte para extensões EAT_NMI, FEAT_CSV2_3 e FEAT_ETS2. A emulação da unidade SMMUv3 foi expandida para suportar páginas de memória aninhadas e de dois níveis, com melhorias também para placas Xilinx Zynq.
  • LoongArch: Adição de suporte para até 256 CPUs com a extensão extioi e melhorias no carregamento de imagens de kernel no formato ELF.
  • RISC-V: Novas extensões de processador como Zve32x, Zve64x e outras foram incluídas, além de suporte à versão 1.13 da Especificação de Instruções Privilegiadas.
  • SPARC: Suporte para extensões de processador FMAF, IMA e VIS3/4.
  • x86: Suporte à extensão AMD SEV-SNP para operações seguras com páginas de memória aninhadas, além da adição de perfis de emulação para CPUs baseadas nas microarquiteturas Icelake-Server-v7, SapphireRapids-v3 e SierraForest.

Correções de segurança e vulnerabilidades

Uma vulnerabilidade crítica (CVE-2024-7409) foi corrigida no servidor NBD, que poderia causar falhas no QEMU durante a execução do comando nbd-server-stop, mesmo sem a presença de chaves TLS no cliente. Para mais detalhes do lançamento leia o log de mudanças.