Lançamento do emulador QEMU 4.0

formado liberação do projeto QEMU 4.0. 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.0, mais de 3100 alterações foram feitas por 220 desenvolvedores.

Chave melhoriasadicionado no QEMU 4.0:

  • O suporte para extensões de instrução ARMv8+ foi adicionado ao emulador de arquitetura ARM: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT e BTI. Adicionado suporte para emulação de placas Musca e MPS2. Emulação ARM PMU (Power Management Unit) aprimorada. Para a plataforma virt adicionada a capacidade de usar mais de 255 GB de RAM e suporte para imagens u-boot com o tipo “noload”;

  • No emulador de arquitetura x86 no mecanismo de aceleração de virtualização HAX (Intel Hardware Accelerated Execution) adicionou suporte para hosts compatíveis com POSIX, como Linux e NetBSD (anteriormente, apenas a plataforma Darwin era suportada). No emulador de chipset Q35 (ICH9) para as principais portas PCIe, a velocidade máxima (16GT/s) e o número de linhas de conexão (x32) definidos na especificação PCIe 4.0 agora podem ser declarados opcionalmente (para garantir a compatibilidade, 2.5GT é instalado por padrão para tipos mais antigos de máquinas QEMU /s e x1). É possível carregar imagens Xen PVH com a opção “-kernel”;
  • O emulador de arquitetura MIPS adicionou suporte para emulação multithread usando o gerador de código clássico TCG (Tiny Code Generator). Também foi adicionado suporte para emulação de CPU I7200 (nanoMIPS32 ISA) e I6500 (MIPS64R6 ISA), capacidade de processar solicitações do tipo CPU usando QMP (QEMU Management Protocol), adicionado suporte para registros de configuração SAARI e SAAR. Melhor desempenho de máquinas virtuais com o tipo Fulong 2E. Implementação atualizada da Unidade de Comunicação Interthread;
  • No emulador de arquitetura PowerPC, foi adicionado suporte para emular o controlador de interrupção XIVE, o suporte para POWER9 foi expandido e, para a série P, foi adicionada a capacidade de pontes de host PCI hot plug (PHB, ponte de host PCI). A proteção contra ataques Spectre e Meltdown está habilitada por padrão;
  • Suporte para emulação PCI e USB foi adicionado ao emulador de arquitetura RISC-V. O servidor de depuração integrado (gdbserver) agora suporta a especificação de listas de registros em arquivos XML. Adicionado suporte para campos mstatus TSR, TW e TVM;
  • O emulador da arquitetura s390 adicionou suporte para o modelo de CPU z14 GA 2, bem como suporte para emular extensões de instrução para operações de ponto flutuante e vetor. A capacidade de dispositivos hot-plug foi adicionada ao vfio-ap;
  • O emulador de processador da família Tensilica Xtensa melhorou o suporte SMP para Linux e adicionou suporte para FLIX (extensão de instruções de comprimento flexível);
  • A opção '-display Spice-app' foi adicionada à interface gráfica para configurar e lançar uma versão do cliente de acesso remoto Spice com design semelhante à interface QEMU GTK;
  • Adicionado suporte para controle de acesso usando as opções tls-authz/sasl-authz à implementação do servidor VNC;
  • QMP (QEMU Management Protocol) adicionou suporte para execução de comandos centralizados/externos (fora de banda) e implementou comandos adicionais para trabalhar com dispositivos de bloco;
  • Uma implementação da interface EDID foi adicionada ao VFIO para mdevs suportados (Intel vGPUs), permitindo alterar a resolução da tela usando as opções xres e yres;
  • Um novo dispositivo 'xen-disk' foi adicionado para o Xen, que pode criar de forma independente um back-end de disco para o Xen PV (sem acessar o xenstore). O desempenho do back-end do disco Xen PV foi aumentado e a capacidade de alterar o tamanho do disco foi adicionada;
  • Os recursos de diagnóstico e rastreamento foram expandidos em dispositivos de bloco de rede e a compatibilidade do cliente com implementações problemáticas de servidores NBD foi melhorada. Adicionadas opções “--bitmap”, “--list” e “--tls-authz” ao qemu-nbd;
  • Adicionado suporte para modo PCI IDE ao dispositivo IDE/via emulado;
  • Adicionado suporte para usar o algoritmo lzfse para compactar imagens dmg. Para o formato qcow2, foi adicionado suporte para conexão de arquivos de dados externos. As operações de descompactação do qcow2 são movidas para um thread separado. Adicionado suporte para a operação “blockdev-create” em imagens vmdk;
  • O dispositivo de bloco virtio-blk adicionou suporte para operações DISCARD (informando sobre a liberação de blocos) e WRITE_ZEROES (zerando um intervalo de blocos lógicos);
  • O dispositivo pvrdma suporta serviços de datagrama de gerenciamento RDMA (MAD);
  • Contribuído mudanças, violando a compatibilidade com versões anteriores. Por exemplo, em vez da opção "handle" em "-fsdev" e "-virtfs", você deve usar as opções "local" ou "proxy". As opções “-virtioconsole” (substituída por “-device virtconsole”), “-no-frame”, “-clock”, “-enable-hax” (substituída por “-accel hax”) foram removidas. Dispositivo "ivshmem" removido (deve usar "ivshmem-doorbell" e "ivshmem-plain"). O suporte para construção com SDL1.2 foi descontinuado (você precisa usar SDL2).

Fonte: opennet.ru

Adicionar um comentário