Открыть сервисСервис

Эмулятор — программное обеспечение для имитации аппаратуры

Эмулятор — это программа или аппаратное устройство, воспроизводящее работу другой вычислительной системы (компьютера, процессора, игровой консоли, мобильного устройства) на аппаратной платформе, принципиально отличающейся от оригинальной. Эмулятор позволяет запускать программы, приложения и игры, созданные для одной системы, на другой, имитируя поведение процессора, памяти, периферийных устройств и операционной системы оригинала.

Принцип работы

Эмулятор выполняет программные инструкции, предназначенные для целевой системы («гостевой»), на системе-хосте. Для этого он реализует интерпретацию команд: каждая машинная команда гостевой системы разбирается и выполняется средствами хоста. Такой подход называется интерпретацией и, как правило, медленнее нативного выполнения — эмулируемая программа работает медленнее, чем на оригинальном оборудовании.

Ключевые компоненты эмулятора:

  • Эмулятор процессора — воспроизводит набор команд и архитектуру целевого процессора (например, x86, ARM, MOS 6502, Zilog Z80).
  • Эмуляция памяти — моделирует адресное пространство и карту памяти целевой системы.
  • Эмуляция периферии — воспроизводит поведение графических и звуковых адаптеров, контроллеров ввода, дисководов, сетевых интерфейсов.
  • Эмуляция прошивки — воспроизводит BIOS, UEFI или загрузчик целевой системы.

Отличие от виртуализации

Эмуляция и виртуализация часто смешиваются, но это разные технологии. Виртуализация предполагает, что гостевая система работает на том же процессорном наборе команд (ISA), что и хост, — гипервизор лишь изолирует ресурсы. Эмуляция же моделирует саму архитектуру, поэтому может работать на процессоре с другой системой команд. Например, эмулятор ARM-приложений на x86-компьютере возможен именно благодаря эмуляции, а не виртуализации.

Классификация

По точности воспроизведения различают:

  • Точную (цикловую) эмуляцию — воспроизводит тайминги и поведение оригинального железа, что важно для ретро-игр и тестирования.
  • Динамическую трансляцию (JIT-эмуляцию) — переводит инструкции гостевой системы в код хоста на лету, что значительно ускоряет работу. Пример — QEMU с режимом TCG.

По области применения эмуляторы делятся на игровые (консоли, аркадные автоматы, домашние компьютеры), мобильные (Android-приложения на ПК), аппаратные (процессоров и микроконтроллеров) и системные (целых платформ).

Основные эмуляторы

ЭмуляторЭмулируемая система
QEMUПроцессоры x86, ARM, RISC-V и др.
Bochsx86-совместимые ПК
DOSBoxIBM PC/MS-DOS
MAMEАркадные автоматы и ретро-консоли
DolphinNintendo GameCube и Wii
PCSX2PlayStation 2
RPCS3PlayStation 3
PPSSPPPlayStation Portable
Citra / Lime3DSNintendo 3DS
Yuzu / RyujinxNintendo Switch
BlueStacks, LDPlayerAndroid
Qiling, Unicorn EngineМикроконтроллеры и встраиваемые системы

В России и СНГ широкое распространение получил DOSBox, позволяющий запускать игры и программы под MS-DOS на современных ОС, а также MAME для ретро-игр.

Применение

Эмуляторы используются в нескольких областях:

  • Ретро-гейминг — запуск игр для консолей и компьютеров, выпуск которых прекращён десятилетия назад.
  • Разработка — тестирование программ под разные платформы без покупки множества устройств.
  • Образование и исследования — изучение архитектур процессоров, протоколов, историческое моделирование.
  • Кибербезопасность — исследование вредоносного ПО в изолированной среде.
  • Встраиваемые системы — моделирование микроконтроллеров (например, в Quartus, Keil, STM32CubeIDE).

Правовые аспекты

Само по себе создание и использование эмуляторов в большинстве юрисдикций законно. Однако распространение эмуляторов вместе с копиями прошивок (BIOS, ROM) оригинальных систем, защищённых авторским правом, может нарушать законодательство. Пользователь, как правило, должен самостоятельно приобрести или сделать резервную копию прошивки легально купленной системы.

История

Первые эмуляторы появились ещё в 1960-х годах для разработки программного обеспечения под новые архитектуры процессоров. Широкую известность получили эмуляторы домашних компьютеров 1980-х — например, эмуляторы ZX Spectrum и Commodore 64. С развитием интернета и открытого кода в 1990-х–2000-х годах появились проекты MAME (1997), DOSBox (2002), QEMU (2003) и другие, ставшие стандартом индустрии.

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru