QEMU 6.0 էմուլյատորի թողարկում

Ներկայացվել է QEMU 6.0 նախագծի թողարկումը։ Որպես էմուլյատոր՝ QEMU-ն թույլ է տալիս գործարկել մեկ ապարատային պլատֆորմի համար կազմված ծրագիր բոլորովին այլ ճարտարապետություն ունեցող համակարգում, օրինակ՝ գործարկել ARM հավելվածը x86-ի հետ համատեղելի համակարգչի վրա: QEMU-ի վիրտուալացման ռեժիմում կոդերի կատարման կատարումը մեկուսացված միջավայրում մոտ է ապարատային համակարգի կատարողականին` պրոցեսորի վրա հրահանգների ուղղակի կատարման և Xen հիպերվիզորի կամ KVM մոդուլի օգտագործման պատճառով:

Նախագիծն ի սկզբանե ստեղծվել է Ֆաբրիս Բելարդի կողմից՝ x86 պլատֆորմի համար ստեղծված Linux գործադիրներին թույլ տալու համար աշխատել ոչ x86 ճարտարապետություններով: Մշակման տարիների ընթացքում ամբողջական էմուլյացիոն աջակցություն է ավելացվել 14 ապարատային ճարտարապետության համար, ընդօրինակվող ապարատային սարքերի թիվը գերազանցել է 400-ը: 6.0 տարբերակի նախապատրաստման ընթացքում կատարվել են ավելի քան 3300 փոփոխություններ 268 մշակողների կողմից:

QEMU 6.0-ում ավելացված հիմնական բարելավումներ.

  • NVMe կարգավորիչի էմուլյատորը համապատասխանեցվել է NVMe 1.4 բնութագրին և հագեցած է գոտիավորված անվանատարածքների փորձնական աջակցությամբ, բազմուղի I/O և սկավառակի վրա տվյալների ծայրից ծայր կոդավորումը:
  • Ավելացվել են «-machine x-remote» և «-device x-pci-proxy-dev» փորձնական տարբերակները՝ սարքի էմուլյացիան արտաքին գործընթացներ տեղափոխելու համար: Այս ռեժիմում ներկայումս աջակցվում է միայն lsi53c895 SCSI ադապտերի էմուլյացիան:
  • Ավելացվեց փորձարարական աջակցություն՝ RAM-ի բովանդակության պատկերներ ստեղծելու համար:
  • Ավելացվել է FUSE մոդուլը բլոկային սարքերի արտահանման համար, որը թույլ է տալիս տեղադրել հյուրի համակարգում օգտագործվող ցանկացած բլոկային սարքի վիճակի մի հատված: Արտահանումն իրականացվում է QMP հրամանի block-export-add կամ qemu-storage-daemon կոմունալ ծրագրի «--export» տարբերակի միջոցով:
  • ARM էմուլյատորն ավելացնում է ARMv8.1-M «Հելիում» ճարտարապետության և Cortex-M55 պրոցեսորների աջակցությունը, ինչպես նաև ընդլայնված ARMv8.4 TTST, SEL2 և DIT հրահանգները: Ավելացվել է նաև ARM տախտակների աջակցություն mps3-an524 և mps3-an547: Սարքի լրացուցիչ էմուլյացիա իրականացվել է xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx և sabrelite տախտակների համար:
  • ARM-ի համար, համակարգի և օգտագործողի միջավայրի մակարդակներում էմուլյացիայի ռեժիմներում, ներդրվել է ARMv8.5 MTE (MemTag, Memory Tagging Extension) ընդլայնման աջակցությունը, որը թույլ է տալիս պիտակները կապել յուրաքանչյուր հիշողության բաշխման գործողության հետ և կազմակերպել ցուցիչի ստուգում, երբ մուտք գործել հիշողություն, որը պետք է կապված լինի ճիշտ պիտակի հետ: Ընդլայնումը կարող է օգտագործվել արգելափակելու խոցելիության օգտագործումը, որն առաջանում է արդեն ազատված հիշողության բլոկներին մուտք գործելու, բուֆերային հեղեղումների, նախքան սկզբնավորումից առաջ մուտքերի և ընթացիկ համատեքստից դուրս օգտագործման արդյունքում:
  • 68k ճարտարապետության էմուլյատորն ավելացրել է աջակցություն նոր տեսակի նմանակված մեքենայի «virt»-ին, որն օգտագործում է virtio սարքեր՝ արդյունավետությունը օպտիմալացնելու համար:
  • x86 էմուլյատորը ավելացնում է AMD SEV-ES (Secure Encrypted Virtualization) տեխնոլոգիան օգտագործելու հնարավորություն՝ հյուրի համակարգում օգտագործվող պրոցեսորների ռեգիստրները գաղտնագրելու համար՝ ռեգիստրների բովանդակությունը անհասանելի դարձնելով հյուրընկալող միջավայրին, քանի դեռ հյուր համակարգը բացահայտորեն թույլ չի տալիս մուտք գործել դրանց:
  • Դասական TCG (Tiny Code Generator) կոդերի գեներատորը, երբ նմանակում է x86 համակարգերը, ապահովում է PKS (Protection Keys Supervisor) մեխանիզմի աջակցությունը, որը կարող է օգտագործվել արտոնյալ հիշողության էջերի հասանելիությունը պաշտպանելու համար:
  • MIPS ճարտարապետության էմուլյատորին ավելացվել է «virt» նմանակված մեքենաների նոր տեսակ՝ չինական Loongson-3 պրոցեսորների աջակցությամբ:
  • «Powernv» նմանակված մեքենաների PowerPC ճարտարապետության էմուլատորում ավելացվել է արտաքին BMC կարգավորիչների աջակցություն: Նմանակված կեղծ սարքերի համար տրամադրվում է ծանուցում ձախողումների մասին, երբ փորձում եք տաքացնել հիշողությունը և պրոցեսորը:
  • Ավելացվել է DSP-ով Qualcomm Hexagon պրոցեսորների նմանակման աջակցություն:
  • Դասական TCG (Tiny Code Generator) կոդերի գեներատորն աջակցում է macOS հյուրընկալող միջավայրերը համակարգերի վրա՝ նոր Apple M1 ARM չիպով:
  • RISC-V ճարտարապետության էմուլյատորը Microchip PolarFire տախտակների համար աջակցում է QSPI NOR ֆլեշ:
  • Tricore էմուլյատորն այժմ աջակցում է TriBoard տախտակի նոր մոդելին, որը նմանակում է Infineon TC27x SoC-ին:
  • ACPI էմուլյատորը հնարավորություն է տալիս անուններ նշանակել ցանցային ադապտերներին հյուր համակարգերում, որոնք անկախ են PCI ավտոբուսին միանալու հերթականությունից:
  • virtiofs-ն ավելացրել է FUSE_KILLPRIV_V2 տարբերակի աջակցությունը՝ հյուրերի աշխատանքը բարելավելու համար:
  • VNC-ն ավելացրել է կուրսորի թափանցիկության աջակցություն և էկրանի լուծաչափման աջակցություն virtio-vga-ում՝ հիմնվելով պատուհանի չափի վրա:
  • QMP-ը (QEMU Machine Protocol) ավելացրել է աջակցություն ասինխրոն զուգահեռ մուտքի համար՝ կրկնօրինակում առաջադրանքներ կատարելիս:
  • USB էմուլյատորն ավելացրել է USB սարքերի հետ աշխատելիս առաջացած թրաֆիկը պահպանելու հնարավորությունը առանձին pcap ֆայլում՝ Wireshark-ում հետագա ստուգման համար:
  • Ավելացվեցին նոր QMP հրամաններ load-snapshot, save-snapshot և delete-snapshot՝ qcow2 snapshots-ը կառավարելու համար:
  • CVE-2020-35517 և CVE-2021-20263 խոցելիությունները ֆիքսվել են վիրտուոզներով: Առաջին խնդիրը թույլ է տալիս մուտք գործել դեպի հյուրընկալող միջավայր հյուրի համակարգից՝ ստեղծելով հատուկ սարքերի ֆայլ հյուրի համակարգում արտոնյալ օգտատիրոջ կողմից հյուրընկալող միջավայրի հետ համօգտագործվող գրացուցակում: Երկրորդ խնդիրն առաջանում է «xattrmap» տարբերակի ընդլայնված ատրիբուտների մշակման սխալի պատճառով և կարող է հանգեցնել գրելու թույլտվությունների անտեսմանը և արտոնությունների ընդլայնմանը հյուրի համակարգում:

Source: opennet.ru

Добавить комментарий