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
Summary
Эмулятор QEMU [1, 2] является одним из передовых эмуляторов для разработчиков средств анализа кода. Пользователь может иметь необходимость пользоваться разными сборками эмулятора, что вынуждает его или постоянно заглядывать в командную строку (если он ее сохранил для многоразового использования) или поддерживать файлы журналов в строгом порядке. Необходимо синхронизировать командные строки запусков записи и воспроизведения и удостовериться что при многократном запуске воспроизведения строка будет одинаковой, ведь в этом случае от перестановки мест слагаемых сумма может поменяться, например, если не указать шины, на которых будут устройства, и поменять местами устройства, QEMU распределит их самостоятельно и воспроизведение не сможет работать. В целом, такие данные позволили бы получить желаемую структуру устройств, но использование команды монитора не является хорошим решением, потому что вывод ответа ориентирован на пользователя, подвержен изменениям со стороны разработчика, а его разбор может быть осуществлен только на жестких сравнениях слов, используемых в выводе. Для таких целей необходимо использовать форматы данных, предусмотренные для машинной обработки, например JSON, но для QMP (разд. 3) подобной команды нет
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
More From: Proceedings of the Institute for System Programming of the RAS
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.