
O QEMU 10.1 já está disponível e traz diversas mudanças importantes tanto para desenvolvedores quanto para quem implementa máquinas virtuais em larga escala. Entre as mais notáveis estão melhorias de segurança, migrações em tempo real, suporte a arquiteturas e aprimoramentos de dispositivos , portanto, vale a pena conferir mais detalhes.
Antes de prosseguirmos, um ponto importante para evitar confusões: o QEMU utiliza numeração baseada em tempo. Isso significa que quanto maior o número da versão, mais significativas são as mudanças, mas não indica automaticamente que a mudança será inevitável. A política do projeto permite a introdução de alterações incompatíveis após um período de descontinuação com avisos em pelo menos duas versões anteriores , portanto, não presuma que uma mudança para uma versão principal seja sinônimo de uma revolução.
Disponibilidade, contexto e filosofia do QEMU 10.1
O projeto anunciou a versão 10.1.0 em 26 de agosto de 2025, com mais de 2700 commits assinados por 226 autores. Você pode baixar o arquivo tar.gz do site oficial e consultar o changelog completo para obter todos os detalhes . Como sempre, um enorme agradecimento a todos que contribuem com código, testes, CI/CD, documentação e relatórios de bugs.
Em consonância com a filosofia do QEMU, há diversas menções a recursos removidos e opções obsoletas. Se você depende de alguma versão mais antiga, consulte a seção "Recursos removidos" e o capítulo "Recursos obsoletos" do Guia do Usuário de Emulação de Sistema , onde também são recomendadas alternativas.
Destaques em resumo
Para aguçar seu apetite, o resumo rápido da versão 10.1 aborda segurança, desempenho e gerenciamento avançado. Há suporte inicial ao VFIO para convidados confidenciais, melhorias significativas na migração e novos recursos para agentes convidados.
- VFIO e confidencialidade: Suporte inicial para acessar/mapear memória de convidado sensível ao usar guest_memfd, habilitando passagem em SEV-SNP/TDX.
- Migração ao vivo: multifd acelera otimizações pós-cópia, pré-cópia e suporte RDMA sobre IPv6.
- Agente de Convidados: : novo comando 'guest-get-load' para consultar o carregamento no Windows.
- Arquiteturas: Novos recursos ARM (FEAT_SME2, SME2p1, SVE2p1 e mais), suporte RISC-V expandido e integração KVM para TDX em x86.
Arquiteturas e máquinas: o que muda exatamente
O QEMU 10.1 aprimora e expande a emulação e a virtualização em diversas famílias de CPUs. De ARM a RISC-V e x86, incluindo LoongArch, HPPA e Microblaze, há melhorias específicas que merecem ser detalhadas.
ARM
Na arquitetura ARM, o QEMU 10.1 adiciona um conjunto de recursos arquitetônicos de CPU: FEAT_SME2, FEAT_SME2p1, FEAT_SME_B16B16, FEAT_SME_F16F16, FEAT_SVE_B16B16 e FEAT_SVE2p1 , reforçando o suporte ao processamento vetorial e matricial.
Em relação ao hardware, há várias novas adições significativas. A placa 'max78000fthr' (Analog Devices max78000 Cortex-M4) foi adicionada , juntamente com um novo hardware multi-SoC 'ast2700fc', 'catalina-bmc' (Meta) e 'gb200-bmc' (NVIDIA); e o suporte de firmware foi adicionado à placa de avaliação AST2700.
A popular placa 'virt' também está recebendo uma atualização: agora ela suporta CXL, hotplug PCI via ACPI e, sob o kernel host mais recente, virtualização aninhada com KVM habilitando 'virtualization=on' . Observação: os modelos 'highbank' e 'midway' estão obsoletos, e a descontinuação do modelo 'ast2700a0-evb' foi anunciada.
RISC-V
O ecossistema RISC-V recebe uma série de atualizações referentes a ISAs, máquinas e correções de bugs. Foi adicionado suporte para a extensão de busca atômica (Ziccif), o 'Svrsw60t59b' foi incluído e os casos de limite de instruções vetoriais foram refinados.
- ISA e extensões: pseudo-instrução 'tail' para chamadas enfileiradas, remoção de propriedades de CPU com 'Z' maiúsculo, max_satp_mode do host, configuração e extensão da contagem de regiões PMP (até 64), opção para definir 'vill' para uso reservado de vsetvli.
- Maquinas: Suporte RIMT em ACPI 'virt', melhorias de personalização no Microchip PolarFire SoC e nova CPU e plataforma Kunminghu; Atualizar versões FADT e MADT nas tabelas ACPI.
- Correções e diversos: não permitir que PMP RLB salte privilégios, correções de CSR em KVM, sstc, ordem zama16b, tratamento de perfil, correções de exceção/mascaramento (MEPC/SEPC para IALIGN), correção de wraparound em intervalos PMP 0, correções de loop de tradução infinito big endian e correção de falha de migração quando AIA é definido como aplic-imsic.
Além disso, são adicionadas 'funcionalidades nomeadas' ausentes, correções PPN são feitas no log de resposta da tradução e o atraso infinito na transmissão assíncrona é evitado , melhorando a estabilidade em cenários extremos.
x86 (KVM e TCG)
Em x86, há dois detalhes importantes que os administradores irão apreciar. Os bits CPUID específicos do fornecedor são omitidos quando o fornecedor da CPU convidada não os define , evitando confusão e criação artificial de perfis.
No lado do KVM, foi adicionado suporte para TDX (requer Linux 6.16 ou posterior) , e é possível iniciar máquinas TDX ou SEV-SNP a partir de um arquivo IGVM, uma etapa importante para fluxos de provisionamento seguros.
No tradutor TCG, o bit de armadilha TSS é suportado , melhorando a fidelidade de certos caminhos de execução sem aceleração de hardware.
LoongArch
O LoongArch avança com suporte a irqchip no kernel , corrige problemas de big endianness com a tabela MCFG, resolve falhas de inicialização quando 'smp cpu' < 'smp maxcpus' no KVM e aprimora detalhes de instruções como VLDI. O convidado KVM também é informado e uma verificação para 'fcond' é adicionada.
Microblaze
Quem trabalha com Microblaze tem mais controle: a máquina 'petalogix_s3adsp1800' permite alternar a ordem dos bytes (endianness) através da propriedade 'endianness' . As variantes big-endian de ml605 e xlnx-zynqmp-pmu estão sendo removidas, e esses modelos estão sendo convertidos para little-endian no qemu-system-microblaze. Além disso, o binário 'qemu-system-microblazeel' está sendo descontinuado e será removido futuramente.
MIPS
Existe uma correção muito específica, mas bastante apreciada: ela resolve a tela azul da morte (BSOD) ao iniciar o Windows NT MIPS na máquina magnum (problema nº 2464) , útil para quem pesquisa ou faz manutenção de softwares antigos.
HPPA
A emulação de exceções de ponto flutuante (FPE) foi aprimorada nos modos de usuário e sistema, reforçando a precisão dessa arquitetura consagrada.
Outras arquiteturas
Além das seções mencionadas acima, existem capítulos para 68k, Alpha, AVR, Hexagon, OpenRISC, PowerPC, Renesas RX/SH, s390x, SPARC, Tricore e Xtensa. Embora não haja grandes atualizações listadas para todos eles na versão 10.1, a manutenção e os ajustes continuam , com atenção especial ao s390x nas versões recentes devido às novas definições de CPU e melhorias na memória virtio.
Dispositivos, E/S e subsistemas
O QEMU 10.1 traz melhorias significativas para VFIO, redes, gráficos, áudio e E/S. Essas mudanças impactam diretamente o desempenho, a compatibilidade e as operações diárias.
VFIO
O suporte inicial para backends de memória guest-memfd foi introduzido em guests confidenciais (CoCo) , a documentação de passagem IGD foi atualizada e uma falha de camada 2 em máquinas pseries foi corrigida.
A OpRegion também é habilitada automaticamente para passagem IGD , sua detecção foi aprimorada e o QEMU agora pode relatar alterações de configuração do vfio-ap.
Além disso, estão incluídos um cliente vfio-user , suporte a atualização em tempo real (CPR) , migração VFIO com multifd em aarch64 e uma propriedade para impor o código de classe PCI de um dispositivo . Finalmente, o suporte a VFIO em VMs TDX e SNP foi oficialmente anunciado.
Redes e armazenamento
Em dispositivos de rede, existe um novo backend chamado 'passt' , projetado para cenários de integração e sandbox. Além disso, ao usar NBD em sockets Unix, o QEMU tenta negociar buffers maiores para melhorar drasticamente o desempenho.
PCI/PCIe e virtio
A placa ARM 'virt' adiciona hotplug PCI via ACPI e acpi-index para dispositivos PCI , habilitando a opção global '-global acpi-ged.acpi-pci-hotplug-with-bridge-support=on'.
Em sistemas gráficos virtualizados, o virtio-gpu permite injetar o nome EDID , o que é útil para testes de compatibilidade e automação.
9pfs e outros backends
No 9pfs, o algoritmo de recuperação de descritores de arquivo quando próximo ao limite do sistema foi corrigido , assim como vários casos de uso após desvinculação (operações após a exclusão do arquivo) que poderiam causar erros sutis.
em áudio
O subsistema de áudio ajusta os valores padrão e a compatibilidade: no ALSA, 'try-poll' agora é falso por padrão e conversores de endianness foram adicionados para amostras de ponto flutuante.
Interface gráfica e agentes
Na interface gráfica, há muito o que analisar: o spice/dbus suporta dmabuf multiplano e gl=on também pode ser ativado com clientes remotos/não locais.
O agente vdagent adiciona suporte à migração , o GTK aprimora o gerenciamento de escala e adiciona as opções 'keep-aspect-ratio' e 'scale'.
No VNC, os problemas de atualização de codificação são corrigidos quando o cliente e o servidor diferem na ordem dos bytes (endianness), tanto em codificações não-compactas quanto em 8/16 bpp; além disso, a pausa na tela após a migração foi corrigida.
E/S e depuração
Na camada de E/S, muitos backends TCP agora permitem configurar parâmetros de keepalive TCP , o que é muito útil em ambientes com firewalls agressivos ou NAT.
O GDBstub adiciona suporte ao qGDBServerVersion usado por clientes que não são GDB, melhorando a interoperabilidade.
Os plugins TCG estão recebendo melhorias: o plugin 'ips' suporta escalonamento configurável e instruções por quantum ; também há novas funções para escrever logs , escrever em endereços virtuais (com cautela) e ler/escrever endereços de hardware . Um plugin de teste 'patcher' está incluído, e os protocolos sparc64 e alpha expõem detalhes de log para plugins.
Migração ao vivo e tarefas de bloco
A versão 10.1 aprimora a mobilidade de máquinas virtuais. A migração RDMA agora suporta IPv6 e a pós-cópia foi otimizada para acessos sequenciais (casos típicos como streaming de vídeo).
Ótima notícia: agora é possível habilitar o multifd e o postcopy simultaneamente (o multifd está ativo durante o precopy). A migração VFIO com multifd quando o TCP zerocopy está ativo também foi corrigida, e o período de inatividade durante o precopy foi reduzido ao evitar comandos LOG_CLEAR desnecessários.
No QMP, o blockdev-mirror introduz o sinalizador booleano 'target-is-zero' para otimizar os espelhamentos para destinos que já leem zero; além disso, mesmo sem esse sinalizador, menos trabalho é feito em blocos de origem que leem zero. O blockdev-backup adiciona a opção 'on-cbw-error' para determinar o comportamento em caso de erros de E/S durante operações de cópia antes da gravação.
Em tarefas em bloco, o commit de blocos inativos é otimizado para manter o espaço de reserva; e os espelhamentos/backups herdam as melhorias anteriores para blocos zerados e novas opções.
Agente de Convidados
O agente convidado do QEMU cresce no Windows: o 'guest-get-load' foi implementado para consultar a carga do sistema convidado.
O Windows também adiciona uma nova tentativa ao cancelar o registro do provedor VSS e propaga o erro de instalação do provedor VSS para o instalador MSI, facilitando o diagnóstico.
Modo de usuário e TCG
Na emulação em modo de usuário, há pequenas atualizações na documentação esclarecendo as limitações; elas abordam as áreas de sinal, tempo de execução e binfmt_misc, bem como os alvos alpha, arm/aarch64, HPPA, LoongArch, PowerPC, s390 e x86.
Na TCG, o trabalho continua no suporte a LoongArch, RISC-V e Gravação/Reprodução , embora sem quaisquer alterações no título além do já mencionado recurso de trapaça TSS.
Compilação, dependências e plataformas
Durante o processo de compilação, a documentação é atualizada com exemplos b4 e todos os submódulos edk2 agora estão incluídos no arquivo tarball do firmware.
Em relação ao Rust, a versão mínima suportada agora é a 1.77 . No Debian Bookworm, está disponível no pacote rustc-web, exceto no mips64el (que requer o Debian Trixie ou uma versão mais recente). No Ubuntu 22.04 e 24.04, o pacote rust-1.77 é utilizado configurando as variáveis RUSTC/RUSTDOC para /usr/bin/rustc-1.77 e /usr/bin/rustdoc-1.77, respectivamente.
O suporte a Rust permanece experimental e instável , e não é recomendado para nada além de desenvolvimento. Com o Rust habilitado, o QEMU requer o Meson 1.8.1 . Um script ('scripts/get-wraps-from-cargo-registry.py') está incluído para preencher 'subprojects/' a partir de um registro local (por exemplo, /usr/share/cargo/registry).
Nas plataformas host, o Debian Bullseye não é mais suportado e o Ninja 1.9 passa a ser um requisito (ele já estava presente em todos os sistemas suportados pelo QEMU 10.0). O suporte experimental para compilação em WASM com Emscripten também está incluído.
Não há novidades específicas sobre o Windows nesta versão, além do que já foi mencionado sobre o agente convidado. O roteiro da versão 10.1 está na página Planning/10.1, caso queira acompanhar os detalhes.
Se você estava esperando o momento certo para atualizar, a combinação do suporte a máquinas virtuais confidenciais (TDX/SEV-SNP com IGVM e guest_memfd), migrações mais rápidas (multifd + postcopy, RDMA IPv6) e melhorias em todas as arquiteturas e subsistemas fazem do QEMU 10.1 uma versão muito completa. Com desempenho prático aprimorado, melhores ferramentas de gerenciamento e uma base tecnológica em constante evolução, a atualização vale muito a pena.
