QEMU

Från Wiki.linux.se
Version från den 28 april 2024 kl. 06.21 av Admin (diskussion | bidrag)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

QEMU

QEMU (Quick EMUlator) är en öppen källkodsprogramvara för att emulera och virtualisera hårdvara, som möjliggör körning av operativsystem för en typ av processor på en annan typ. Detta verktyg är essentiellt för korsutveckling och virtuella testsystem genom att simulera hela datorsystem, inklusive processor och periferienheter.

Arkitektur

QEMU består av flera komponenter:

  • CPU Emulator: Hjärtat i QEMU är en dynamisk binäröversättare som modellerar och översätter instruktioner för gäst-CPUer till värdmaskinens språk.
  • Device Emulator: Emulerar ett brett spektrum av hårdvaruenheter som nätverkskort, grafikkort och USB-enheter.
  • User-mode Emulation: Möjliggör körning av enskilda program för olika arkitekturer för applikationsutveckling och testning.

Funktionalitet och användning

QEMU använder två huvudtekniker för virtualisering:

  • Full Emulation: Hela datorsystem emuleras för att köra operativsystem på fristående hårdvara.
  • KVM (Kernel-based Virtual Machine): Samarbete med Linux-kärnans KVM-modul för att tillhandahålla hårdvaruaccelererad virtualisering, vilket förbättrar prestandan avsevärt.

Prestanda

Prestandan varierar beroende på om QEMU körs med eller utan KVM. Utan KVM innebär en overhead från dynamisk kodöversättning, medan KVM-användning när gästens och värds arkitekturer är desamma kan ge prestanda nära den underliggande hårdvaran.

Användningsområden

  • Programvaruutveckling: Bygga och testa program på olika plattformar utan fysisk hårdvara.
  • Virtualiserade servermiljöer: Skapa och underhålla flera servrar på en enda fysisk maskin i datacenter.
  • Forskning och utbildning: Används inom akademin för studier inom operativsystemdesign och nätverkssäkerhet.

QEMU är ett viktigt verktyg inom IT-industrin, speciellt där plattformsöverskridande kompatibilitet och avancerad systememulering krävs.