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?
Podnikatel.cz: Karuselové podvody. Jak se nepřiplést?

Karuselové podvody. Jak se nepřiplést?

Měšec.cz: Zelená karta – kde neplatí povinné ručení?

Zelená karta – kde neplatí povinné ručení?

120na80.cz: Tipy pro odvodnění organismu

Tipy pro odvodnění organismu

Měšec.cz: Hypoteční pasti: na co si dát pozor?

Hypoteční pasti: na co si dát pozor?

Podnikatel.cz: Rekord! Na vedlejšák podniká přes 400 000 lidí

Rekord! Na vedlejšák podniká přes 400 000 lidí

DigiZone.cz: Stříbro a Tachovsko: Západočeská TV zlepšila pokrytí

Stříbro a Tachovsko: Západočeská TV zlepšila pokrytí

Vitalia.cz: Strečink podle internetu? Raději ne

Strečink podle internetu? Raději ne

Podnikatel.cz: Fotogalerie: Jesenka už má skoro 50 let

Fotogalerie: Jesenka už má skoro 50 let

Lupa.cz: IT scéna po brexitu: přijde exodus vývojářů?

IT scéna po brexitu: přijde exodus vývojářů?

120na80.cz: Nyní středně velké riziko

Nyní středně velké riziko

DigiZone.cz: Markíza šachuje s českými seriály

Markíza šachuje s českými seriály

Lupa.cz: EU začala prověřovat bezpečnost open-source

EU začala prověřovat bezpečnost open-source

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

Podnikatel.cz: Místa, kde hází podnikání klacky pod nohy

Místa, kde hází podnikání klacky pod nohy

Měšec.cz: Banky umí platby na kartu, jen to neříkají

Banky umí platby na kartu, jen to neříkají

Vitalia.cz: Bio vejce nepoznají ani veterináři

Bio vejce nepoznají ani veterináři

DigiZone.cz: Kauza technik: oficiální vyjádření Novy

Kauza technik: oficiální vyjádření Novy

Měšec.cz: Cool karta: recenze předplacenky

Cool karta: recenze předplacenky

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Měšec.cz: Kdy může jít na mateřskou otec či prarodiče?

Kdy může jít na mateřskou otec či prarodiče?