Foundationপ্রথম নীতি থেকে
LEVEL 12 · Virtualization, Containers & Cloud

QEMU

কিউইএমইউ

Userspace machine emulator — disk/NIC/VGA/BIOS-এর মতো device emulation সবসময়ই নিজে করে, আর CPU execution-এর জন্য হয় নিজস্ব software translator (TCG) নাহয় KVM-এর হার্ডওয়্যার-accelerated ioctl ব্যবহার করে।

also: quick emulator, qemu-system-x86_64, tcg

QEMU একা (TCG) : software instruction translation — যেকোনো guest ISA, host-এর চেয়ে বহুগুণ ধীর
QEMU + KVM     : CPU execution KVM/hardware-accelerated (same-architecture-only)
সবসময় QEMU-র কাজ : disk controller, NIC, VGA/GPU, USB, BIOS/UEFI — ordinary userspace কোড
  • Fabrice Bellard ২০০৩-এ প্রকাশ করেন; মূল ইঞ্জিন TCG (Tiny Code Generator) — যেকোনো guest ISA-র instruction host-এর native code-এ dynamically translate করে
  • -enable-kvm/-accel kvm যোগ হলে CPU execution engine বদলে যায় (TCG-এর বদলে ioctl(KVM_RUN)), কিন্তু device model কোড অপরিবর্তিত — একই C ফাংশন উভয় মোডেই চলে
  • Cross-architecture emulation (যেমন ARM binary x86 host-এ চালানো) শুধু TCG মোডে সম্ভব — KVM মোডে guest ও host ISA একই হতে হয়
  • Firecracker/crosvm-এর মতো লাইটওয়েট বিকল্প QEMU ছাড়াই সরাসরি KVM API ব্যবহার করে, শুধু ন্যূনতম virtio device সমর্থন করে