Свободный эмулятор QEMU получил неофициальную поддержку отечественной архитектуры процессоров «Эльбрус». В разработке реализовано около 80% набора инструкций «Эльбрус-8С».
Возможности эмуляции
В создании расширения принимали участие пользователи русскоязычного форума linux.org.ru. Над open source патчем к эмулятору разработчики трудились несколько месяцев. На данный момент он поддерживает только 64-битные программы, скомпилированные под Linux.
При создании дополнения к QEMU авторы использовали:
- официальное учебное пособие от создателей процессоров «Микропроцессоры и вычислительные комплексы семейства “Эльбрус”»;
- официальное руководство по эффективному программированию на платформе «Эльбрус»;
- публичные GPL-компоненты: binutils и ядро Linux.
Исходный код патча к эмулятору можно найти в git-репозитории.
Известные проблемы
Первая версия эмулятора для «Эльбрусов» имеет несколько серьезных проблем. Как объясняют авторы проекта, из-за отсутствия полной документации к процессорам и набора инструкций, разработка велась методом обратной инженерии: энтузиасты анализировали ассемблерный код, генерируемый компилятором, и его работу на реальном процессоре. По этой причине эмулятор не является абсолютно точным.
Также среди известных проблем низкая производительность эмулятора – на Ryzen 2600X скорость его работы ниже практически в 20 раз, чем на «Эльбрус-8С». Кроме того, сейчас патчу не хватает тестирования на реальных программах. Авторы могут подтвердить лишь корректный запуск busybox, coreutils, bash, некоторых бенчмарков и компилятора lcc.
Используемые технологии
QEMU – свободно распространяемая программа на базе открытого исходного кода. Она позволяет эмулировать x86-совместимые процессоры, такие как Pentium, AMD64 и другие. Приложение мультиплатформенное и запускается на большинстве популярных ОС: Windows, Linux, MacOS, Android. Также поддерживает технологию аппаратной виртуализации.
«Эльбрус» – отечественная архитектура для микропроцессоров, разработанная компанией МЦСТ. CPU предназначены для использования в серверах и рабочих станциях, установленных в государственных и частных организациях с повышенными требованиями к информационной безопасности.
Самый новый выпущенный серийный процессор – «Эльбрус-8С». Он изготовлен по техпроцессу 28 нм, обладает 8 ядрами с 1300 МГц тактовой частоты. МЦСТ представила руководство по программированию для своей продукции в конце 2020 года, однако в нем содержатся лишь самые часто применяемые команды CPU.