x86-64 emulátor fejlesztés

dc.contributor.advisorVarga, Imre
dc.contributor.authorHorváth, Norbert
dc.contributor.authorSajó, Balázs
dc.contributor.authorRóth, Arnold
dc.contributor.departmentDE--Informatikai Kar
dc.date.accessioned2024-02-01T21:01:29Z
dc.date.available2024-02-01T21:01:29Z
dc.date.created2023-11-16
dc.description.abstractEgy informatikus számára fontos, hogy tudja, értse hogyan működik egy számítógép és hogy átlássa mi is történik egy program végrehajtása során a processzorban. A programok hatékonyságvizsgálatai során is fontos lehet azt tudni, hogy mikor melyik assembly szintű utasítás hajtódik végre. Ilyen adatok kigyűjtése futásidőben nem kivitelezhető egy valós rendszerben. Ha viszont az adott architektúrát emuláljuk, akkor egy program futásáról minden információt kinyerhetünk, akár tudományos akár oktatási célból. Egy olyan x86-64 architektúra emulátort akartunk létrehozni, amely képes egyszerűbb C vagy assembly nyelven megírt programok vagy valós futtatható állományok végrehajtására Linux operációs rendszer alatt. A projekt és a szoftverünk futása három fázisra bontható: előfeldolgozás, emuláció, megjelenítés. Az előfeldolgozás során a forráskódokból a gcc segítségével futtatható állományt készítünk, majd ezt a bináris fájlt a Linux objdump parancsa segítségével visszafejtjük egy már valós memóriacímeket tartalmazó assembly-szerű szöveggé, ami alapján megadható, hogy az egyes utasítások hol találhatóak a kódszegmensben és mi kerül az adatszegmens egyes bájtjaiba. Ezt használjuk fel a második lépés elején az emulátor inicializálására. Megvalósítottuk a teljes regiszterkészletet és képessé tettük az a C nyelven írt emulátort számos adatmozgató, aritmetikai és vezérlésátadó utasítás, valamint ezek különböző címzési módjainak alkalmazására. Az emulátort oktatási célra is szeretnénk használni így az utastások kapcsán nem csak a gépi kódot tároljuk el, hanem egyéb kiegészítő információkat is. Emiatt külön implementáltuk a rendszer utasítás- és adatmemóriáját egy-egy láncolt listával, hogy a valós címtérnek csak azon részeit tároljuk, amelyek ténylegesen felhasználásra kerülnek. A rendszer állapotát minden egyes utasítás végrehajtása után elmentjük és végül ezt fogja felhasználni a Pythonban írt grafikus felhasználói felület az architektúra működés interaktív szemléltetésére.
dc.description.courseMérnökinformatikus
dc.description.degreeBSc/BA
dc.format.extent46
dc.identifier.urihttps://hdl.handle.net/2437/365914
dc.language.isohu
dc.rights.accessHozzáférhető a 2022 decemberi felsőoktatási törvénymódosítás értelmében.
dc.subjectemulátor x86-64
dc.subject.dspaceDEENK Témalista::Informatika
dc.titlex86-64 emulátor fejlesztés
Fájlok
Eredeti köteg (ORIGINAL bundle)
Megjelenítve 1 - 1 (Összesen 1)
Nincs kép
Név:
szakdolgozat.pdf
Méret:
903.45 KB
Formátum:
Adobe Portable Document Format
Leírás:
szakdolgozat
Engedélyek köteg
Megjelenítve 1 - 1 (Összesen 1)
Nincs kép
Név:
license.txt
Méret:
2.35 KB
Formátum:
Item-specific license agreed upon to submission
Leírás: