====== QEMU (Quick Emulator) ====== **QEMU** je open-source emulátor a virtualizátor s širokým spektrem funkcí. Na rozdíl od čistých [[hypervisor|hypervisorů]] dokáže QEMU emulovat kompletní hardwarovou architekturu (např. ARM, MIPS, PowerPC) na odlišném hostitelském procesoru (např. x86_64). V moderním cloudu se nejčastěji používá ve spojení s **[[kvm|KVM]]**, kde QEMU zajišťuje emulaci vstupně-výstupních (I/O) zařízení, zatímco KVM se stará o rychlé provádění instrukcí procesoru. ===== Režimy fungování ===== QEMU může pracovat ve dvou základních režimech: ==== 1. Full System Emulation (Plná emulace systému) ==== QEMU emuluje celý počítač včetně procesoru a všech periferií. * **Příklad:** Můžete spustit operační systém pro Raspberry Pi (ARM) na svém běžném notebooku (Intel/AMD). * **Výhoda:** Umožňuje vývoj softwaru pro jiný hardware. * **Nevýhoda:** Je velmi pomalý, protože každá instrukce procesoru se musí překládat softwarově. ==== 2. Virtualizace (s akcelerací KVM/Xen) ==== Pokud hostitel i host sdílejí stejnou architekturu (např. oba x86_64), QEMU využije [[kvm|KVM]] k přímému spouštění kódu na procesoru. * **Příklad:** Běžný virtuální server v cloudu. * **Výhoda:** Výkon je téměř srovnatelný s fyzickým strojem (tzv. "near-native speed"). ===== Klíčové vlastnosti a nástroje ===== ==== QEMU Disk Image (qcow2) ==== QEMU definovalo jeden z nejpopulárnějších formátů virtuálních disků – **.qcow2** (QEMU Copy-On-Write). * Podporuje **snapshoty** (stavy v čase). * Podporuje **dynamické zvětšování** (soubor na disku zabírá jen tolik místa, kolik je skutečně zapsaných dat). * Umožňuje šifrování a kompresi. ==== Emulace periférií ==== QEMU poskytuje virtuálnímu stroji standardizovaný hardware: * **Grafika:** Standardní VGA, Cirrus Logic nebo Virtio-GPU. * **Síť:** Emulace běžných karet (Realtek, Intel) nebo rychlé rozhraní **Virtio**. * **Vstupy:** USB řadiče, myši, klávesnice. ==== Virtio ==== Jedná se o standard pro tzv. **paravirtualizované ovladače**. Místo aby QEMU složitě emulovalo starou reálnou síťovou kartu, domluví se s operačním systémem hosta na "zkratce", která výrazně zrychluje přenos dat mezi virtuálním strojem a fyzickým hardwarem. ===== QEMU v ekosystému Linuxu ===== QEMU je nízkoúrovňový nástroj a jeho příkazová řádka je velmi komplexní. Proto se málokdy spouští přímo. Většinou je ovládáno nadřazenými nástroji: * **Libvirt:** Standardní API, které generuje dlouhé konfigurační řetězce pro QEMU. * **Proxmox / OpenStack:** Webová rozhraní, která na pozadí spouštějí QEMU procesy. * **GNS3:** Nástroj pro simulaci sítí, který využívá QEMU pro běh virtuálních routerů (Cisco, Juniper). ===== Proč je QEMU důležité? ===== Bez QEMU by KVM bylo pouze "mozkem" bez "rukou a nohou". Zatímco KVM poskytuje výpočetní sílu, QEMU dodává virtuálnímu stroji vše, co potřebuje k interakci s okolním světem – od pevných disků až po síťové připojení. --- **Související termíny:** [[kvm|KVM]], [[hypervisor|Hypervisor]], [[virtio|Virtio]], [[libvirt|Libvirt]], [[iaas|IaaS]].