Foi lançado o projeto QEMU 7.0. Como emulador, o QEMU permite executar um programa compilado para uma plataforma de hardware em um sistema com uma arquitetura totalmente diferente, por exemplo, executar um aplicativo para ARM em um PC compatível com x86. No modo de virtualização no QEMU, o desempenho de execução de código em um ambiente isolado é próximo ao de um sistema físico, graças à execução direta das instruções na CPU e ao uso do hipervisor Xen ou do módulo KVM.
Inicialmente, o projeto foi criado por Fabrice Bellard com o objetivo de possibilitar a execução de arquivos executáveis Linux compilados para a arquitetura x86 em arquiteturas diferentes da x86. Ao longo dos anos de desenvolvimento, foi adicionada suporte para a emulação completa de 14 arquiteturas de hardware, e o número de dispositivos de hardware emulados ultrapassou 400. Com a preparação da versão 7.0, mais de 2500 mudanças foram feitas por 225 desenvolvedores.
Principais melhorias adicionadas no QEMU 7.0:
- O emulador da arquitetura x86 passou a suportar o conjunto de instruções Intel AMX (Advanced Matrix Extensions), implementado nos processadores servidores Intel Xeon Scalable. O AMX oferece novos registros configuráveis TMM 'TILE' e instruções para manipulação de dados nesses registros, como TMUL (Tile matrix MULtiply) para multiplicação de matrizes.
- Possibilitada a gravação de eventos ACPI do sistema convidado através da interface ACPI ERST.
- No módulo virtiofs, utilizado para passar parte do sistema de arquivos do ambiente host para o sistema convidado, foi melhorado o suporte para rótulos de segurança (security label). Uma vulnerabilidade CVE-2022-0358 que permitia elevar privilégios no sistema através da criação de arquivos executáveis em diretórios passados através do virtiofs e pertencentes a outro grupo, com a flag SGID, foi corrigida.
- A flexibilidade na criação de backups de imagens de sistema ativas em execução foi aumentada (um snapshot é criado, após o qual para atualizar o estado do snapshot, é aplicado um filtro copy-before-write (CBW) que copia dados de áreas onde o sistema convidado está gravando). Foi adicionada a suporte para imagens em formatos diferentes de qcow2. Foi possibilitado o acesso ao snapshot com backup não diretamente, mas através do driver de dispositivo de bloco snapshot-access. As capacidades de gerenciamento do filtro CBW foram expandidas, por exemplo, permitindo a exclusão de certos mapeamentos do processamento.
- No emulador ARM para máquinas 'virt' foi adicionado suporte ao virtio-mem-pci, definições de topologia de CPU para o sistema anfitrião e habilitação do PAuth ao usar o hypervisor com acelerador hvf. KVM No emulador de placas 'xlnx-versal-virt' foi adicionado suporte ao PMC SLCR e à emulação do controlador de memória Flash OSPI. Para as máquinas emuladas 'xlnx-zynqmp', foram adicionados novos modelos de controle CRF e APU. A emulação das extensões FEAT_LVA2, FEAT_LVA (Large Virtual Address space) e FEAT_LPA (Large Physical Address space) foi incorporada.
- No gerador de código clássico TCG (Tiny Code Generator), o suporte a hosts com CPU ARMv4 e ARMv5 foi descontinuado, pois faltam suporte a acesso de memória não alinhado e memória RAM suficiente para executar o QEMU.
- No emulador da arquitetura RISC-V, foi adicionado suporte ao hypervisor KVM e implementadas as extensões vetoriais Vector 1.0, assim como instruções Zve64f, Zve32f, Zfhmin, Zfh, zfinx, zdinx e zhinx{min}. Para as máquinas emuladas 'spike', foi adicionado suporte ao carregamento de arquivos binários OpenSBI (RISC-V Supervisor Binary Interface). Para as máquinas emuladas 'virt', foi habilitada a possibilidade de utilizar até 32 núcleos de processador e suporte a AIA.
- No emulador da arquitetura HPPA, foi possibilitado o uso de até 16 vCPUs e melhorado o driver gráfico para ambientes de usuário HP-UX VDE/CDE. Foi adicionada a possibilidade de alterar a ordem de inicialização para dispositivos SCSI.
- No emulador da arquitetura OpenRISC para placas 'sim', foi adicionado suporte ao uso de até 4 núcleos de CPU, carregamento de uma imagem externa initrd e geração automática da árvore de dispositivos para o kernel carregado.
- No emulador da arquitetura PowerPC para as máquinas emuladas 'pseries', foi implementada a possibilidade de iniciar sistemas convidados sob a gestão de um hypervisor aninhado KVM. Foi adicionado suporte ao dispositivo spapr-nvdimm. Para as máquinas emuladas 'powernv', foi adicionado suporte ao controlador de interrupções XIVE2 e aos controladores PHB5, além de melhorias no suporte ao XIVE e PHB 3/4.
- No emulador da arquitetura s390x, foi adicionado suporte às extensões z15 (Miscellaneous-Instruction-Extensions Facility 3).
Fonte: opennet.ru
