Подано реліз проекту QEMU 7.1. Як емулятор QEMU дозволяє запустити програму, зібрану для однієї апаратної платформи, на системі з зовсім іншою архітектурою, наприклад, виконати додаток для ARM на x86-сумісному ПК. В режимі віртуалізації QEMU продуктивність виконання коду в ізольованому оточенні близька до апаратної системи за рахунок прямого виконання інструкцій на CPU і залучення гіпервізора Xen або модуля KVM.
Спочатку проект був створений Фабрисом Белларом (Fabrice Bellard) з метою забезпечення можливості запуску зібраних для платформи x86 файлів, що виконуються. Linux на архітектурах, відмінних від x86. За роки розробки було додано підтримку повної емуляції для 14 апаратних архітектур, кількість емульованих апаратних пристроїв перевищила 400. Під час підготовки версії 7.1 внесено понад 2800 змін від 238 розробників.
Ключові покращення, додані в QEMU 7.1:
- На платформі Linux реалізовано опцію zero-copy-send, що дозволяє організувати передачу сторінок пам'яті при live-міграції без проміжної буферизації.
- QMP (QEMU Machine Protocol) додає можливість використання команди block-export-add для експорту образів NBD з даними про сторінки в стані «dirty». Також додані нові команди 'query-stats' та 'query-stats-schema' для запиту статистики з різних підсистем QEMU.
- В агенті для гостьових систем покращено підтримку платформи Solaris та додано нові команди 'guest-get-diskstats' та 'guest-get-cpustats' для відображення стану дисків і CPU. До команди 'guest-get-disks' додано виведення інформації з NVMe SMART, а до команди 'guest-get-fsinfo' виведення даних про тип шини NVMe.
- Додано новий емулятор LoongArch із підтримкою 64-розрядного варіанта архітектури набору команд LoongArch (LA64). Емулятором підтримуються процесори Loongson 3 5000 та північні мости Loongson 7A1000.
- В емуляторі ARM реалізовані нові типи емульованих машин: Aspeed AST1030 SoC, Qaulcomm та AST2600/AST1030 (fby35). Додано підтримку емуляції CPU Cortex-A76 і Neoverse-N1, а також процесорних розширень SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) та команд для блокування витоків з внутрішнього кешу в ході спекулятивного виконання інструкцій на CPU. Для машин virt реалізована емуляція контролера переривань GICv4.
- В емуляторі архітектури x86 для KVM додано підтримку віртуалізації механізму трасування LBR (Last Branch Record).
- В емуляторі архітектури HPPA запропоновано нову прошивку на базі SeaBIOS v6, що підтримує використання клавіатури PS/2 у завантажувальному меню. Поліпшено емуляцію послідовного порту. Додано додаткові консольні шрифти STI.
- В емуляторі MIPS архітектури для плат Nios2 (-machine 10m50-ghrd) реалізована емуляція векторного контролера переривання (Vectored Interrupt Controller) і тіньового набору регістрів. Поліпшено оброблення винятків.
- В емуляторі архітектури OpenRISC для машини 'or1k-sim' додано можливість використання до 4 UART-пристроїв 16550A.
- До емулятора архітектури RISC-V додано підтримку нових розширень набору команд (ISA), визначених у специфікації 1.12.0, а також додано підтримку розширення Sdtrig та покращено підтримку векторних інструкцій. Розширено можливості для налагодження. У емульовану машину 'virt' додана підтримка TPM (Trusted Platform Module), а в машину 'OpenTitan' - підтримка Ibex SPI.
- В емуляторі архітектури 390x забезпечено підтримку розширень VEF 2 (Vector-Enhancements Facility 2). У s390-ccw BIOS реалізована можливість завантаження з дисків, що мають розмір сектора, відмінний від 512 байт.
- Емулятор архітектури Xtensa додає підтримку ядер lx106 і об'єктних кодів для тестування кешу.
Джерело: opennet.ru
