Ներկայացվել է 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