Abstract

QEMU is a widely used and fairly accurate emulator capable of emulating dozens of guest systems. Emulation of the system involves the configuration of virtual devices, which are supported in large numbers in QEMU, which entails a very long and complicated command line to start the emulator. When using deterministic replay, the situation is complicated not only by additional and not quite obvious parameters, but also by the need to synchronize recording and retrace launch command lines. Machines can have a different set of devices depending on the platform and even the version of the emulator. The article describes obtaining information about the devices of the QEMU emulator through the QEMU Machine Protocol for using this data in a graphical interface. The QemuGUI graphical interface supports the full cycle of work with the emulator: creating and configuring a virtual machine, starting in normal mode and in deterministic replay mode, interacting with the machine through a QEMU monitor.

Highlights

  • Emulation of the system involves the configuration of virtual devices

  • which are supported in large numbers in QEMU

  • Machines can have a different set of devices depending on the platform

Read more

Summary

Введение

Эмулятор QEMU [1, 2] является одним из передовых эмуляторов для разработчиков средств анализа кода. Пользователь может иметь необходимость пользоваться разными сборками эмулятора, что вынуждает его или постоянно заглядывать в командную строку (если он ее сохранил для многоразового использования) или поддерживать файлы журналов в строгом порядке. Необходимо синхронизировать командные строки запусков записи и воспроизведения и удостовериться что при многократном запуске воспроизведения строка будет одинаковой, ведь в этом случае от перестановки мест слагаемых сумма может поменяться, например, если не указать шины, на которых будут устройства, и поменять местами устройства, QEMU распределит их самостоятельно и воспроизведение не сможет работать. В целом, такие данные позволили бы получить желаемую структуру устройств, но использование команды монитора не является хорошим решением, потому что вывод ответа ориентирован на пользователя, подвержен изменениям со стороны разработчика, а его разбор может быть осуществлен только на жестких сравнениях слов, используемых в выводе. Для таких целей необходимо использовать форматы данных, предусмотренные для машинной обработки, например JSON, но для QMP (разд. 3) подобной команды нет

Взаимодействие с QEMU
Применение QMP для получения информации об устройствах виртуальной машины
Реализация
Управление состоянием эмулятора
Получение информации об устройствах
Определение списка снимков для запуска детерминированного воспроизведения
Описание графического интерфейса
Заключение
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call