Lanzamento do emulador QEMU 6.0

Preséntase a versión do proxecto QEMU 6.0. Como emulador, QEMU permítelle executar un programa construído para unha plataforma de hardware nun sistema cunha arquitectura completamente diferente, por exemplo, executar unha aplicación ARM nun PC compatible con x86. No modo de virtualización en QEMU, o rendemento da execución de código nun ambiente illado é próximo a un sistema de hardware debido á execución directa de instrucións na CPU e ao uso do hipervisor Xen ou módulo KVM.

O proxecto foi creado orixinalmente por Fabrice Bellard para permitir que os executables de Linux construídos para a plataforma x86 se executen en arquitecturas non x86. Ao longo dos anos de desenvolvemento, engadiuse soporte completo de emulación para 14 arquitecturas de hardware, o número de dispositivos de hardware emulados superou os 400. En preparación para a versión 6.0, fixéronse máis de 3300 cambios de 268 desenvolvedores.

Melloras clave engadidas en QEMU 6.0:

  • O emulador do controlador NVMe cumpre coa especificación NVMe 1.4 e está equipado con soporte experimental para espazos de nomes por zonas, E/S multirutas e cifrado de datos de extremo a extremo na unidade.
  • Engadíronse opcións experimentais "-machine x-remote" e "-device x-pci-proxy-dev" para mover a emulación do dispositivo a procesos externos. Neste modo, actualmente só se admite a emulación do adaptador SCSI lsi53c895.
  • Engadiuse soporte experimental para crear instantáneas de contidos da RAM.
  • Engadiuse un módulo FUSE para exportar dispositivos de bloque, o que lle permite montar unha porción do estado de calquera dispositivo de bloque utilizado no sistema convidado. A exportación realízase mediante o comando QMP block-export-add ou a través da opción "--export" na utilidade qemu-storage-daemon.
  • O emulador ARM engade soporte para a arquitectura ARMv8.1-M "Helio" e os procesadores Cortex-M55, así como as instrucións ARMv8.4 TTST, SEL2 e DIT estendidas. Engadiuse tamén soporte para placas ARM mps3-an524 e mps3-an547. Implementouse unha emulación de dispositivo adicional para placas xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx e sabrelite.
  • Para ARM, nos modos de emulación a nivel de sistema e ambiente de usuario, implementouse a compatibilidade coa extensión ARMv8.5 MTE (MemTag, Memory Tagging Extension), que lle permite vincular etiquetas a cada operación de asignación de memoria e organizar unha comprobación de punteiros cando acceder á memoria, que debe estar asociada coa etiqueta correcta . A extensión pódese usar para bloquear a explotación de vulnerabilidades causadas polo acceso a bloques de memoria xa liberados, desbordamentos de búfer, accesos antes da inicialización e uso fóra do contexto actual.
  • O emulador de arquitectura 68k engadiu soporte para un novo tipo de máquina emulada "virt", que usa dispositivos virtio para optimizar o rendemento.
  • O emulador x86 engade a posibilidade de usar a tecnoloxía AMD SEV-ES (Secure Encrypted Virtualization) para cifrar os rexistros do procesador utilizados no sistema convidado, facendo que o contido dos rexistros sexa inaccesible para o ambiente host a menos que o sistema convidado conceda acceso a eles de forma explícita.
  • O clásico xerador de código TCG (Tiny Code Generator), ao emular sistemas x86, implementa soporte para o mecanismo PKS (Protection Keys Supervisor), que se pode usar para protexer o acceso ás páxinas de memoria privilexiadas.
  • Engadiuse un novo tipo de máquinas emuladas "virt" ao emulador de arquitectura MIPS con soporte para procesadores Loongson-3 chineses.
  • No emulador de arquitectura PowerPC para máquinas emuladas "powernv", engadiuse soporte para controladores BMC externos. Para máquinas pseries emuladas, ofrécese notificación de fallos ao intentar eliminar a memoria e a CPU en quente.
  • Engadido soporte para emular procesadores Qualcomm Hexagon con DSP.
  • O xerador de código clásico TCG (Tiny Code Generator) admite ambientes host macOS en sistemas co novo chip Apple M1 ARM.
  • O emulador de arquitectura RISC-V para placas Microchip PolarFire admite QSPI NOR flash.
  • O emulador Tricore agora admite o novo modelo de placa TriBoard, que emula o SoC Infineon TC27x.
  • O emulador ACPI ofrece a posibilidade de asignar nomes aos adaptadores de rede en sistemas convidados que son independentes da orde en que estean conectados ao bus PCI.
  • virtiofs engadiu compatibilidade coa opción FUSE_KILLPRIV_V2 para mellorar o rendemento dos hóspedes.
  • VNC engadiu soporte para a transparencia do cursor e soporte para escalar a resolución da pantalla en virtio-vga, en función do tamaño da xanela.
  • QMP (QEMU Machine Protocol) engadiu soporte para o acceso paralelo asíncrono ao realizar tarefas de copia de seguridade.
  • O emulador USB engadiu a posibilidade de gardar o tráfico xerado ao traballar con dispositivos USB nun ficheiro pcap separado para a súa inspección posterior en Wireshark.
  • Engadíronse novos comandos QMP load-snapshot, save-snapshot e delete-snapshot para xestionar as instantáneas qcow2.
  • As vulnerabilidades CVE-2020-35517 e CVE-2021-20263 foron corrixidas en virtiofs. O primeiro problema permite o acceso ao ambiente host desde o sistema convidado creando un ficheiro de dispositivos especial no sistema invitado por un usuario privilexiado nun directorio compartido co ambiente host. O segundo problema é causado por un erro no manexo dos atributos estendidos na opción 'xattrmap' e pode facer que se ignoren os permisos de escritura e a escalada de privilexios dentro do sistema convidado.

Fonte: opennet.ru

Engadir un comentario