Lançamento do emulador QEMU 4.1

Introduzido liberação do projeto QEMU 4.1. 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 ARM em um PC compatível com x86. No modo de virtualização no QEMU, o desempenho de execução de código em ambiente isolado é próximo ao sistema nativo devido à execução direta de instruções na CPU e ao uso do hipervisor Xen ou módulo KVM.

O projeto foi originalmente criado por Fabrice Bellard para permitir que executáveis ​​Linux construídos para a plataforma x86 rodassem em arquiteturas não x86. Ao longo dos anos de desenvolvimento, o suporte de emulação completo foi adicionado para 14 arquiteturas de hardware, o número de dispositivos de hardware emulados ultrapassou 400. Na preparação para a versão 4.1, mais de 2000 alterações foram feitas por 276 desenvolvedores.

Chave melhoriasadicionado no QEMU 4.1:

  • O suporte para os modelos de CPU Hygon Dhyana e Intel SnowRidge foi adicionado ao emulador de arquitetura x86. Adicionada emulação da extensão RDRAND (gerador de números pseudo-aleatórios de hardware). Sinalizadores adicionados
    md-clear e mds-no para controlar a proteção contra ataques MDS (Amostragem de dados microarquiteturais) em processadores Intel. Adicionada a capacidade de determinar topologias de circuitos integrados usando o sinalizador “-smp ...,dies=”. O versionamento foi implementado para todos os modelos de CPU x86;

  • O driver do bloco SSH foi movido do uso libssh2 em libsh;
  • O driver virtio-gpu (GPU virtual desenvolvido como parte do projeto Virgil) adicionou suporte para mover operações de renderização 2D/3D para um processo vhost-user externo (por exemplo, vhost-user-gpu);
  • O emulador de arquitetura ARM adicionou suporte para a extensão ARMv8.5-RNG para gerar números pseudo-aleatórios. O suporte à emulação de FPU foi implementado para chips da família Cortex-M e os problemas com a emulação de FPU para Cortex-R5F foram resolvidos. Foi proposto um novo sistema para definir opções de construção, projetado no estilo Kconfig. Para SoC Exynos4210, foi adicionado suporte para controladores PL330 DMA;
  • O emulador de arquitetura MIPS melhorou o suporte para instruções MSA ASE ao usar ordem de bytes big-endian e alinhou o tratamento da divisão por zero casos com hardware de referência. O desempenho da emulação de instruções MSA para cálculos inteiros e operações de permutação foi aumentado;
  • O emulador da arquitetura PowerPC agora suporta encaminhamento para GPUs NVIDIA V100/NVLink2 usando VFIO. Para a série pseries, a aceleração da emulação do controlador de interrupção XIVE foi implementada e o suporte para hot plugging de pontes PCI foi adicionado. Foram feitas otimizações na emulação de instruções vetoriais (Altivec/VSX);
  • Um novo modelo de hardware foi adicionado ao emulador da arquitetura RISC-V - “spike”. Adicionado suporte para ISA 1.11.0. A ABI de chamada de sistema de 32 bits foi aprimorada, o tratamento de instruções inválidas foi aprimorado e o depurador integrado foi aprimorado. Adicionado suporte para topologia de CPU na árvore de dispositivos;
  • O emulador da arquitetura s390 adicionou suporte para emular todas as instruções vetoriais do grupo “Vector Facility” e adicionou elementos adicionais para suportar sistemas gen15 (incluindo suporte adicional para o AP Queue Interruption Facility para vfio-ap). Implementado suporte de BIOS para inicialização do ECKD DASD vinculado ao sistema convidado via vfio-ccw;
  • No emulador de arquitetura SPARC para sistemas sun4m, foram resolvidos problemas com o uso do sinalizador “-vga none” para OpenBIOS;
  • O emulador de processadores da família Tensilica Xtensa inclui opções de MPU (unidade de proteção de memória) e acesso exclusivo;
  • A opção “-salvage” foi adicionada ao comando “qemu-img convert” para desabilitar o travamento do processo de conversão de imagem em caso de erros de E/S (por exemplo, pode ser usado para restaurar arquivos qcow2 parcialmente danificados). Em um time
    “qemu-img rebase” funciona quando um arquivo de backup ainda não foi criado para o arquivo de entrada;

  • Adicionada a capacidade de redirecionar a saída organizada usando a tecnologia "semihosting" (permite que o dispositivo emulado use stdout, stderr e stdin para criar arquivos no lado do host) para o backend chardev ("-semihosting-config enable=on,target=native ,chardev=[ID]");
  • Adicionado suporte para o subformato seSparse em modo somente leitura no driver de bloco VMDK;
  • Adicionado suporte para o controlador SiFive GPIO no driver de emulação GPIO.

Fonte: opennet.ru

Adicionar um comentário