vykon VM emulatoru - was: Re: VMware & Virtual PC
Horák Daniel
horak na sitmp.cz
Pondělí Listopad 10 12:39:23 CET 2003
> Existuji zhruba 3 zakladni pristupy, jak emulaci (nebo nekdy
> spis simulaci) provadet:
>
> 1. Softwarove interpretovat kazdou jednotlivou instrukci. To
> ma tu vyhodu,
> ze lze napodobit prakticky libovolnou vychytavku emulovane
> platformy
> (vcetne kesi apod.) a to nezavisle na platforme, kde emulace bezi
> (ta muze byt naprosto odlisna od emulovane). Nevyhodou je znacna
> pomalost.
>
> 2. Dynamicky prekladat strojovy kod emulovane platformy do strojoveho
> kodu emulujici platformy. Vyhodou je, ze to pak bezi velmi
> rychle a lze
> to principialne pouzit, i kdyz jsou ty platformy odlisne.
> Nekdy z toho
> lze vymacknout jeste vic, kdyz se prelozeny kod jeste
> optimalizuje.
> Nevyhodou je rezie prekladu, ktera muze byt navic dost
> nedeterministicka.
>
> 3. Spustit emulovany kod ve vhodnem umelem prostredi primo na CPU a
> problematicke instrukce odchytit a vyresit softwarove. To je takove
> nejprimocarejsi reseni, ktere je casto nejrychlejsi, ale muze byt
> problem s vytvorenim toho prostredi (jak nacpat 4 GB emulovaneho
> adresoveho prostoru do realnych 4 GB, aby se tam vesel jeste
> emulator se svymi pracovnimi daty apod.) a pak samotnym odchycenim
> problematickych instrukci (napr. na i386 je par instrukci, ktere
> normalne odchytit nelze, ale z principu davaji odlisne vysledky
> na "cistem" CPU a pri emulaci), take muze mit odchytavani instrukci
> v urcitych situacich takovou rezii, ze to v konecnem dusledku bude
> pomalejsi nez predchozi pristupy.
Abych jeste doplnil dalsi veci:
3. zpusob - plex86 (www.plex86.org), pro virtualni stroje s Linuxem bude
asi nejlepsi - nechava bezet primo vsechno, co lze, zdrojak Linuxu se
patchuje (naprosto minimalne), aby tam nebyly instrukce, ktere nelze
virtualizovat
2. zpusob - qemu, guss (http://www.nongnu.org/guss/) - prevadi instrukce
ciloveho stroje na mikro-operace, ktere jsou implementovany uz pro
hostitelsky stroj (jak qemu, tak guss pouzivaji stejny generator ;-)),
guss ma emulovano vice PC HW nez qemu
1. zpusob - napr. emulatory, ktere jsou distribuovany spolu s GDB (v
adresari sim) a mnohe dalsi - napr. pro MIPS = vmips, sulima, pro IBM
mainframe = Hercules, pro PPC =
http://www.microlib.org/G3/PowerPC750.php, ...
Dan
Další informace o konferenci Linux