Очікує на перевірку

Емуляція

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Емулятор)
Перейти до навігації Перейти до пошуку

Емуляція (англ. emulation) — відтворення програмними або апаратними засобами або їхньою комбінацією роботи інших програм або пристроїв.

Цілі комп'ютерної емуляції

[ред. | ред. код]
  • Створення нового мікропроцесора / мікроконтролера. У цьому випадку за допомогою емулятора, програма/пристрої виконуються команди цього процесора.
  • Необхідність виконання також програмного забезпечення, написаного для іншого пристрою або операційної системи.
  • Тестування програм написаних для різних систем.

Програмна емуляція

[ред. | ред. код]

Емуляція дозволяє виконувати комп'ютерну програму на платформі (комп'ютерній архітектурі та/або операційній системі), відмінній від тієї, для якої вона була написана в оригіналі. Емуляцією також називають сам процес цього виконання. На відміну від симуляції, яка лише відтворює поведінку програми, при емуляції ставиться мета точного моделювання стану імітованої системи, для виконання оригінального машинного коду.

При використанні мов високого рівня, іноді в цілях збереження швидкодії виконуваної програми, замість емуляції роблять портування програм в нове середовище. У цьому випадку проводиться переписування заново ділянки коду, які залежать від апаратного забезпечення.

Одне з популярних застосувань емуляції — виконання на персональному комп'ютері ігор, написаних для гральних автоматів або ігрових приставок.

Теоретично, згідно з тезою Черча-Тюрінга, будь-яке операційне середовище може бути емульоване в будь-якому іншому середовищі. На практиці, однак, зустрічається ряд труднощів; зокрема, точна поведінка емульованої системи часто не документована і має бути досліджена і визначена за допомогою зворотної розробки.

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

На противагу цьому, на деяких інших платформах досить мало використовувався прямий доступ до апаратного забезпечення. У цьому випадку виявляється достатнім забезпечити певний рівень сумісності, що забезпечує трансляцію системних викликів системи, яка емулюється, у виклики системи, що працює.

Зазвичай, емулятор складається з декількох модулів, що відповідають за різні підсистеми емульованого комп'ютера. Частіше за все, емулятор складається з:

  • Емулятора центрального процесора
  • Модуля підсистеми пам'яті що емулює постійну і оперативну пам'ять
  • Модуля або модулів емуляції різних пристроїв вводу/виводу

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

Посилання

[ред. | ред. код]