RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2017, том 29, выпуск 6, страницы 77–104 (Mi tisp274)

Эта публикация цитируется в 4 статьях

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

В. Ю. Ефимовa, А. А. Беззубиковa, Д. А. Богомоловa, О. В. Горемыкинa, В. А. Падарянab

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

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

Ключевые слова: программный эмулятор, бинарный код, разработка виртуальных машин.

DOI: 10.15514/ISPRAS-2017-29(6)-4



Реферативные базы данных:


© МИАН, 2024