Foi lançado o projeto QEMU 9.2. Como emulador, o QEMU permite executar um programa compilado para uma plataforma de hardware em um sistema com uma arquitetura completamente diferente, por exemplo, executar um aplicativo para ARM em um PC compatível com x86. No modo de virtualização, o desempenho da execução de código em um ambiente isolado é próximo ao de um sistema físico, graças à execução direta de instruções no CPU e ao uso do hipervisor Xen ou do módulo KVM no Linux, ou do módulo NVMM no NetBSD.
O projeto foi inicialmente criado por Fabrice Bellard com o objetivo de possibilitar a execução de arquivos executáveis Linux compilados para a plataforma x86 em arquiteturas diferentes da x86. Ao longo dos anos de desenvolvimento, foi adicionada a suporte para emulação completa de 14 arquiteturas de hardware, com o número de dispositivos de hardware emulados ultrapassando 400. Na preparação da versão 9.2, foram feitas mais de 1.700 alterações por 209 desenvolvedores.
Melhorias chave adicionadas no QEMU 9.2:
- Foi adicionada a suporte experimental para a criação de modelos de dispositivos escritos na linguagem Rust. Ao compilar o QEMU com suporte a Rust, uma implementação alternativa do driver PL011 UART, escrita em Rust, é utilizada por padrão, mas ainda não é recomendada para uso generalizado.
Atualmente, o suporte a Rust no QEMU está desativado por padrão e é ativado durante a compilação ao especificar a opção "--enable-rust" ao executar o script configure. Para compilar com Rust, são necessárias, no mínimo, as versões rustc 1.63.0 e bindgen 0.60.0 (por exemplo, no Debian 12, será necessário instalar uma versão mais recente do Rust separadamente). No futuro, o compilador Rust e o gerador de ligações bindgen estão planejados para se tornarem dependências de compilação obrigatórias.
Entre os planos relacionados à promoção do Rust no QEMU, pode-se destacar a conclusão do driver HPET (High Precision Event Timer) e do driver para dispositivos de bloco escritos em Rust, a continuação do desenvolvimento de interfaces para uso do Rust em vários componentes do QEMU (por exemplo, em drivers de dispositivos de bloco, timers e GPIO), e a reescrita em Rust de sistemas críticos em termos de segurança, como o virtio.
- O dispositivo VirtIO-GPU, que fornece suporte para uma GPU virtual, agora conta com suporte a aceleração 3D utilizando a API gráfica Vulkan, implementada através do driver Vulkan Venus incluído no Mesa, que permite fornecer à máquina virtual uma GPU virtual para renderização 3D sem abrir acesso exclusivo direto à GPU física. Para funcionar, é necessário ter a biblioteca virglrenderer no lado do sistema host e o driver Mesa Venus no lado da máquina virtual. Há uma instrução disponível para configurar o suporte à Vulkan no QEMU.
- A ferramenta de migração de máquinas virtuais agora oferece suporte à aceleração de operações de compressão de fluxos de dados transmitidos simultaneamente, utilizando a biblioteca QATzip, que emprega o acelerador QAT (QuickAssist Technology) incorporado nos processadores Intel, oferecendo recursos para acelerar cálculos relacionados à compressão e criptografia.
- Foi adicionado suporte para o algoritmo de hash SHA-384 ao backend criptográfico baseado em GLib.
- O emulador da arquitetura ARM agora suporta as extensões de processador FEAT_EBF16 e FEAT_CMOW, além de extensões para segurança utilizadas em placas xilinx-zynq-a9. Ao utilizar o componente HVF, que utiliza a framework Hypervisor.framework para acelerar a execução de máquinas virtuais em computadores ARM da Apple, é possível suportar mais de 64 GB de memória. Para os sistemas emulados sbsa-ref e virt, foi implementado o suporte à tradução de endereços em duas etapas no SMMU (System Memory Management Unit). O suporte a tipos de hardware emulado obsoletos como akita, borzoi, cheetah, connex, mainstone, n800, n810, spitz, terrier, tosa, verdex e z2 foi descontinuado.
- O emulador da arquitetura x86 agora suporta um novo tipo de configuração de hardware — nitro-enclave, que emula o ambiente AWS Nitro Enclave e é capaz de carregar imagens de sistema no formato Enclave Image Format.
- No emulador da arquitetura x86 para hipervisor KVM Foi implementada a possibilidade de ativar o suporte para o conjunto de instruções AVX10, bem como versões específicas do AVX10 — avx10-128, avx10-256 e avx10-512.
- O emulador da arquitetura RISC-V agora suporta extensões do conjunto de instruções Svvptc, Bitmanip (Manipulação de Bits) e CFI (Integridade do Fluxo de Controle), utilizados em placas OpenTitan. O tipo de sistemas emulados "virt" agora tem suporte para IOMMU. O desempenho das instruções ld e st foi melhorado.
- No emulador da arquitetura HPPA, o firmware SeaBIOS-hppa foi atualizado para a versão 17.
- No emulador da arquitetura s390x, adicionada a capacidade de inicializar a partir de outros dispositivos, caso não seja possível inicializar a partir do dispositivo especificado.
Fonte: opennet.ru
