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

KVM

কেভিএম

Linux kernel module যা `/dev/kvm` expose করে — চলমান kernel-কেই VT-x/AMD-V হার্ডওয়্যার ব্যবহার করে VMX root-mode hypervisor বানিয়ে দেয়; শুধু CPU ও memory virtualization primitive দেয়, কোনো device emulation করে না।

also: kernel-based virtual machine, /dev/kvm, kvm.ko

interface   : /dev/kvm character device, ioctl()-চালিত — আলাদা কোনো daemon/process নেই
প্রদান করে   : CPU virtualization (VMCS, VM-entry/VM-exit) + memory virtualization (EPT)
প্রদান করে না : disk/NIC/GPU/BIOS emulation — এটা userspace VMM-এর (যেমন QEMU) কাজ
মূল ioctl    : KVM_CREATE_VM, KVM_CREATE_VCPU, KVM_SET_USER_MEMORY_REGION, KVM_RUN
  • ২০০৬-এ Qumranet ডেভেলপ করে, ২০০৭-এ Linux 2.6.20-এ mainline kernel-এ merge; পরে Red Hat Qumranet কিনে নেয়
  • ioctl(vcpu_fd, KVM_RUN, ...) কলটাই VMX non-root mode-এ ঢোকে — device I/O access-এ VM-exit হয়ে userspace-এ ফিরে আসে
  • একা /dev/kvm খুলে কোনো bootable VM চালানো যায় না — একটা userspace VMM (সাধারণত QEMU, বা Firecracker/crosvm-এর মতো লাইটওয়েট বিকল্প) লাগে device emulation ও firmware লোডের জন্য
  • kernel space-এ রাখা হয়েছে বলেই ইচ্ছাকৃতভাবে ন্যূনতম — device emulation-এর জটিল কোড userspace-এ রাখাই নিরাপদ ডিজাইন