Kutolewa kwa emulator ya QEMU 6.0

Kutolewa kwa mradi wa QEMU 6.0 kumewasilishwa. Kama emulator, QEMU hukuruhusu kuendesha programu iliyokusanywa kwa jukwaa moja la vifaa kwenye mfumo ulio na usanifu tofauti kabisa, kwa mfano, endesha programu ya ARM kwenye PC inayolingana na x86. Katika hali ya uboreshaji katika QEMU, utendakazi wa utekelezaji wa msimbo katika mazingira ya pekee uko karibu na ule wa mfumo wa maunzi kutokana na utekelezaji wa moja kwa moja wa maagizo kwenye CPU na matumizi ya hypervisor ya Xen au moduli ya KVM.

Mradi huo uliundwa awali na Fabrice Bellard ili kuruhusu utekelezaji wa Linux uliojengwa kwa jukwaa la x86 kuendeshwa kwa usanifu usio wa x86. Kwa miaka mingi ya maendeleo, usaidizi kamili wa kuiga umeongezwa kwa usanifu wa vifaa 14, idadi ya vifaa vya kuigwa imezidi 400. Katika maandalizi ya toleo la 6.0, zaidi ya mabadiliko 3300 yamefanywa kutoka kwa watengenezaji 268.

Maboresho muhimu yameongezwa katika QEMU 6.0:

  • Kiigaji cha kidhibiti cha NVMe kinaletwa katika utiifu wa vipimo vya NVMe 1.4 na kimewekwa kwa usaidizi wa majaribio kwa nafasi za majina zilizokandamizwa, njia nyingi za I/O na usimbaji fiche wa data kutoka mwisho hadi mwisho kwenye hifadhi.
  • Umeongeza chaguo za majaribio "-machine x-remote" na "-device x-pci-proxy-dev" ili kusogeza mwigo wa kifaa kwenye michakato ya nje. Katika hali hii, ni uigaji pekee wa adapta ya SCSI ya lsi53c895 ndiyo inayotumika kwa sasa.
  • Umeongeza usaidizi wa majaribio wa kuunda vijipicha vya yaliyomo kwenye RAM.
  • Imeongeza moduli ya FUSE ya kusafirisha vifaa vya kuzuia, huku kuruhusu kuweka kipande cha hali ya kifaa chochote cha kuzuia kinachotumiwa katika mfumo wa wageni. Uhamishaji nje unafanywa kupitia amri ya QMP block-export-add au kupitia chaguo la "--export" katika matumizi ya qemu-storage-daemon.
  • Kiigaji cha ARM huongeza usaidizi wa usanifu wa ARMv8.1-M 'Helium' na vichakataji vya Cortex-M55, pamoja na maelekezo ya ARMv8.4 TTST, SEL2 na DIT yaliyopanuliwa. Usaidizi ulioongezwa kwa bodi za ARM mps3-an524 na mps3-an547 pia. Uigaji wa ziada wa kifaa umetekelezwa kwa mbao za xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx na sabrelite.
  • Kwa ARM, katika aina za uigaji katika viwango vya mfumo na mazingira ya mtumiaji, usaidizi wa kiendelezi cha ARMv8.5 MTE (MemTag, Memory Tagging Extension) umetekelezwa, ambayo hukuruhusu kufunga vitambulisho kwa kila operesheni ya ugawaji kumbukumbu na kuandaa ukaguzi wa pointer wakati. kupata kumbukumbu, ambayo lazima ihusishwe na lebo sahihi . Kiendelezi kinaweza kutumika kuzuia utumiaji wa udhaifu unaosababishwa na kufikia vizuizi vya kumbukumbu vilivyotolewa tayari, kufurika kwa bafa, ufikiaji kabla ya kuanzishwa, na kutumia nje ya muktadha wa sasa.
  • Kiigaji cha usanifu cha 68k kimeongeza usaidizi kwa aina mpya ya mashine iliyoigwa "virt", ambayo hutumia vifaa vya virtio ili kuboresha utendakazi.
  • Kiigaji cha x86 kinaongeza uwezo wa kutumia teknolojia ya AMD SEV-ES (Secure Encrypted Virtualization) ili kusimba kwa njia fiche rejista za kichakataji zinazotumiwa katika mfumo wa wageni, na kufanya yaliyomo kwenye rejista kutofikiwa na mazingira ya mwenyeji isipokuwa mfumo wa wageni utoe idhini ya kuzifikia.
  • Jenereta ya kawaida ya msimbo ya TCG (Tiny Code Generator), inapoiga mifumo ya x86, hutekeleza usaidizi kwa utaratibu wa PKS (Msimamizi wa Vifunguo vya Ulinzi), ambayo inaweza kutumika kulinda ufikiaji wa kurasa za kumbukumbu zilizobahatika.
  • Aina mpya ya mashine zilizoigwa "virt" zimeongezwa kwenye kiigaji cha usanifu cha MIPS kwa usaidizi wa vichakataji vya Kichina vya Loongson-3.
  • Katika emulator ya usanifu ya PowerPC kwa mashine zilizoigwa "powernv", usaidizi wa vidhibiti vya nje vya BMC umeongezwa. Kwa mashine za pseries zilizoigwa, arifa ya kushindwa wakati wa kujaribu kuondoa kumbukumbu motomoto na CPU hutolewa.
  • Usaidizi ulioongezwa wa kuiga vichakataji vya Qualcomm Hexagon kwa kutumia DSP.
  • Jenereta ya kawaida ya msimbo ya TCG (Tiny Code Generator) inasaidia mazingira ya mwenyeji wa MacOS kwenye mifumo yenye chipu mpya ya Apple M1 ARM.
  • Kiigaji cha usanifu cha RISC-V cha bodi za Microchip PolarFire kinatumia QSPI NOR flash.
  • Kiigaji cha Tricore sasa kinaauni muundo mpya wa bodi ya TriBoard, ambayo inaiga Infineon TC27x SoC.
  • Kiigaji cha ACPI hutoa uwezo wa kugawa majina kwa adapta za mtandao katika mifumo ya wageni ambayo haitegemei mpangilio ambao wameunganishwa kwenye basi ya PCI.
  • virtiofs imeongeza usaidizi kwa chaguo la FUSE_KILLPRIV_V2 ili kuboresha utendakazi wa wageni.
  • VNC imeongeza usaidizi wa uwazi wa mshale na usaidizi wa kuongeza azimio la skrini katika virtio-vga, kulingana na saizi ya dirisha.
  • QMP (Itifaki ya Mashine ya QEMU) imeongeza usaidizi kwa ufikiaji sawia wakati wa kutekeleza majukumu ya kuhifadhi.
  • Kiigaji cha USB kimeongeza uwezo wa kuhifadhi trafiki inayozalishwa wakati wa kufanya kazi na vifaa vya USB kwenye faili tofauti ya pcap kwa ukaguzi unaofuata katika Wireshark.
  • Imeongeza amri mpya za QMP pakia-picha, hifadhi-picha na futa-picha ili kudhibiti vijipicha vya qcow2.
  • Athari za CVE-2020-35517 na CVE-2021-20263 zimerekebishwa katika hali mbaya. Tatizo la kwanza huruhusu ufikiaji wa mazingira ya mwenyeji kutoka kwa mfumo wa wageni kwa kuunda faili ya vifaa maalum katika mfumo wa wageni na mtumiaji aliyebahatika katika saraka iliyoshirikiwa na mazingira ya mwenyeji. Suala la pili linasababishwa na hitilafu katika kushughulikia sifa zilizopanuliwa katika chaguo la 'xattrmap' na inaweza kusababisha ruhusa za uandishi kupuuzwa na kuongezeka kwa fursa ndani ya mfumo wa wageni.

Chanzo: opennet.ru

Kuongeza maoni