ืืืื ื ืื ืืืืืช ืฉืื:
1) KVM
KVM (ืืืฉื ืืืจืืืืื ืืืืกืก ืืืื) ืืื ืืืคืจืืืืืจ (VMM - Virtual Machine Manager) ืืคืืขื ืืืืืื ืืืขืจืืช ืืืคืขืื ืืื ืืงืก. ืืฉ ืฆืืจื ื-Hypervisor ืขื ืื ืช ืืืคืขืื ืชืืื ื ืืืฉืื ืืกืืืื ืื ืงืืืืช (ืืืจืืืืืืช) ืืืืงืืื ืืืกืชืืจ ืืชืืื ื ืื ืืช ืืืืืจื ืืคืืืืช ืืืืืชืืช ืขืืื ืชืืื ื ืื ืคืืขืืช. ื-Hypervisor ืคืืขื ื"ืืจืืื" ืืื ืืืืืจื ืืคืืืืช (ืืืจื) ืืืขืจืืช ืืืคืขืื ืืืืจืืืืืืช (ืืืจื).
ืืืืืื ืฉ-KVM ืืื ืืืืื ืกืื ืืจืื ืฉื ืืืืช ืืื ืืงืก, ืืื ืืงืื ืืช ืื ืืืืืื ืื ืืจืฉืื ืืืงืจื ื (ื ืืืื ืืืืจืื, ืืชืืื ืืื'). ืืืืชืื ืืื, ืืกืืคื ืฉื ืืืจ, ืื ืืืืืืช ืืืื ืืืืขืืช ืืืืจืืื (ืฉืื ืืืืจืืื ืขืืืืื ืขื ืืืคืจืืืืืจ ืฉืคืืขื ืขื/ืืงืจื ื ืฉื ืืขืจืืช ืืืคืขืื Linux).
KVM ืืื ืืืืจ ืืืื, ืืื ืืฉืืขืฆืื ืื ืื ืืกืคืืง ืืื ืืืคืขืื ืืขืจืืช ืืคืขืื ืืืจืืืืืืช, ืื... ืื ืืืจืฉ ืืืืืฆืืืช I/O. ืขืืืจ I/O (CPU, ืืืกืงืื, ืจืฉืช, ืืืืื, PCI, USB, ืืฆืืืืช ืืืจืืืช ืืื') KVM ืืฉืชืืฉ ื-QEMU.
2) QEMU
QEMU (Quick Emulator) ืืื ืืืืืืืจ ืืืืฉืืจืื ืฉืื ืื ืืืืคืฉืจ ืืืจืืฅ ืืขืจืืืช ืืคืขืื ืืืืืขืืืช ืืืจืืืืงืืืจื ืืืช ืขื ืืืจืช (ืืืืืื, ARM -> x86). ืื ืืกืฃ ืืืขืื, QEMU ืืืงื ืืืฉืืจืื ืืืงืคืืื ืฉืื ืื: ืืจืืืกื ืจืฉืช, HDD, ืืจืืืกื ืืกื, PCI, USB ืืื'.
ืื ืขืืื ืืื:
ืืืจืืืช/ืงืื ืืื ืืจื (ืืืืืื, ARM) ืืืืจืื ืืงืื ืืื ืืื ืืืชื ืชืืื ืืคืืืคืืจืื ืืืืฆืขืืช ืืืืจ TCG (Tiny Code Generator) ืืื ืืงืื ืืืื ืืจื ืืืืชื ืชืืื ืืคืืืคืืจืื ืืืืจ ืืืืจืืืช/ืงืื ืืขื (ืืืืืื, x86).
ARM โ> intermediate_code โ> x86
ืืขืืงืจืื, ืืชื ืืืื ืืืจืืฅ ืืืื ืืช ืืืจืืืืืืืช ืขื QEMU ืขื ืื ืืืจื, ืืคืืื ืขื ืืืื ืืขืืืื ืืฉื ืื ืืืชืจ ืฉืืื ื ืชืืืืื ื-Intel VT-x (ืืื ืืืืืืืช ืืืจืืืืืืืฆืื ืฉื ืืื ืื) / AMD SVM (AMD Secure Virtual Machine). ืขื ืืืช, ืืืงืจื ืื, ืื ืืขืืื ืืื ืืืื, ืืฉื ืืขืืืื ืฉืืฉ ืฆืืจื ืืืืจ ืืืืฉ ืืช ืืงืื ืืืื ืืจื ืืืืฆืข ืคืขืืืื, ืืืืฆืขืืช TCG (TCG ืืื ืืืืจ Just-in-Time).
ืึธืึตื. QEMU ืขืฆืื ืืื ืืื ืืื ืื, ืืื ืื ืขืืื ืืื ืืืื.
3) ืืืขืืช ืืื ื
ืงืื ืชืืื ืืช ืืื ืืจื ืืืขืืืื ืขืืื ืืกืืื ืืกืืืืช, ืืื ืืื ืืืืงื ืืจืืืช ืฉืื ืืช (ืืืขืืช / ืืืขืืช ืืื ื) ืขื ืจืืืช ืฉืื ืืช ืฉื ืืืฉื ืื ืชืื ืื, ืืืืืขืืคืื ืืืืชืจ (ืืืขืช 0), ืืขื ืืืืืืืื ืืืืชืจ, ืืืืกืืจืื ื"ืขื ืืืืืื ืืืืืงืื " (ืืืขืช 3).
ืืขืจืืช ืืืคืขืื (ืงืจื ื OS) ืคืืขืืช ืขื Ring 0 (ืืฆื ืืืื) ืืืืืื ืืขืฉืืช ืื ืฉืืื ืจืืฆื ืขื ืื ื ืชืื ืื ืืืืฉืืจ. ืืืฉืืื ืืฉืชืืฉ ืคืืขืืื ืืจืืช ืืืืขืช 3 (ืืฆื ืืฉืชืืฉ) ืืืื ื ืืืจืฉืื ืืขืฉืืช ืื ืฉืื ืจืืฆืื, ืืื ืืืืืื ืืืงืฉ ืืืฉื ืืื ืคืขื ืืื ืืืฆืข ืคืขืืื ืืกืืืืช (ืืคืืื, ืืืืฉืืื ืืฉืชืืฉ ืืฉ ืืืฉื ืจืง ืื ืชืื ืื ืฉืืื ืืืื ื ืืืืืื "ืืงืื ืืชืื" ืืจืื ืืืื ืฉื ืืืฉืื ืืืจ). ืืืขืช 1 ื-2 ืืืืขืืืช ืืฉืืืืฉ ืขื ืืื ื ืืืื.
ืืคื ื ืืืฆืืช Intel VT-x / AMD SVM, ืืืคืจืืืืืืจืื ืคืขืื ืขื ืฆืืฆืื 0, ืืืืืจืืื ืจืฆื ืขื ืฆืืฆืื 1. ืืืืืื ืฉืืฆืืฆืื 1 ืืื ืืกืคืืง ืืืืืืช ืืคืขืืื ืจืืืื ืฉื ืืขืจืืช ืืืคืขืื, ืขื ืื ืฉืืื ืืืกืืืช ืืืขืจืืช ืืืืจืืช, hypervisor ืืื ืฆืจืื ืืฉื ืืช ืืช ืืงืจืืื ืืื ืชืื ืืื ืชื ืืขื ืืืืฆืข ืืืชื ืขื ืืืขืช 0 (ืืืืื ื-QEMU). ืึธืึตื. ืืืจื ืืื ืืจื ืื ืืืฆืข ืืฉืืจืืช ืขื ืืืขืื, ืืื ืคืขื ืขืืจ ืืื ืฉืื ืืืื ืืื ืืื ืชืื ืืื ืชื ืืขื.
ืืชืงืืจื ืืืืชื ืืฉืืขืืชืืช ืืื ืืืืชื ืืขืื ืืืืื, ืืื ืืฆืจื ื ืืืขืืืื, ืืื ืชืืืช ืื ืืื, ืคืจืกืื ืกื ืืืจืืืช ืืืจืื (Intel VT-x / AMD SVM) ืฉืืคืฉืจื ืืืฆืืข ืงืื ืืขืจืืช ืืคืขืื ืืืจืืื ืืฆืืจื ืืฉืืจื ืขื ืืืขืื ืืืืจื (ืขืงืืคืช ืื ืฉืืื ืืื ืืื ืืงืจืื, ืืคื ืฉืืื ืืคื ื ืื).
ืขื ืื ืืกืชื ืฉื Intel VT-x / AMD SVM, ื ืืฆืจื ืืืขืช ืืืฉื ืืืืืืช ืืจืื -1 (ืืื ืืก ืืืช). ืืขืืฉืื ื-Hypervisor ืคืืขื ืขืืื, ืืืืืจืืื ืคืืขืืื ืขื Ring 0 ืืืงืืืื ืืืฉื ืืืขืืคืช ื-CPU.
ืึธืึตื. ืืกืืคื ืฉื ืืืจ:
- ืืืืจื ืคืืขื ืขื ืืืขืช 0
- ืืืจืืื ืขืืืืื ืขื ืืืขืช 0
- hypervisor ืคืืขื ืขื ืืืขืช -1
4) QEMU-KVM
KVM ื ืืชื ืืืืจืืื ืืืฉื ื-Ring 0 ืืืฉืชืืฉ ื-QEMU ืืื ืืืงืืช ืืช ื-I/O (ืืขืื, ืืืกืงืื, ืจืฉืช, ืืืืื, PCI, USB, ืืฆืืืืช ืืืจืืืช ืืื' ืฉืืืืจืืื "ืจืืืื" ืืขืืืืื ืืืชื).
ืืืื QEMU-KVM (ืื KVM-QEMU) :)
ืงืจืืืืื
ื .ื. ืืืงืกื ืฉื ืืืืจ ืื ืคืืจืกื ืืืงืืจ ืืขืจืืฅ ืืืืืจื
ืืชืื ืืชืืืืืช ืืืคื ืื ื ืื ืืืื ื ืืื ืืช ืื ืืฉื ืื ืื ืืฉ ืื ืืืืกืืฃ.
ืชืืื ืื!
ืืงืืจ: www.habr.com