Релиз эмулятора QEMU 3.0
Представлен релиз проекта QEMU 3.0.0. Значительное изменение номера версии связано с переходом проекта на новую схему нумерацию выпусков, в соответствии с которой первая цифра в номере версии будет увеличиваться раз в год. Никаких кардинальных изменений или нарушений совместимости изменение первой цифры не отражает.
В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы, на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к нативной системе за счет прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM.
Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. При подготовке версии 2.12 внесено более 2300 изменений от 169 разработчиков.
Ключевые улучшения, добавленные в QEMU 3.0:
- В код эмуляции блочных устройств добавлена поддержка активного зеркалирования дисков ("copy-mode active"), позволяющая избавиться от проблем с обеспечением целостности, возникающих при ранее предлагаемом фоновом копировании данных;
- Во фронтэнде на базе библиотеки SDL обеспечена поддержка OpenGL ES. Также добавлено дополнительная опция для устройств фреймбуфера, позволяющая обеспечить вывод на экран на ранней стадии загрузки без эмуляции VGA;
- Интегрирована дополнительная защита от уязвимости Spectre 4 (CVE-2018-3639);
- Улучшена поддержка вложенного запуска гостевых систем KVM в окружениях на базе гипервизора Hyper-V;
- Улучшена поддержка эмуляции контроллеров AHCI и SCSI;
- Для устройств TPM TIS добавлена поддержка режима live-миграции, возможность ограничения пропускной способности при копировании состояния в процессе отложенной миграции (опция "max-postcopy-bandwidth"), режим восстановления в случае сбоя отложенной миграции (команда "migrate_recover") и возможность приостановки миграции (команда "migrate_pause");
- Увеличена отзывчивость при использование сетевого стека в пространстве пользователя (SLIRP);
- В эмулятор архитектуры x86 добавлена новая модель CPU KnightsMill и обеспечена поддержка расширений AMD TOPOEXT (предоставляет информацию о кэше для CPU семейства EPYC). В код эмуляции SVM добавлена поддержка перехвата NMI и NPT;
- В эмулятор архитектуры ARM добавлена поддержка SMMUv3 IOMMU для виртуальных машин типа 'virt', реализованы расширения v8M (инструкции VLLDM и VLSTM для вычислений с плавающей запятой), улучшена поддержка расширений AArch64 v8.2 FP16 и добавлена поддержка расширений SVE (Scalable Vector Extensions);
- В эмулятор архитектуры Microblaze добавлена поддержка 64-разрядных адресов;
- В эмулятор архитектуры PowerPC для систем с типом "mac99" добавлена поддержка PMU, а для систем с типом "mac" улучшена эмуляция хостового моста PCI. Для систем "powernv" добавлена начальная поддержка эмуляции режима POWER9 hash MMU;
- В эмуляторе архитектуры RISC-V улучшена поддержка привилегированных ISA;
- В эмулятор архитектуры s390 добавлена поддержка модели CPU z14 ZR1 и включена по умолчанию защита от уязвимостей Spectre для z196 и более новых моделей CPU. Добавлена поддержка настройки консолей при помощи опции '-serial';
- Напоминается, что в будущем возможно будет прекращена поддержка платформ GNU/kFreeBSD, DragonFly BSD, Solaris и Haiku, из-за отсутствия сопровождающих или инфраструктуры для тестирования.