Емулатор

С Википедије, слободне енциклопедије

Емулатор је софтвер који омогућава да се одређени програм или процес извршава на платформи (рачунарској архитектури или оперативном систему) другачијој од оне за коју је предвиђен. Практично дозвољава систему домаћина да покреће програме и периферне уређаје система госта, имитирајући његове карактеристике.

Дијаграм архитектуре емулатора

Емулација у рачунарству[уреди | уреди извор]

Емулација представља способност рачунарског програма да се угледа (имитира) други програм или уређај. Ова техника се користи код многих рачунарских уређаја како би се избегао процес програмирања за сваку новију верзију исте врсте уређаја. На пример већина штампача користи софтвер за ХП штампаче, и ако нису од истог произвођача, имитирајући његов софтвер у емулацији.

Емулација адресира природно окружење дигиталног објекта I рекреира је на жељеној платформи. Што значи да емулатор дозвољава приступ било ком програму на било којој платформи, док софтвер ради у свом природном окружењу.[1]

Џефери Ротенберг, ранији заговорник емулације, тврди да Идеални приступ би се добио јединственим проширењем платформи, дугорочно решење које би било дизајнирано једном за свагда I било инсталирано аутоматски I синхронизовано за сваку врсту датотеке I медија. Даље је инстраживао I начине како да ,не само застареле, већ I будуће системе усклади са тренутним софтвером.[2]

Техника емулације се најчешће користи током пројектовања I развоја нових оперативних система. Она олакшава процес развоја пружајући могућност откривања I поправке недостатака у дизајну I пре него што се систем изгради. Посебну сврху има у дизајнирању мулти-језгарних система, где се грешке јако тешко уочавају I поправљају без поседовања виртуелног хардвера. Ова техника омогућава развој софтвера I пре него што се његова платформа изгради.

Структура емулатора[уреди | уреди извор]

Емулатор је подељен по модулима који стриктно одговарају емулисаном подсистему рачунара. Најчешће, структура се састоји од следећих модула:

Меморија подсистема[уреди | уреди извор]

Могуће је снизити меморију подсистема на само пар елемената чија величина није знатно већа од емулиране речи. Међутим, овај модел врло лако пропада, чим пронађе једну локацију у логичкој меморији којој не одговара физичка меморија. Овај случај се дешава кад емулирани хардвер дозволи напредно управљање меморијом. У том случају, ММУ логика може да се угради у меморију емулатора, направи свој модул I интегрише се у ЦПУ симулатора. Чак I ако компјутер нема ММУ логику, постоје I други фактори који нарушавају баланс између логичке I физичке меморије.

Као резултат тога, већина емулатора спроводи најмање две процедуре за писање I читање логичке меморије, задатак ових процедура јесте мапирање објеката I њихов исправан приступ локацји.[3]

ЦПУ симулатор[уреди | уреди извор]

Симулатор процесора је најкомпликованији део емулатора. Многи емулатори су написани коришчењем претходно припремљених симулатора, како би се усредсредили на добру I ефикасну емулацију саме машине. Најједноставнији облик оваквих симулатора јесте преводилац, компјутерски програм који прати извршни код емулације I извршава сваку операцију која семантички одговара оригиналним упутствима. Ово је омогућено додељивањем променљиве за сваки регистар симулираног процесора. Логика симулираног процесора се тада директно преводи на софтверски алгоритам, стварајући ре-имплементацију која у основи копира оригинални хардвер. Преводиоци су веома популарни као компјутерски симулатори, јер су много једноставнији I практичнији него друга алтернативна решења. Међутим, до грешке у тумачењу може доћи када емулирани рачунар има брзину процесора истог реда величине као I домаћин машина. До скоро се оваква емулација сматрала непрактичном I немогућом према многима. Оно што је омогућило напредак јесте динамичка техника рекомпајлирања.[3]

I/О уређаји[уреди | уреди извор]

Већина емулатора не опонаша главну системску магистралу. Зато се сваки I/О уређај третира као посебан случај, а не у складу са интерфејсом за виртуелне периферије. Ово доводи до предности у перформансама, јер је сваки I/О уређај прилагођен карактеристикама емулираног уређаја.

Јединствена I/О АПИ је боље осмишљена I има ту предност да аутоматски обезбеђује додатни сервис који је независтан од виртуелног уређаја, а користи се у емулатору. Чак I у оваквим уређајима, у основи постоји заједничка инфраструктура за управљање прекидима која процесору дозвољава да пише I чита из физичке меморије.[3]

Типови емулатора[уреди | уреди извор]

Већина емулатора опонаша само хардверску архитектуру, али ако одређени софтвер захтева специфични оперативни систем или фирмвајер, онда се и они морају прилагодити. I оперативни систем и софтвер ће тада бити интерпретирани од стране емулатора, неће сами бити додељени родном хардверу. Поред овог преводиоца за бинарни језик и остале компоненте, као што су улазне и излазне, морају бити дефинисане у виртуалном облику такође.

Емулација би могла да се доведе до тог степена да виртуелно створи свој извор енергије из стварног струјног кола, на овом необичном решењу се ради година али је за сада само револуционална идеја. Развој емулатора се зауставио на симулацији хардверских спецификација и дигиталне логике. Емулација нових платформи захтева изузетну прецизност, до нивоа емулације појединачних генератора такта, непредвиђених аналогних елемената и имплементираних грешака.[4]

Преводиоци машинских кодова[уреди | уреди извор]

Ова врста емулатора тумачи машински код као бинарне бројеве и тако обрађује податке. Ова врста емулатора се користи приликом тестирања фирмвајера или приликом прављена програма за другачију платформу од оне на којој се ради. Интерфејс са реализацијом може и не мора да постоји, ако постоји онда је у форми електричног интерфејса.

[5]

Преводиоци компајлера[уреди | уреди извор]

Ова врста емулатора тумачи некомпајлиране компјутерске програме или скрипте, ради на подацима са задатком да врати информацију назад до реализације. Ови емулатори се користе за проверу имплементације и за дефинисање аномалија у коду, како би се осигурала машина.[5]

Виртуална реалност[уреди | уреди извор]

Овај тип емулатора имитира понашање физичког субјекта, тако што прима податке из његове имплементације и затим шаље назад информације у реализацију која утиче на промене у оригиналном окружењу. Интерфејс ових емулатора може да садржи поруке у различитим медијима (серијске саобраћајнице), логичке контролоре и друге компоненте за прилагођавање. [6]

Виртуална реалност са физичким компонентама[уреди | уреди извор]

Ова врста емулатора садржи други ниво емулације са одређеним физичким компонентама, као помагала за добијање повратне информације и побољшање виртуалне реалности. Најпознатији случај јесте емулације авиона, тј његових команди и физичке прегибне кабине заједно са комплетном симулацијом лета и турбуленција. Ови емулатори се користе при интеракцији људи и машина.

Конзолни емулатори[уреди | уреди извор]

Емулатори конзола за видео игре су програми који омогућавају рачунару или конзоли да покрену игру која оригинално није дизајнирана за ту платформу. Најчешће се користе за старије игрице чију је конзолу немогуће купити данас, али исто тако I за превођење, допуњавање I мењање постојеће игре.

Најтеже је постићи жељену брзину фрејмова по секунди, јер дизајнери старијих игрица нису предвидели данашње перформансе. Игра креирана за рачунар са 30 Мхз ће рачунару са 300 Мхз пружити исти утисак. Неки програми, као што су ДОС програми, се неће чак ни покренути на бржим рачунарима. Посебно при емулацији компјутера који су типа затворена кутија, код којих измена средишњег система није могућа, софтвер користи специфичне технике код којих је од велике важности брзина процесора.

Код и подаци игре се обично испоручују на емулатор у облику РОМ фајла (копија игре у облику патрона) или ИСО фајла (за системе који користе оптичке медије). Већина игрица у наслову садржи ауторска права, која имају своју цену и након много урађених копија и нарушене популарности, па играчи не желе валидно да купе игру коју могу да скину са интернета бесплатно и играју је на свом рачунару чак и без захтевајуће конзоле. Интернет је неограничено помогао развоју конзолних емулатора, па је тако у последњих пар година дизајнирано више врста емулатора за исту конзолу.[7]


Сега[уреди | уреди извор]

ОпенЕму, Генесис Плус, НуллДЦ, Демул, Провенанце [8]

Нинтендо[уреди | уреди извор]

ЕмиНес, ВисуалБоyАдванце, Нестер, Пројецт64, Долпхин [8]

Плаyстатион[уреди | уреди извор]

еПСXе, Xебра, ПЦСX2, Меднафен, Нуцлеус [8]

Xбоx[уреди | уреди извор]

Xениа, Xбоx Оне, Xеон [8]

Референце[уреди | уреди извор]

  1. ^ „Wхат ис емулатион?”. Конинклијке Библиотхеек. Архивирано из оригинала 13. 09. 2015. г. Приступљено 30. 04. 2016. 
  2. ^ Ротхенберг, Јеффреy (1998). „"Цритериа фор ан Идеал Солутион." Авоидинг Тецхнологицал Qуицксанд: Финдинг а Виабле Тецхницал Фоундатион фор Дигитал Пресерватион.”. Цоунцил он Либрарy анд Информатион Ресоурцес. Wасхингтон, DC. 
  3. ^ а б в „Дебуггинг анд фулл сyстем симулатионс”. 
  4. ^ Грангер, Стеwарт. Дигитал Пресерватион & Емулатион: фром тхеорy то працтице.http://www.leeds.ac.uk/cedars/pubconf/papers/ichim01SG.html
  5. ^ а б „High-level emulation”. wikipedia. 
  6. ^ „What is virtual machine?”. techtarget. 
  7. ^ а б в г „List of video game consoles emulators”. wikipedia. 

Spoljašnje veze[уреди | уреди извор]