Preview

Труды Института системного программирования РАН

Расширенный поиск

Автоматизация разработки моделей устройств и вычислительных машин для QEMU

https://doi.org/10.15514/ISPRAS-2017-29(6)-4

Аннотация

Разработка виртуальных устройств и машин для QEMU - трудоёмкий процесс. С целью поддержки разработчика, в данной работе был проведён анализ архитектуры QEMU и процесса разработки моделей отдельных устройств и виртуальных машин для QEMU. Предлагается подход к разработке, в рамках которого начальный этап ощутимо автоматизируется, благодаря применению декларативного описания устройств и машин, а также средств графического представления разрабатываемых устройств и машин. Подход реализован в интегрированном инструменте, позволяющем разработчику QEMU получить компилируемый набор файлов с исходным Си-кодом. Разработчик задаёт параметры генерации устройств и описывает состав машины на языке Python или в графическом редакторе, обеспечивающем визуализацию текстового описания. Результатом применения инструмента при построении машины становится фактически готовый Си-код, требующий только уточнить конфигурацию процессора и обработать параметры командной строки. В случае периферийного устройства от разработчика потребуется реализовать поведенческий аспект. Проведённые эксперименты с платформами Q35 и Cisco 2621XM показали, что количество строк в описании устройства в 11-26 раз меньше числа строк получаемой заготовки на языке Си. Такая разница в объёме достигнута за счёт генерации формального кода, реализующего служебные интерфейсы QEMU. Такой код составляет ощутимую долю кода устройства, в то время как может быть сгенерирован по сравнительно небольшому описанию. Суммарный объём сгенерированного кода заготовок составил от ¼ до ¾. Исходный код разработанного инструмента доступен по адресу https://github.com/ispras/qdt.

Об авторах

В. Ю. Ефимов
Институт системного программирования им. В.П. Иванникова РАН
Россия


А. А. Беззубиков
Институт системного программирования им. В.П. Иванникова РАН
Россия


Д. А. Богомолов
Институт системного программирования им. В.П. Иванникова РАН
Россия


О. В. Горемыкин
Институт системного программирования им. В.П. Иванникова РАН
Россия


В. А. Падарян
Институт системного программирования им. В.П. Иванникова РАН; Московский государственный университет им. М.В. Ломоносова
Россия


Список литературы

1. Довгалюк П.М., Макаров В.А., Падарян В.А., Романеев М.С., Фурсова Н.И. Применение программных эмуляторов в задачах анализа бинарного кода. Труды ИСП РАН, том 26, вып. 1, 2014 г., стр. 277-296. DOI: 10.15514/ISPRAS-2014-26(1)-9

2. F. Bellard QEMU, a Fast and Portable Dynamic Translator. USENIX Annual Technical Conference, FREENIX Track. USENIX, 2007. P. 41-465 p.

3. J. Bennett. Howto: GDB Remote Serial Protocol. Writing a RSP Server. Application Note 4. Issue 2, Embecosm, Доступно по ссылке: http://www.embecosm.com/appnotes/ean4/embecosm-howto-rsp-server-ean4-issue-2.pdf, ноябрь 2008.

4. Страница языка программирования Python. Доступна по ссылке: https://www.python.org/, дата обращения 06.07.2017.

5. Страница AMD SimNow Simulator. Доступна по ссылке: http://developer.amd.com/simnow-simulator/, дата обращения 12.10.2017.

6. D. Aarno, J. Engblom. Software and System Development using Virtual Platforms. Full-System Simulation with Wind River Simics. Elsevier Inc. 15.09.2014. 366p.

7. N. Binkert, B. Beckmann, G. Black, S.K. Reinhardt, A. Saidi, A. Basu, J. Hestness, D.R. Hower, T. Krishna, S. Sardashti, R. Sen, K. Sewell, M. Shoaib, N. Vaish, M.D. Hill, and D.A. Wood. The gem5 simulator. SIGARCH Comput. Archit. News 39, 2, August 2011, 1-7pp.

8. Страница с документацией на Open Virtual Platforms. Доступна по ссылке: http://www.ovpworld.org/documentation/, дата обращения: 17.11.2017.

9. Страница библиотека PyCParser на GitHub. Доступна по ссылке: https://github.com/eliben/pycparser, дата обращения 20.03.2017.

10. Страница системы контроля версий Git. Доступна по ссылке: https://git-scm.com/about, дата обращения 09.03.2017.

11. Страница библиотеки для создания графического интерфейса «Tkinter». Доступна оп ссылке: https://wiki.python.org/moin/TkInter, дата обращения 2017.03.13.

12. В.Ю. Ефимов, К.А. Батузов, В.А. Падарян. Об особенностях детерминированного воспроизведения при минимальном наборе устройств. Труды ИСП РАН, том 27, вып. 2, 2015, стр. 65-92. DOI: 10.15514/ISPRAS-2015-27(2)-5

13. Руководство по работе с Dynamips. Доступно по ссылке: http://www.iteasypass.com/Dynamips.htm, дата обращения 30.06.2017.

14. Страница инструмента эмуляции сети GNS3. Доступна по ссылке https://gns3.com, дата обращения 30.06.2017.

15. Руководство пользователя для микроконтроллеров серии MPC860. Доступно по ссылке: http://www.nxp.com/docs/en/reference-manual/MPC860UM.pdf, дата обращения 30.06.2017.


Рецензия

Для цитирования:


Ефимов В.Ю., Беззубиков А.А., Богомолов Д.А., Горемыкин О.В., Падарян В.А. Автоматизация разработки моделей устройств и вычислительных машин для QEMU. Труды Института системного программирования РАН. 2017;29(6):77-104. https://doi.org/10.15514/ISPRAS-2017-29(6)-4



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)