Эмуляция

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск
Файл:DOSBox Screenshot.png
DOSBox эмулирует работу DOS
Файл:Emulation MSX on MESS.png
Эмуляция компьютера стандарта MSX на эмуляторе MESS

Эмуля́ция (англ. emulation) — воспроизведение программными или аппаратными средствами либо их комбинацией работы других программ или устройств.[1]

Содержание

Цели

  • Создание нового микропроцессора/микроконтроллера. В этом случае при помощи эмулятора (программы или устройства) выполняются команды этого процессора.
  • Необходимость выполнения также программного обеспечения, написанного для другого устройства или операционной системы.
  • Тестирование программ написанных для различных систем.

Аппаратная и программно-аппаратная эмуляция

В случае программно-аппаратнного комплекса эмулятором является специальное электронное устройство, выполненное в виде платы.[2]

Программная эмуляция

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

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

Одно из популярных применений эмуляции — выполнение на персональном компьютере игр, написанных для игровых автоматов или игровых приставок.

Теоретически, согласно тезису Чёрча — Тьюринга, любая операционная среда может быть эмулирована в любой другой среде. На практике, однако, встречается ряд трудностей; в частности, точное поведение эмулируемой системы часто не документированно и должно быть исследовано и определено с помощью обратной разработки.

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

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

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

Системная шина обычно не эмулируется, по причинам упрощения или повышения производительности, и виртуальная периферия обращается непосредственно к модулю ЦП и модулю памяти.

Примечания

См. также

Ссылки

Литература


bg:Емулатор

ca:Emulador de codi cs:Emulátor da:Emulator de:Emulator en:Emulator es:Emulador et:Emulaator fa:نرم‌افزار‌ شبیه‌ساز fi:Emulaattori fr:Émulation he:אמולציה hu:Emulátor ia:Emulator id:Emulator io:Emuleso it:Emulatore ja:エミュレータ ko:에뮬레이터 lt:Emuliatorius nl:Emulator nn:Emulator no:Emulator pl:Emulator pt:Emulador simple:Emulator sl:Emulator sr:Емулатор sv:Emulator tr:Öykünme uk:Емуляція zh:仿真器

Личные инструменты

Served in 0.655 secs.