Introspection of QEMU emulator peripherals configuration
https://doi.org/10.15514/ISPRAS-2019-31(5)-2
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.
About the Authors
Natalia Igorevna FursovaRussian Federation
Senior Researcher, Senior Lecturer, Ph.D in Technical Sciences
Pavel Michailovich Dovgalyuk
Russian Federation
Senior Researcher, Associate Professor, Ph.D in Technical Sciences
References
1. QEMU the FAST! processor emulator. Available at: https://www.qemu.org (accessed 07.11.2019)
2. QEMU code. Available at: https://git.qemu.org/git/qemu.git (accessed 12.10.2019)
3. QEMU interface introspection: From hacks to solutions. Markus Armbruster. KVM Forum 2015. Available at: https://events.static.linuxfound.org/sites/events/files/slides/armbru-qemu-introspection.pdf (accessed 07.11.2019)
4. QEMU User Documentation. Available at: https://qemu.weilnetz.de/doc/qemu-doc.html (accessed 12.10.2019)
5. Pavel Dovgalyuk. Deterministic Replay of System’s Execution with Multi-target QEMU Simulator for Dynamic Analysis and Reverse Debugging. In Proc. of 16th European Conference on Software Maintenance and Reengineering, 2012, vol. 1, pp. 553-556.
6. QEMU Monitor documentation. Available at: https://en.wikibooks.org/wiki/QEMU/Monitor (accessed 07.11.2019)
7. QEMU Monitor. Available at: http://people.redhat.com/pbonzini/qemu-test-doc/_build/html/topics/pcsys_005f monitor.html (accessed 07.11.2019)
8. QMP Documentation. Available at: https://wiki.qemu.org/Documentation/QMP (accessed я 07.11.2019)
9. Introducing JSON. Available at: http://www.json.org/ (accessed 07.11.2019)
10. AQEMU. Available at: https://sourceforge.net/projects/aqemu/ (accessed 07.11.2019)
11. QtEmu. Available at: https://qtemu.org/ (дата обращения 07.11.2019)
12. JavaQemu. Available at: https://sourceforge.net/projects/javaqemu/ (accessed 07.11.2019)
13. Qt Documentation. Available at: https://doc.qt.io/qt-5/qt5-intro.html (accessed 07.11.2019)
14. QemuGUI source. Available at: https://github.com/ispras/qemu-gui (accessed 07.11.2019)
Review
For citations:
Fursova N.I., Dovgalyuk P.M. Introspection of QEMU emulator peripherals configuration. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2019;31(5):25-36. (In Russ.) https://doi.org/10.15514/ISPRAS-2019-31(5)-2