**Эмуля́цыя** (англ.: emulation) — мадэляванне праграмнымі або апаратнымі сродкамі, альбо іх камбінацыяй, работы іншых праграм ці прылад.

Мэты
----

* Стварэнне новага мікрапрацэсара/мікракантролера. У гэтым выпадку з дапамогай эмулятара (праграмы або прылады) выконваюцца каманды гэтага працэсара.
* Неабходнасць выканання праграмнага забеспячэння, напісанага для іншай прылады або аперацыйная сістэмы.
* Тэсціраванне праграм, напісаных для разнастайных сістэм.

Апаратная і праграмна-апаратная эмуляцыя
----------------------------------------

У выпадку праграмна-апаратнага комплексу эмулятарам з’яўляецца спецыяльная электронная прылада, выкананая ў выглядзе платы.

Праграмная эмуляцыя
-------------------

Эмуляцыя дазваляе выконваць камп’ютарную праграму на платформе (камп’ютарнай архітэктуры і/або аперацыйнай сістэме), адрознай, ці ў некаторых выпадках ідэнтычнай той, для якой яна была напісана ў арыгінале. Эмуляцыяй таксама называюць сам працэс гэтага выканання. У адрозненні ад сімуляцыі, якая толькі паўтарае паводзіны праграмы, пры эмуляцыі ставіцца мэта дакладнага мадэлявання стану сістэмы, якую імітуюць, для выканання арыгінальная машыннага кода.

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

Адно з папулярных прымяненняў эмуляцыі — выкананне на персанальным камп’ютары гульняў, напісаных для гульнявых аўтаматаў ці гульнявых прыставак.

Тэарэтычна, згодна тэзісу Чорча—Цьюрынга, любое аперацыйнае асяроддзе можа быць эмулявана ў любым іншым асяроддзі. На практыцы, аднак, назіраецца шэраг цяжкасцяў; у прыватнасці, дакладныя паводзіны эмулюемай сістэмы часта не дакументаваны (ці ўтоены пад грыфам камерцыйнай тайны) і павінны быць даследаваны і вызначаны з дапамогай адваротнай распрацоўкі.

Досыць поўная эмуляцыя некаторых апаратных платформ патрабуе вялікай дакладнасці, да ўзроўню асобных тактавых цыклаў, недакументаваных асаблівасцяў і нават памылак рэалізацыі. Гэта асабліва важна для такіх мадэляў класічных хатніх машын, як Commodore 64, ZX Spectrum.

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

Звычайна, эмулятар складаецца з некалькіх модуляў, якія адказваюць за разнастайныя падсістэмы эмулюемага камп'ютара. Часцей усяго, эмулятар складаецца з:

* эмулятара або сімулятара цэнтральнага працэсара;
* модуля падсістэмы памяці, што эмулюе АЗП і ПЗП;
* модуля або модуляў эмуляцыі разнастайных прылад ўводу-вываду.

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

Гл. таксама
-----------

* Віртуальная машына
* Эмулятар гульнявой прыстаўкі
* Спіс эмулятараў гульнявых кансоляў

Зноскі
------

1. ↑  [ Программно-аппаратный комплекс для отладки МП систем на основе микроконтроллеров семейства MC68HC11 фирмы MOTOROLA

Спасылкі
--------

* Як напісаць эмулятар камп'ютара Архівавана 9 ліпеня 2006.
* How to write a computer Emulator

|  |  |
| --- | --- |
| ⚙️   Слоўнікі і энцыклапедыі | Вялікая расійская (навукова-адукацыйны партал) |
| Нарматыўны кантроль | BNE: XX552380 · BNF: 13746545d · GND: 4328746-3 · LCCN: sh85042946 |

| ⛭Праграмнае забеспячэнне для эмуляцыі і віртуалізацыі (параўнанне) |
| --- |
| Узровень АС ігіпервізары | 
ICore Virtual Accounts •
FreeBSD Jail •
Kernel-based Virtual Machine (KVM) •
Linux-VServer •
LXC •
Hyper-V •
OpenVZ •
Parallels Virtuozzo Containers •
Solaris Containers •
User-mode Linux •
Virtual Iron •
VM/CMS •
VMware ESX •
Xen
 |
| Камп'ютараў | 
bochs •
DOSBox •
FAUmachine •
Hercules •
Virtual PC •
Parallels Workstation •
PearPC •
QEMU •
SIMH •
VirtualBox •
VMware
(Fusion •
Workstation)
 |
| АС | 
Colinux •
DOSEMU •
E/OS •
Wabi •
Wine
 |