ααΆααααααΉααα
αα
α»αααααααααααααα»αα
1) KVM
KVM (αααΆαααΈααα·αααα·ααααααΆαααΌαααααΆαααΎααΊααα) ααΊααΆ hypervisor (VMM - αααααα·ααΈααααααααααααΆαααΈααα·αααα·α) αααααααΎαααΆαααΆαααΌαα»ααα ααΎ Linux OS α Hypervisor ααΊααααΌαααΆαααΆα αΆαααΆα α ααΎααααΈααααΎαααΆααααααα·ααΈαα½αα ααα½ααα αααα»αααα·ααΆααΆαααααα·αααΆα (αα·αααα·α) α αΎααααα»αααααααα½αααΆααααΈαααααα·ααΈαααααΌααααααααΉαααΆαααααααααααααααα·ααΈαααααααΎαααΆαα Hypervisor ααΎααα½ααΆ "spacer" αααΆα hardware (αααΆαααΈα) αα·α virtual OS (guest) α
αααααΆα KVM ααΊααΆαααΌαα»ααααααααΆαααααΊαααααΈαα»α ααΆααα½αααΆαα’ααααααααααααααααααΌαααΆαααΆααα’ααααΈααΊααα (ααΆααααααααααα’αααα αα αΆα αααααα·ααΈααααααααααα)α α αΎαααΆαααα αα ααΈαααα αα α’αααααααααααααΆααα’αααααααΆααα αααααααα (α αΆααααΆααααΈαααααααααΎααΆαααΎ hypervisor αααααααΎαααΆαααΎ/αααα»α Linux OS kernel)α
KVM ααΆαααααΏαααΏαααΆαα ααα»ααααααααααα½αααΆααΆαα·ααααααααααΆααααΎααααΈααααΎαααΆαααααααααααααα·ααααα·ααΆααα·αααα·αααααααα ... ααααααααΌαα±ααααΆαααΆαααααΆααααΆα I/O α αααααΆαα I/O (CPU, disks, network, video, PCI, USB, serial ports ααα) 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 (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine)α ααααααΆαααΆααααα αααα»αααααΈααα ααΆααΉαααααΎαααΆαααΊαααΆαα αααααΆααααααααΌααααααΈαααααααα»αααααΎαααΆαα αΆαααΆα αααααΌαα αααααα‘αΎααα·αααααΆααααΈααααααααααΎ TCG (TCG ααΊααΆαααααα·ααΈα αααααααΆααααααααΆ)α
ααΆαααααα QEMU αααα½αααΆααΆαααΆααααααΆααααααΆαα ααα»ααααααΆααααΎαααΆαααΊαααΆααα
3) α α·ααα ααααΆαααΆα
ααΌααααααα·ααΈαααααααααααααΈααα
ααΎ processors ααααΎαααΆααααα ααα»αααα½α ααα»ααααααΆαααΈααΆαααα
ααααα·αααααααααααΆ (α
α·ααα
αα/α
α·ααα
ααααΆαααΆα) ααΆαα½αααΉαααααα·ααααααααααΆααααΆαα
αΌαααααΎαα·αααααα α
αΆααααΈα―ααα·αααα·αααα»α (Ring 0) αα αΌααααααααα·αααααααααα»α ααααααααα αα·α "ααΆαα½αααΉαααααΆαααααααΉααααααΉα (α
α·ααα
αα 3) α
ααααααααααααα·ααααα·ααΆα (OS ααΊααα) ααααΎαααΆαααΎ Ring 0 (ααααααΊααα) α αΎαα’αΆα ααααΎα’αααΈααααααααΆααααααΆα ααααΆαααΆαα½αααΉααα·αααααα αα·αα§αααααααΆαα½αα αααααα·ααΈα’αααααααΎααααΆααααααΎαααΆααα ααααα·α Ring 3 (ααααααα’αααααααΎααααΆαα) α αΎααα·αααααΌαααΆαα’αα»ααααΆαα±ααααααΎα’αααΈααααα½αααα ααααΆαααααα ααα»αααααααα»ααα αα·αααααΌαααααααΎαα»αααΆαα αΌαααααΎααΆαααααααΎααααΈα’αα»ααααααααα·ααααα·ααΆαααΆααααΆααααΆαα½α (ααΌα αααααααααα·ααΈα’αααααααΎααααΆααααΆααα·αααα·α αΌαααααΎαα·ααααααααααΆαααααα½ααααααα½αααααα»ααααα α αΎααα·αα’αΆα "ααα½αααΆα α αΌααα αααα»α "αααα’ααααααΆα αααααααααΆααααΆαααααααααα) α Ring 1 αα·α 2 ααααΌαααΆαααααα»ααα»ααααααΆααααααΎααααΆαααααα’αααααΎαααα
αα»ααααααΆααααααΎα Intel VT-x / AMD SVM α’ααααααα½ααα·αα·ααααααααααΆαααααΎαααΆαααΎ Ring 0 α αΎααααααααΆαααααα ααΎ Ring 1α αααααΆα Ring 1 αα·αααΆααα·αααα·αααααααααΆαααααααΆααααααα·ααααα·ααΆαααααααΆαααα OS αααααΆαααΆαα α ααΌααααααααααΆααα·αααα·ααΈαα½ααααΈααααααααααααα hypervisor ααααΌαααααααααΆαα α αααααααΆαα α αΎαααααα·ααααα·ααΆαα ααΎ Ring 0 (α αααΎαααΌα QEMU ααα)α ααΆαααααα ααααααααααΈα ΠΠ ααααΌαααΆαααααα·ααααα·αααααααΆαααα ααΎαα½αααααΆα α αΎαααΆαααααααααααΆααααΆαααααααααααα·ααααααααΆα αααΎααααα»ααααααΆααααααα
ααΆαα αααΆαααΎαααΊααααΆαα α αΎααααααΊααΆαααα αΆαααα½α α αΎααααααΆαααααααα»αα αα»αααα·α processor αααα―αααΆαααααΈααααΆαα αα·ααα ααααΆαα ααααααΆααααα»αααααΆαααααΆααααααα (Intel VT-x / AMD SVM) αααα’αα»ααααΆαα±ααααααα·ααααα·ααΌα OS ααααα αααβααααΆαα αα ααΎαααΆαααΈαααααΎαααΆα (ααααααα αΆαααααααααααΆααααααααααααΌα ααααΈαα»α) α
ααΆαα½αααΉαααααααΆααααα Intel VT-x / AMD SVM ααααα·α Ring ααααΈαα·ααα -1 (αααα½α) ααααΌαααΆααααααΎαα‘αΎαα α αΎαα₯α‘αΌαααα hypervisor ααααΎαααΆαααΎααΆ α αΎααααααααααΎαααΆαααΎ Ring 0 αα·αααα½αααΆααα·αααα·α αΌαααααΎ CPU α
ααΆαααααα αα ααΈαααα»αα
- αααΆαααΈαααααΎαααΆαααΎ Ring 0
- αααααααααΎααΆααα ααΎ Ring 0
- hypervisor ααααΎαααΆαααΎ Ring -1
4) QEMU-KVM
KVM αααααα±αααααααα αΌαααααΎ Ring 0 αα·αααααΎ QEMU ααΎααααΈααααΆααααΆα I/O (processor, disks, network, video, PCI, USB, serial ports ααα αααααααα "ααΎα" αα·αααααΎααΆαααΆαα½α)α
ααΌα αααα QEMU-KVM (α¬ KVM-QEMU) :)
α₯αααΆα
PS α’αααααααα’ααααααααααααΌαααΆαααααα»αααααααΌααα
αααα»αααΆααα Telegram
ααααααα αααα»αααα·αααααααααααα»ααα·αααααααααΆαααααααΉαααααΌαα¬ααααα·αααΎααΆαα’αααΈααααΌαααααααα
ααΌαα’ααα»α!
ααααα: www.habr.com