Lançamento do emulador QEMU 6.0

O lançamento do projeto QEMU 6.0 é apresentado. Como um emulador, o QEMU permite executar um programa criado 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 da execução do código em um ambiente isolado é próximo ao de um sistema de hardware 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 6.0, mais de 3300 alterações foram feitas por 268 desenvolvedores.

Principais melhorias adicionadas no QEMU 6.0:

  • O emulador do controlador NVMe está em conformidade com a especificação NVMe 1.4 e está equipado com suporte experimental para namespaces zoneados, E/S de caminhos múltiplos e criptografia de dados ponta a ponta na unidade.
  • Adicionadas opções experimentais “-machine x-remote” e “-device x-pci-proxy-dev” para mover a emulação de dispositivos para processos externos. Neste modo, somente a emulação do adaptador SCSI lsi53c895 é suportada atualmente.
  • Adicionado suporte experimental para criação de instantâneos de conteúdo de RAM.
  • Adicionado um módulo FUSE para exportar dispositivos de bloco, permitindo montar uma fatia do estado de qualquer dispositivo de bloco usado no sistema convidado. A exportação é realizada através do comando QMP block-export-add ou através da opção “--export” no utilitário qemu-storage-daemon.
  • O emulador ARM adiciona suporte para a arquitetura ARMv8.1-M ‘Helium’ e processadores Cortex-M55, bem como as instruções estendidas ARMv8.4 TTST, SEL2 e DIT. Adicionado suporte para placas ARM mps3-an524 e mps3-an547 também. Emulação de dispositivo adicional foi implementada para placas xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx e sabrelite.
  • Para ARM, em modos de emulação nos níveis de sistema e ambiente de usuário, foi implementado suporte para a extensão ARMv8.5 MTE (MemTag, Memory Tagging Extension), que permite vincular tags a cada operação de alocação de memória e organizar uma verificação de ponteiro quando acessando a memória, que deve estar associada à tag correta. A extensão pode ser usada para bloquear a exploração de vulnerabilidades causadas por acesso a blocos de memória já liberados, buffer overflows, acessos antes da inicialização e uso fora do contexto atual.
  • O emulador de arquitetura 68k adicionou suporte para um novo tipo de máquina emulada “virt”, que utiliza dispositivos virtio para otimizar o desempenho.
  • O emulador x86 adiciona a capacidade de usar a tecnologia AMD SEV-ES (Secure Encrypted Virtualization) para criptografar os registros do processador usados ​​no sistema convidado, tornando o conteúdo dos registros inacessível ao ambiente host, a menos que o sistema convidado conceda explicitamente acesso a eles.
  • O clássico gerador de código TCG (Tiny Code Generator), ao emular sistemas x86, implementa suporte ao mecanismo PKS (Protection Keys Supervisor), que pode ser usado para proteger o acesso a páginas de memória privilegiadas.
  • Um novo tipo de máquinas emuladas “virt” foi adicionado ao emulador de arquitetura MIPS com suporte para processadores chineses Loongson-3.
  • No emulador de arquitetura PowerPC para máquinas emuladas “powernv”, foi adicionado suporte para controladores BMC externos. Para máquinas pseries emuladas, é fornecida notificação de falhas ao tentar remover memória e CPU a quente.
  • Adicionado suporte para emulação de processadores Qualcomm Hexagon com DSP.
  • O clássico gerador de código TCG (Tiny Code Generator) oferece suporte a ambientes host macOS em sistemas com o novo chip Apple M1 ARM.
  • O emulador de arquitetura RISC-V para placas Microchip PolarFire suporta flash QSPI NOR.
  • O emulador Tricore agora suporta o novo modelo de placa TriBoard, que emula o SoC Infineon TC27x.
  • O emulador ACPI fornece a capacidade de atribuir nomes a adaptadores de rede em sistemas convidados que são independentes da ordem em que estão conectados ao barramento PCI.
  • virtiofs adicionou suporte para a opção FUSE_KILLPRIV_V2 para melhorar o desempenho do convidado.
  • O VNC adicionou suporte para transparência do cursor e suporte para dimensionamento da resolução da tela no virtio-vga, com base no tamanho da janela.
  • QMP (QEMU Machine Protocol) adicionou suporte para acesso paralelo assíncrono ao executar tarefas de backup.
  • O emulador USB adicionou a capacidade de salvar o tráfego gerado ao trabalhar com dispositivos USB em um arquivo pcap separado para inspeção posterior no Wireshark.
  • Adicionados novos comandos QMP load-snapshot, save-snapshot e delete-snapshot para gerenciar instantâneos qcow2.
  • As vulnerabilidades CVE-2020-35517 e CVE-2021-20263 foram corrigidas em virtiofs. O primeiro problema permite o acesso ao ambiente host a partir do sistema convidado, criando um arquivo de dispositivos especiais no sistema convidado por um usuário privilegiado em um diretório compartilhado com o ambiente host. O segundo problema é causado por um bug no tratamento de atributos estendidos na opção 'xattrmap' e pode fazer com que as permissões de gravação sejam ignoradas e o escalonamento de privilégios no sistema convidado.

Fonte: opennet.ru

Adicionar um comentário