Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Malé povídání o velkých emulátorech

Za dávných časů neevokovalo slovo počítač v lidech představu osobního počítače. Stejně tomu není mezi mnoha lidmi ani dnes. Počítačem je stejně dobře ZX Spectrum, Atari, SPARC, Apple MacIntosh jako třeba SGI. Jelikož od každého jmenovaného existuje několik klonů, dozvíte-li se, že nějaký počítač uměl báječnou věc, a chcete-li si to ověřit, máte dvě možnosti. Buďto systematicky navštěvovat pamětníky, kteří tyto mazlíčky mají doma, nebo si pořídit emulátor.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Stejně užitečný vám může být emulátor ve chvíli, kdy vás někdo přesvědčí o tom, že byste měli vyzkoušet nový kernel, jiný operační systém či nějaké neoficiální patche do kernelu. Zabýval jsem se zkoumáním emulátorů všeho možného, leč jelikož toto je server zaměřený na Linux, pojednám zejména o emulátorech věcí dodnes aspoň trochu živých a s Linuxem souvisejících.

Z čeho emulátor sestává?

  1. Ze samotného interpretačního programu, což je obvykle konečný automat interpretující strojový kód emulovaného počítače (kdo tomu nerozumí, může tuto informaci ignorovat, dále použita nebude).
  2. z obtisků „imagí“ pamětí (ROM-image),
  3. z obrazů disků (disk-image).

První zpravidla nebývá problém sehnat, najdete je většinou na různých ftp serverech. S druhým bývá obtížně překonatelný problém, jelikož ROM-image jsou chráněny všemi možnými druhy autorských práv, dokonce i BIOSy v osobních počítačích. Třetí obvykle též bývá problémem, neboť každý autor emulátoru vymyslí nějakou reprezentaci disku, pokud možno co nejhůře pochopitelnou všem ostatním, což znesnadňuje údržbu emulovaných disků. Nejzákeřnější byl v tomto směru emulátor Bochs, u něhož jsem po dni stráveném marnými pokusy o výrobu alespoň částečně použitelného disku, tj. disku naformátovaného a osazeného něčím bootovatelným (nebo aspoň partitionou) po pročtení zdrojáků zjistil, že disk je reprezentován jako „syrové médium“, takže image lze snadno vytvořit sekvencí:
cat /dev/hda > soubor.disk
(předpokládá se, že nestojíte na /dev/hda B-) )

Nyní okomentujme jednotlivé emulátory, tedy jejich deklarované a fyzické vlastnosti:

DOSEMU je emulátor hardwaru, na němž lze rozběhnout něco jako MS-DOS. Jelikož Microsoft své produkty (jak každý dobře ví) nedává k dispozici zdarma, byl pod tento emulátor vyvinut Free DOS, který sice v některých ohledech hapruje, ale zdá se, že až se naimplementuje ještě pár dalších (nedokumentovaných) funkcí MS-DOSu, bude jej možné tímto plnohodnotně nahradit. Vývoj DOSEMU však jeví jisté, dle mého názoru neuspokojivé tendence. Měl jsem zkušenosti s verzí 0.8(?), která za svých dřevních dob fungovala bez větších potíží, pak však nastalo zemětřesení, které mělo mít za následek jistá údajná zlepšení. Současná verze je 1.0.2.
Podporuje se přístup na zařízení (diskety, partitiony, CD), je ale možno je nahradit souborem. Ve starých verzích šlo udat jako místo, na němž se disk nachází, adresář, a tento pak byl zpřístupněn. V současné době byly tyto vlastnosti přesunuty z konfigurace emulátoru až za start, tedy do souboru CONFIG.SYS. Patrně proto, že nikdo nemůže říci, zda se v emulátoru bude spouštět MS DOS, Free DOS, či něco úplně jiného. Když jsem posledně DOSEMU zkoušel, byly zrovna s tímhle menší problémy.

WINE (Wine Is Not Emulator) je emulátor MS-Windows ve všech verzích, které mohou smrtelníka napadnout (3.0, 3.1, 95, 98, NT, 2K, XP…) (zlí jazykové říkají, že Windows 3.0 a 3.1 se lišily jen tím, že první měly kernel napsaný v C, zatímco druhé v assembleru a byly tudíž použitelné. Jestli emulátor tuto vlastnost zohledňuje, jsem vyzkoušet zapomněl, můžete to otestovat sami (máte-li čas, náladu a otestovatelné programy). Emulátor obsahuje wine server, wine-libu a wine. Wine-library by měla obsahovat knihovní funkce a API windowsů. Emulátoru je potřeba nastavit, kde má hledat disketu, kde disk C, kde jsou Windows doma, kde je temp,… Na rozdíl od dosemu tento emulátor používá mateřský souborový systém, tedy nemá vlastní disky. Z toho vyplývají některé problémy, například, že různé programy nemohou zapisovat, kam je napadne, třebas do dynamických knihoven, nemáte-li k tomu práva (a modifikovat knihovnu se mi před očima ve WINE pokusilo už několik programů). Mimo to má občas menší problémy s překreslováním oken. Poslední verzi WINE jsem kompiloval (sice úspěšně, zato celých) 6 hodin na Pentiu 83.

Bochs je emulátorem PC. Umí emulovat procesory od i386 až do 686, a to ve verzi pro 1, 2 nebo 4 procesory. S instrukční sadou sice problémy nejsou, zato jsou na pomalejších strojích problémy s rychlostí. Koukal jsem se, nešlo-li by nějak nenásilně tyto problémy opravit, ale nic jsem nevymyslel, jelikož doba emulace jednotlivých instrukcí se pohybovala (na Pentiu 83) od 2 do 20 mikrosekund s mnou očekávaným rozdělením (ty operace, které jsem při četbě výstupu profilu považoval za těžší, trvají déle). Emulátor je napsán v C++. Jeho napsání v C by možná rychlost zvýšilo, nicméně autoři se patrně pokoušejí interpretaci stále zrychlovat. Stroj, na němž jsem prováděl testy posledně, má za normálního počasí výkon kolem 1000 BOGOMipsů, Bochs v něm spuštěný však dosahuje výkonnosti méně než 2 BOGOMipsy (měřeno linuxím kernelem). Seženete-li dostatečně rychlý stroj, je Bochs příjemný. Podporuje CD mechaniky, dvě diskety a hejno pevných disků (autoři uvádějí, že až osm, myslím, že včetně CD mechanik). Všechny diskové entity můžete používat buďto přímo, nebo přes loopback, tedy ze souboru. Je též podporována emulace síťové karty (NE2000). Podotýkám, že nedáte-li si pozor a budete s ní experimentovat v cizí síti, může se stát, že vás bude hledat komando s vysílačkami (i když pravděpodobně neúspěšně).

Lepších výsledků co do výkonnosti dosahuje VMware, který je sice výkonnější, zato však komerční. Není to v pravém smyslu emulátor, vývojáři mu říkají virtualizér. Jedná se o to, že instrukce se provádějí přímo na procesoru, čímž se dosahuje efektivity při provádění, jen některé instrukce se odchytávají a šidí (in, out, int…). Tudíž jej lze použít pouze na PC. VMware má osobitou strukturu diskových imagí, která umožňuje rozhodnout, zdali chceme disky měnit, neměnit, nebo se rozhodnout až při vypnutí virtuálního stroje (zkrátka když uděláte svým jednáním do disku díru, tak to necháte zrušit, jinak zapsat). Lze nastavit podobné vlastnosti jako u Bochsu. K VMware existuje modul do kernelu, který má virtualizéru nějakým způsobem zlepšovat podmínky. Jsou lidé, kteří říkají, že instalace tohoto modulu je cestou do pekel pro celkovou zabugovanost modulu i VMware, kterému tento údajně umožňuje převzít kontrolu nad počítačem, já jsem s tím ale žádné problémy neměl.

K Bochsu si neodpustím ještě pár šťouravých připomínek, a to předně, že padá příliš civilizovaně. Když spadne počítač, obvykle obrazovka zčerná, disky se zůstanou točit, nebo ne a nic se neděje. Když Bochs odhalí chybu, řekne, kde na ni přišel, tedy je protkán množstvím všech možných záchytných mechanismů. Člověka trochu mate, když Bochs zastaví interpretaci třeba proto, že nenalezl bootovatelné médium a čeká na odpověď uživatele z konzole. Na druhou věc, která mě osobně znepokojuje o něco víc, jsem přišel při pokusu o instalaci Open BSD. Ty si zapnuly syrovou klávesnici, takže jim měly chodit akorát signály „klávesa zmáčknuta“ a „klávesa puštěna“. Ony signály ale chodily neustále, dokud byla klávesa držena. Chtěl jsem ohlásit chybu, ale na stránce se seznamem chyb jsem se dočetl, že tutéž chybu hlásil někdo jiný už před více než rokem a podobné hlášení poslal někdo další i letos. Každopádně, jelikož autoři oznámili brzký release, předpokládám, že v něm opraví i tuto závadu.

Jak vidíte, s emulátory to, stejně jako s čímkoliv jiným, není jednoduché. Přesto však tvrdím, že mohou být výkonnými pomocníky nejen vývojářům kernelu, kterým mohou ochránit obsah disku, ale třeba i správcům, kteří si na nich mohou vyzkoušet různé úpravy, aniž by riskovali poškození skutečných dat, nebo obyčejným uživatelům, kteří jsou třeba jenom zvědaví, jak se ovládá fdisk.

davame_internetu_obsah
       

Linky:
Bochs
Wine
FreeDOS
VmWare

Windows je ochrannou známkou firmy Mircosoft, Linux Linuse Torvaldse, Pentium je ochrannou známkou firmy INTEL, PerM je paňáček s plastikovými brýlemi, doufám, že jsem na nic nezapomněl (pozn. red.: a kolegyně Doležalová je držka ;) –Johanka).

Školení: Linux – Zálohování, Vysoká dostupnost, SNMP dohled

Na třídenním školení se naučíte nainstalovat a spravovat systém zálohování, replikace dat a vysoké dostupnosti dat. Dále také pracovat s RAID a LVM poli a nainstalovat a spravovat si vlastní dohledový systém.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,96

Přehled názorů

pěkné
Jirka 4. 12. 2002 00:59
Nový
Mno...
Zed 4. 12. 2002 03:47
Nový
Velice pekny
kaaja 4. 12. 2002 06:50
Nový
WINE
Petr Krčmář 4. 12. 2002 08:33
Nový
Dalsie emulatory?
Atlasz 4. 12. 2002 09:12
Nový
└ 
Re: Dalsie emulatory?
Martin Bílý 5. 12. 2002 14:27
Nový
emulator IBM mainframes
Dan 4. 12. 2002 10:56
Nový
XMAME-MultiArcadeMac hineEmulator for XWindow
anonymní uživatel 4. 12. 2002 11:26
Nový
├ 
Re: XMAME-MultiArcadeMac hineEmulator for XWindow
carten 4. 12. 2002 12:58
Nový
│
├ 
Re: XMAME-MultiArcadeMac hineEmulator for XWindow
anonymní uživatel 4. 12. 2002 13:54
Nový
│
└ 
Re: XMAME-MultiArcadeMac hineEmulator for XWindow
Milan 5. 12. 2002 21:15
Nový
└ 
Re: XMAME-MultiArcadeMac hineEmulator for XWindow
Patrikk 7. 12. 2002 16:44
Nový
Emulátor Amigy
Pavel 4. 12. 2002 12:17
Nový
└ 
Re: Emulátor Amigy
Stanislav Brabec 4. 12. 2002 17:22
Nový
 
└ 
Re: Emulátor Amigy
Dz. 4. 12. 2002 18:42
Nový
 
 
├ 
Re: Emulátor Amigy
u76u76u7 4. 12. 2002 20:48
Nový
 
 
└ 
Re: Emulátor Amigy
mun 11. 12. 2002 23:31
Nový
FreeDOS
wererw 4. 12. 2002 12:39
Nový
└ 
Re: FreeDOS
Miloslav Ponkrac 4. 12. 2002 19:56
Nový
 
└ 
Re: FreeDOS
u76u76u7 4. 12. 2002 20:41
Nový
Bochs
XaroN 4. 12. 2002 12:43
Nový
└ 
Re: Bochs
Puco 4. 12. 2002 19:20
Nový
Malinko odkazu
anonymní uživatel 4. 12. 2002 16:37
Nový
WINE
luci 5. 12. 2002 14:46
Nový
Emulator POWER PC G4 (macintosh)
hacxman 5. 12. 2002 14:48
Nový
├ 
Re: Emulator POWER PC G4 (macintosh)
keln 5. 12. 2002 22:56
Nový
│
└ 
Re: Emulator POWER PC G4 (macintosh)
hacxman 6. 12. 2002 12:52
Nový
│
 
├ 
Re: Emulator POWER PC G4 (macintosh)
keln 6. 12. 2002 19:45
Nový
│
 
└ 
Re: Emulator POWER PC G4 (macintosh)
keln 6. 12. 2002 19:53
Nový
│
 
 
└ 
Re: Emulator POWER PC G4 (macintosh)
hacxman 9. 12. 2002 14:08
Nový
└ 
Re: Emulator POWER PC G4 (macintosh)
StanleZ2010 21. 8. 2010 23:02
Nový
DOSBox
fidlej 8. 12. 2002 22:01
Nový
Stlacenie klaves (ohlasom OpenBSD)
Matus 9. 12. 2002 09:04
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem