QEMU - qemulátor

Petr Krčmář 6. 4. 2005

Potřebujete občas emulovat jiný procesor nebo byste rádi měli k dispozici virtuální počítač pro zkoušení nových distribucí? Pak je QEMU právě pro vás.

K čemu je to dobré

Emulátor procesoru je obecně velmi užitečná věc. Běžnému uživateli se hodí například ve chvíli, kdy potřebuje vyzkoušet novou distribuci nebo si chce odskočit do jiného systému. Místo složitého bootování nebo rozdělování disku prostě spustí aplikaci, která vytvoří v běžícím systému virtuální prostor. Velmi často se takovému provozu říká „akvárko”. Emulátor totiž skutečně vytváří jakési akvárium, ve kterém běží druhý systém. Důležité je, že systém v akváriu nemá o emulaci ponětí. Vzpomínáte si na simulátory ze StarTreku?

Konkrétních implementací existuje celá řada, za ty známé můžeme jmenovat například Bochs nebo VMWare. Ani jeden z nich však není bez chyb. Bochs je často proklínán za svou složitost a hromadu voleb a VMWare je sice špičkové, ale zase komerční. Existuje však i jednoduchá a svobodná alternativa. Tou je právě QEMU.

QEMU umí emulovat architektury x86, Sparc, ARM a PPC. Nejčastěji asi budete používat emulaci x86 na x86, ale emulace ostatních architektur funguje podobně.

Instalujeme

Instalace je zcela triviální. Buď již máte ve své distribuci příslušný balíček, nebo ho prostě stáhnete ze správné stahovací stránky. Verze pro Linux je zabalená v běžném tarballu (4.6 MB), a tak ji stačí rozbalit a zkopírovat do správných adresářů. Důležitý je samozřejmě adresář /usr/local/bin, zbytek je už jen dokumentace.

Soubory v tomto binárním balíčku jsou kompilovány staticky, takže nejsou potřeba žádné dodatečné knihovny. A už můžeme pouštět, to je celá instalace.

QEMUlujeme

QEMU může pracovat ve dvou režimech:

Plná emulace umožňuje přímo nabootovat virtuální počítač a provozovat na něm libovolný operační systém. Veškerý software pak vidí pouze virtuální hardware, který je mu podsouván QEMU.

Uživatelská emulace pracuje pouze v Linuxu a umožňuje spouštět aplikace určené pro jiný procesor.

Nás bude v tuto chvíli zajímat plná emulace, při které budeme provozovat celý systém. Ideální je například nějaké ISO live distribuce. Spuštění je jednoduché. QEMU potřebuje k běhu samozřejmě běžící X Window system, pak už stačí zadat:

$ qemu -m 256 -hda virtual.iso -cdrom neco.iso -boot d -enable-audio -user-net

Význam parametrů je následující: počítač bude mít 256 MB paměti, jako disk bude použit soubor virtual.iso, jako cdrom neco.iso, budeme bootovat z CD (c – disk, d – cdrom), chceme emulovat zvukovou kartu a síťovou taky.

Parametrů je samozřejmě mnohem více, kompletní seznam je k dispozici ve velmi podrobné dokumentaci. Za zmínku snad stojí ještě parametr -full-screen.

Soubory iso jsou samozřejmě běžné obrazy a disk si můžeme jednoduše vyrobit pomocí:

$ dd if=/dev/zero of=virtual.iso ibs=1024 count=1048576
$ /sbin/mkfs.ext2 virtual.iso 

Tím si vytvoříme 1GB soubor a vyrobíme v něm běžný souborový systém Ext2FS. Analogicky pak můžeme vytvořit třeba disk s FAT. Obraz cdrom se zase musí tvářit jako CD a v případě bootování musí mít všechny náležitosti.

QEMU

Pokud se nám všechno povedlo a QEMU běží, měli bychom vidět okno, ve kterém bootuje počítač. Normálně se nám objeví zavaděč a nastartuje systém ze zadanéhovirtuálního média. QEMU emuluje v případě PC tento hardware:

  • i440FX host PCI bridge a PIIX3 PCI to ISA bridge
  • Cirrus CLGD 5446 PCI VGA kartu nebo obyčejnou VGA kartu s VESA
  • PS/2 myš a klávesnici
  • dva PCI IDE disky nebo cdrom
  • Floppy disk
  • NE2000 PCI síťovou kartu
  • Sériové porty
  • Soundblaster 16 zvukovou kartu

V tuto chvíli by nám měl v okně běžet druhý systém. Jeho výkon se pohybuje mezi 10 % a 20 % běžného výkonu vašeho počítače. Relativně čersvým podprojektem QEMU je QEMU Accelerator, což je modul, který je k dispozici pouze pro Linux a měl by s jádry 2.4 nebo 2.6 zvýšit emulovaný výkon nad 90 % nominálního.

Systém běží, obvykle i zvučí a bez problému síťuje. V tomto ohledu jsem se za celou dobu používání QEMU nesetkal s žádným problémem. Virtuální počítač ukončíte jednoduše tak, že ho vypnete, například pomocí

$ halt

nebo jak jste zvyklí.

Závěr

QEMU je bezesporu velmi jednoduchý a praktický kus software. Hodí se při zkoušení nových distribucí nebo live distribucí, které zrovna nechcete pálit na CD. Může se hodit také tam, kde máte dualboot a nechce se vám zrovna rebootovat (jednoduše namíříte QEMU na /dev/…). QEMU je multiplatformní, takže si na PPC můžete provozovat třeba MS Windows nebo naopak. Fantasii se meze nekladou.

Pokud se vám nelíbí ovládání řádkou, můžete se podívat na projekt KQEMU. Jedná se o front-end napsaný v QT, který vám umožní nastavit si QEMU pohodlně z KDE.

Našli jste v článku chybu?
Měšec.cz: Cestujte bez starostí, získejte výhodné pojištění

Cestujte bez starostí, získejte výhodné pojištění

Podnikatel.cz: 5 důvodů, proč vaše e-maily končí ve spamu

5 důvodů, proč vaše e-maily končí ve spamu

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

DigiZone.cz: Mobilní aplikace pro DVTV je tady

Mobilní aplikace pro DVTV je tady

DigiZone.cz: Slováci první, Češi třetí. Krásný...

Slováci první, Češi třetí. Krásný...

Lupa.cz: eIDAS je tu. O co přijdeme u elektronických podpisů?

eIDAS je tu. O co přijdeme u elektronických podpisů?

Lupa.cz: Na základně u Dobříše se rozjel 3D tisk z kovu

Na základně u Dobříše se rozjel 3D tisk z kovu

Vitalia.cz: Epidemie: Klíšťová encefalitida po ovčím sýru

Epidemie: Klíšťová encefalitida po ovčím sýru

DigiZone.cz: Kritické poznámky k DVB-T2

Kritické poznámky k DVB-T2

DigiZone.cz: TV Nova a její postoj k DVB-T2

TV Nova a její postoj k DVB-T2

DigiZone.cz: Skylink: Nova Sport volně

Skylink: Nova Sport volně

Vitalia.cz: Další Míša má Klasu

Další Míša má Klasu

Lupa.cz: Vydavatelé jsou v háji, ale neumí si to připustit

Vydavatelé jsou v háji, ale neumí si to připustit

Root.cz: Střílejte v obýváku, stačí kamera a projektor

Střílejte v obýváku, stačí kamera a projektor

Podnikatel.cz: Jeho dřevěné hodinky chtějí na všech kontinentech

Jeho dřevěné hodinky chtějí na všech kontinentech

Měšec.cz: Od kdy musí studenti platit pojistné?

Od kdy musí studenti platit pojistné?

DigiZone.cz: Krajské televize na okraji zájmu?

Krajské televize na okraji zájmu?

DigiZone.cz: Markíza: tady je předběžné opatření

Markíza: tady je předběžné opatření

Podnikatel.cz: "Okurku" vyřeší slevové servery. Už jim věřte

"Okurku" vyřeší slevové servery. Už jim věřte

DigiZone.cz: Skylink zapojil nový transpondér

Skylink zapojil nový transpondér