Keluaran emulator QEMU 6.0

Keluaran projek QEMU 6.0 telah dibentangkan. Sebagai emulator, QEMU membenarkan anda menjalankan program yang disusun untuk satu platform perkakasan pada sistem dengan seni bina yang sama sekali berbeza, contohnya, menjalankan aplikasi ARM pada PC yang serasi dengan x86. Dalam mod maya dalam QEMU, prestasi pelaksanaan kod dalam persekitaran terpencil adalah hampir dengan sistem perkakasan disebabkan oleh pelaksanaan langsung arahan pada CPU dan penggunaan Xen hypervisor atau modul KVM.

Projek ini pada asalnya dicipta oleh Fabrice Bellard untuk membolehkan laksana Linux dibina untuk platform x86 berjalan pada seni bina bukan x86. Sepanjang tahun pembangunan, sokongan emulasi penuh telah ditambah untuk 14 seni bina perkakasan, bilangan peranti perkakasan yang dicontohi telah melebihi 400. Sebagai persediaan untuk versi 6.0, lebih daripada 3300 perubahan telah dibuat daripada 268 pembangun.

Penambahbaikan utama ditambah dalam QEMU 6.0:

  • Emulator pengawal NVMe dibawa ke pematuhan dengan spesifikasi NVMe 1.4 dan dilengkapi dengan sokongan percubaan untuk ruang nama yang dizonkan, I/O berbilang laluan dan penyulitan data hujung ke hujung pada pemacu.
  • Menambahkan pilihan percubaan "-machine x-remote" dan "-device x-pci-proxy-dev" untuk mengalihkan emulasi peranti ke proses luaran. Dalam mod ini, hanya emulasi penyesuai SCSI lsi53c895 disokong pada masa ini.
  • Menambahkan sokongan percubaan untuk mencipta syot kilat kandungan RAM.
  • Menambah modul FUSE untuk mengeksport peranti blok, membolehkan anda melekapkan sekeping keadaan mana-mana peranti blok yang digunakan dalam sistem tetamu. Eksport dijalankan melalui perintah QMP block-export-add atau melalui pilihan "--export" dalam utiliti qemu-storage-daemon.
  • Emulator ARM menambah sokongan untuk seni bina ARMv8.1-M 'Helium' dan pemproses Cortex-M55, serta arahan ARMv8.4 TTST, SEL2 dan DIT lanjutan. Menambah sokongan untuk papan ARM mps3-an524 dan mps3-an547 juga. Emulasi peranti tambahan telah dilaksanakan untuk papan xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx dan sabrelite.
  • Untuk ARM, dalam mod emulasi pada peringkat sistem dan persekitaran pengguna, sokongan untuk sambungan ARMv8.5 MTE (MemTag, Memory Tagging Extension) telah dilaksanakan, yang membolehkan anda mengikat tag pada setiap operasi peruntukan memori dan mengatur pemeriksaan penuding apabila mengakses memori, yang mesti dikaitkan dengan teg yang betul . Sambungan boleh digunakan untuk menyekat eksploitasi kelemahan yang disebabkan oleh mengakses blok memori yang telah dibebaskan, limpahan penimbal, akses sebelum pemulaan dan penggunaan di luar konteks semasa.
  • Emulator seni bina 68k telah menambah sokongan untuk jenis baharu mesin yang dicontohi "virt", yang menggunakan peranti virtio untuk mengoptimumkan prestasi.
  • Emulator x86 menambah keupayaan untuk menggunakan teknologi AMD SEV-ES (Secure Encrypted Virtualization) untuk menyulitkan daftar pemproses yang digunakan dalam sistem tetamu, menjadikan kandungan daftar tidak boleh diakses oleh persekitaran hos melainkan sistem tetamu secara eksplisit memberikan akses kepada mereka.
  • Penjana kod TCG (Tiny Code Generator) klasik, apabila meniru sistem x86, melaksanakan sokongan untuk mekanisme PKS (Penyelia Kunci Perlindungan), yang boleh digunakan untuk melindungi akses kepada halaman memori istimewa.
  • Jenis baharu mesin yang ditiru "virt" telah ditambahkan pada emulator seni bina MIPS dengan sokongan untuk pemproses Loongson-3 Cina.
  • Dalam emulator seni bina PowerPC untuk mesin yang ditiru "powernv", sokongan untuk pengawal BMC luaran telah ditambah. Untuk mesin pseries yang dicontohi, pemberitahuan kegagalan semasa cuba mengeluarkan memori dan CPU panas disediakan.
  • Menambah sokongan untuk meniru pemproses Qualcomm Hexagon dengan DSP.
  • Penjana kod TCG (Tiny Code Generator) klasik menyokong persekitaran hos macOS pada sistem dengan cip Apple M1 ARM baharu.
  • Emulator seni bina RISC-V untuk papan Microchip PolarFire menyokong denyar QSPI NOR.
  • Emulator Tricore kini menyokong model papan TriBoard baharu, yang meniru SoC Infineon TC27x.
  • Emulator ACPI menyediakan keupayaan untuk menetapkan nama kepada penyesuai rangkaian dalam sistem tetamu yang bebas daripada susunan di mana ia disambungkan ke bas PCI.
  • virtiofs telah menambah sokongan untuk pilihan FUSE_KILLPRIV_V2 untuk meningkatkan prestasi tetamu.
  • VNC telah menambah sokongan untuk ketelusan kursor dan sokongan untuk penskalaan resolusi skrin dalam virtio-vga, berdasarkan saiz tetingkap.
  • QMP (Protokol Mesin QEMU) telah menambah sokongan untuk akses selari tak segerak semasa melakukan tugas sandaran.
  • Emulator USB telah menambah keupayaan untuk menjimatkan trafik yang dijana apabila bekerja dengan peranti USB ke dalam fail pcap yang berasingan untuk pemeriksaan seterusnya dalam Wireshark.
  • Menambahkan arahan QMP baharu muatkan syot kilat, simpan syot kilat dan padam syot kilat untuk mengurus syot kilat qcow2.
  • Kerentanan CVE-2020-35517 dan CVE-2021-20263 telah diperbaiki dalam virtiofs. Masalah pertama membenarkan akses kepada persekitaran hos daripada sistem tetamu dengan mencipta fail peranti khas dalam sistem tetamu oleh pengguna istimewa dalam direktori yang dikongsi dengan persekitaran hos. Isu kedua disebabkan oleh pepijat dalam pengendalian atribut lanjutan dalam pilihan 'xattrmap' dan boleh menyebabkan kebenaran tulis diabaikan dan peningkatan keistimewaan dalam sistem tetamu.

Sumber: opennet.ru

Tambah komen