QEMU-KVM เจฆเฉ‡ เจœเจจเจฐเจฒ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจงเจพเจ‚เจค

QEMU-KVM เจฆเฉ‡ เจœเจจเจฐเจฒ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจงเจพเจ‚เจค

เจฎเฉ‡เจฐเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฎเจ:

1) เจ•เฉ‡เจตเฉ€เจเจฎ

KVM (เจ•เจฐเจจเจฒ-เจ…เจงเจพเจฐเจฟเจค เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ) เจ‡เฉฑเจ• เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ (VMM - เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจฎเฉˆเจจเฉ‡เจœเจฐ) เจนเฉˆ เจœเฉ‹ เจฒเฉ€เจจเจ•เจธ OS 'เจคเฉ‡ เจ‡เฉฑเจ• เจฎเฉ‹เจกเฉ€เจŠเจฒ เจตเจœเฉ‹เจ‚ เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจฎเฉŒเจœเฉ‚เจฆ (เจตเจฐเจšเฉเจ…เจฒ) เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจš เจ•เฉเจ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚ เจ‡เจธ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจคเฉ‹เจ‚ เจ…เจธเจฒ เจญเฉŒเจคเจฟเจ• เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ เจฒเฉเจ•เจพเจ“ เจœเจฟเจธ 'เจคเฉ‡ เจ‡เจน เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจšเฉฑเจฒเจฆเจพ เจนเฉˆเฅค เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ เจญเฉŒเจคเจฟเจ• เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ (เจนเฉ‹เจธเจŸ) เจ…เจคเฉ‡ เจตเจฐเจšเฉเจ…เจฒ OS (เจฎเจนเจฟเจฎเจพเจจ) เจตเจฟเจšเจ•เจพเจฐ เจ‡เฉฑเจ• "เจธเจชเฉ‡เจธเจฐ" เจตเจœเฉ‹เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ•เจฟเจ‰เจ‚เจ•เจฟ KVM เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจฆเจพ เจ‡เฉฑเจ• เจฎเจฟเจ†เจฐเฉ€ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจนเฉˆ, เจ‡เจน เจ•เจฐเจจเจฒ (เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจชเฉเจฐเจฌเฉฐเจงเจจ, เจธเจผเจกเจฟเจŠเจฒเจฐ, เจ†เจฆเจฟ) เจคเฉ‹เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€เจ†เจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจ‡เจน เจธเจพเจฐเฉ‡ เจฒเจพเจญ เจฎเจนเจฟเจฎเจพเจจเจพเจ‚ เจจเฉ‚เฉฐ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ (เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเจนเจฟเจฎเจพเจจ เจ‡เฉฑเจ• เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจฒเฉ€เจจเจ•เจธ OS เจ•เจฐเจจเจฒ เจคเฉ‡ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ)เฅค

KVM เจฌเจนเฉเจค เจคเฉ‡เจœเจผ เจนเฉˆ, เจชเจฐ เจ‡เจน เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ OS เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ•เจพเจซเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ... เจ‡เจธ เจฒเจˆ I/O เจ‡เจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค I/O (CPU, เจกเจฟเจธเจ•, เจจเฉˆเฉฑเจŸเจตเจฐเจ•, เจตเฉ€เจกเฉ€เจ“, PCI, USB, เจธเฉ€เจฐเฉ€เจ…เจฒ เจชเฉ‹เจฐเจŸ, เจ†เจฆเจฟ) เจฒเจˆ KVM QEMU เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

2) QEMU

QEMU (เจคเจคเจ•เจพเจฒ เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจฐ) เจตเฉฑเจ–-เจตเฉฑเจ– เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจฆเฉ‚เจœเฉ‡ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, ARM -> x86)เฅค เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, QEMU เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉˆเจฐเฉ€เจซเจฟเจฐเจฒ เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจฆเจพ เจนเฉˆ: เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ•เจพเจฐเจก, HDD, เจตเฉ€เจกเฉ€เจ“ เจ•เจพเจฐเจก, PCI, USB, เจ†เจฆเจฟเฅค

เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ:

เจนเจฆเจพเจ‡เจคเจพเจ‚/เจฌเจพเจˆเจจเจฐเฉ€ เจ•เฉ‹เจก (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, ARM) เจจเฉ‚เฉฐ TCG (เจŸเจฟเฉฐเจจเฉ€ เจ•เฉ‹เจก เจœเฉ‡เจจเจฐเฉ‡เจŸเจฐ) เจ•เจจเจตเจฐเจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฐเจŸเจฐเจฎเฉ€เจกเฉ€เจเจŸ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ-เจธเฉเจคเฉฐเจคเจฐ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจธ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ-เจธเฉเจคเฉฐเจคเจฐ เจฌเจพเจˆเจจเจฐเฉ€ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจŸเฉ€เจšเฉ‡ เจฆเฉ€เจ†เจ‚ เจนเจฆเจพเจ‡เจคเจพเจ‚/เจ•เฉ‹เจก (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, x86) เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

ARM -> intermediate_code -> x86

เจœเจผเจฐเฉ‚เจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡, เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจนเฉ‹เจธเจŸ 'เจคเฉ‡ QEMU 'เจคเฉ‡ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจชเฉเจฐเจพเจฃเฉ‡ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจฎเจพเจกเจฒเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจœเฉ‹ Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ) เจฆเจพ เจธเจฎเจฐเจฅเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจ‡เจน เจฌเจนเฉเจค เจนเฉŒเจฒเฉ€ เจนเฉŒเจฒเฉ€ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพ, เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจ•เจพเจฐเจจ เจ•เจฟ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเจฟเฉฐเจ— เจฌเจพเจˆเจจเจฐเฉ€ เจ•เฉ‹เจก เจจเฉ‚เฉฐ TCG (TCG เจ‡เฉฑเจ• เจœเจธเจŸ-เจ‡เจจ-เจŸเจพเจˆเจฎ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจนเฉˆ) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจซเจฒเจพเจˆ 'เจคเฉ‡ เจฆเฉ‹ เจตเจพเจฐ เจฎเฉเฉœ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจ‰เจน. QEMU เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจฎเฉˆเจ—เจพ เจ•เฉ‚เจฒ เจนเฉˆ, เจชเจฐ เจ‡เจน เจฌเจนเฉเจค เจนเฉŒเจฒเฉ€ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

3) เจธเฉเจฐเฉฑเจ–เจฟเจ† เจฐเจฟเฉฐเจ—

QEMU-KVM เจฆเฉ‡ เจœเจจเจฐเจฒ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจงเจพเจ‚เจค

เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ 'เจคเฉ‡ เจฌเจพเจˆเจจเจฐเฉ€ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจ•เฉ‹เจก เจ‡เฉฑเจ• เจ•เจพเจฐเจจ เจ•เจฐเจ•เฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉฑเจงเจฐเจพเจ‚ (เจฐเจฟเฉฐเจ—เจพเจ‚ / เจชเฉเจฐเฉ‹เจŸเฉˆเจ•เจธเจผเจจ เจฐเจฟเฉฐเจ—เจพเจ‚) 'เจคเฉ‡ เจกเจพเจŸเจพ เจเจ•เจธเฉˆเจธ เจฆเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉฑเจงเจฐเจพเจ‚ 'เจคเฉ‡ เจธเจฅเจฟเจค เจนเฉˆ, เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจง เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ (เจฐเจฟเฉฐเจ— 0) เจคเฉ‹เจ‚ เจฒเฉˆ เจ•เฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจธเฉ€เจฎเจค, เจจเจฟเจฏเฉฐเจคเฉเจฐเจฟเจค เจ…เจคเฉ‡ "เจจเจŸ เจŸเจพเจˆเจŸ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจเฅค (เจฐเจฟเฉฐเจ— 3)

เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ (OS เจ•เจฐเจจเจฒ) เจฐเจฟเฉฐเจ— 0 (เจ•เจฐเจจเจฒ เจฎเฉ‹เจก) 'เจคเฉ‡ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจกเฉ‡เจŸเจพ เจ…เจคเฉ‡ เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจจเจพเจฒ เจœเฉ‹ เจšเจพเจนเฉ‡ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฐเจฟเฉฐเจ— 3 เจชเฉฑเจงเจฐ (เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฎเฉ‹เจก) 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹ เจตเฉ€ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจจเจนเฉ€เจ‚ เจฆเจฟเฉฑเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจชเจฐ เจ‡เจธเจฆเฉ€ เจฌเจœเจพเจ เจ‡เฉฑเจ• เจ–เจพเจธ เจ•เจพเจฐเจตเจพเจˆ เจ•เจฐเจจ เจฒเจˆ เจนเจฐ เจตเจพเจฐ เจชเจนเฉเฉฐเจš เจฆเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ (เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจ•เฉ‹เจฒ เจธเจฟเจฐเจซ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจ†เจชเจฃเฉ‡ เจกเฉ‡เจŸเจพ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ "เจชเฉเจฐเจพเจชเจค เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจฆเฉ‡ เจธเฉˆเจ‚เจกเจฌเฉŒเจ•เจธ เจตเจฟเฉฑเจš)เฅค เจฐเจฟเฉฐเจ— 1 เจ…เจคเฉ‡ 2 เจกเจฐเจพเจˆเจตเจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจตเจฐเจคเจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจเฅค

Intel VT-x/AMD SVM เจฆเฉ€ เจ•เจพเจข เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ เจฐเจฟเฉฐเจ— 0 'เจคเฉ‡ เจšเฉฑเจฒเจฆเฉ‡ เจธเจจ, เจ…เจคเฉ‡ เจฎเจนเจฟเจฎเจพเจจ เจฐเจฟเฉฐเจ— 1 'เจคเฉ‡ เจšเฉฑเจฒเจฆเฉ‡ เจธเจจเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฐเจฟเฉฐเจ— 1 เจ•เฉ‹เจฒ OS เจฆเฉ‡ เจ†เจฎ เจธเฉฐเจšเจพเจฒเจจ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจ…เจงเจฟเจ•เจพเจฐ เจจเจนเฉ€เจ‚ เจนเจจ, เจ—เฉˆเจธเจŸ เจธเจฟเจธเจŸเจฎ เจคเฉ‹เจ‚ เจนเจฐเฉ‡เจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ เจชเฉเจฐเจพเจชเจค เจ•เจพเจฒ เจจเจพเจฒ, เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ เจจเฉ‚เฉฐ เจ‡เจธ เจ•เจพเจฒ เจจเฉ‚เฉฐ เจซเจฒเจพเจˆ 'เจคเฉ‡ เจธเฉ‹เจงเจฃเจพ เจชเฉˆเจ‚เจฆเจพ เจธเฉ€ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฐเจฟเฉฐเจ— 0 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจชเฉˆเจ‚เจฆเจพ เจธเฉ€ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ QEMU เจ•เจฐเจฆเจพ เจนเฉˆ)เฅค เจ‰เจน. เจฎเจนเจฟเจฎเจพเจจ เจฌเจพเจˆเจจเจฐเฉ€ เจจเจนเฉ€เจ‚ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ 'เจคเฉ‡ เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจšเจฒเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€, เจ…เจคเฉ‡ เจนเจฐ เจตเจพเจฐ เจซเจฒเจพเจˆ 'เจคเฉ‡ เจ•เจˆ เจตเจฟเจšเจ•เจพเจฐเจฒเฉ‡ เจธเฉ‹เจงเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจฟเจ† เจธเฉ€เฅค

เจ“เจตเจฐเจนเฉˆเฉฑเจก เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจธเฉ€ เจ…เจคเฉ‡ เจ‡เจน เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจธเจฎเฉฑเจธเจฟเจ† เจธเฉ€, เจ…เจคเฉ‡ เจซเจฟเจฐ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจจเจฟเจฐเจฎเจพเจคเจพเจตเจพเจ‚, เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจคเฉ‹เจ‚ เจธเฉเจคเฉฐเจคเจฐ เจคเฉŒเจฐ 'เจคเฉ‡, เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจตเจฟเจธเจคเฉเจฐเจฟเจค เจธเฉˆเฉฑเจŸ (Intel VT-x / AMD SVM) เจœเจพเจฐเฉ€ เจ•เฉ€เจคเจพ เจœเฉ‹ เจฎเจนเจฟเจฎเจพเจจ OS เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจนเฉ‹เจธเจŸ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ 'เจคเฉ‡ (เจ•เจฟเจธเฉ‡ เจตเฉ€ เจฎเจนเจฟเฉฐเจ—เฉ‡ เจตเจฟเจšเจ•เจพเจฐเจฒเฉ‡ เจ•เจฆเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเจนเจฟเจฒเจพเจ‚ เจธเฉ€)เฅค

Intel VT-x / AMD SVM เจฆเฉ‡ เจ†เจ—เจฎเจจ เจฆเฉ‡ เจจเจพเจฒ, เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจจเจตเจพเจ‚ เจฐเจฟเฉฐเจ— เจชเฉฑเจงเจฐ -1 (เจ˜เจŸเจพเจ“ เจ‡เฉฑเจ•) เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€เฅค เจ…เจคเฉ‡ เจนเฉเจฃ เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ เจ‡เจธ 'เจคเฉ‡ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฎเจนเจฟเจฎเจพเจจ เจฐเจฟเฉฐเจ— 0 'เจคเฉ‡ เจšเฉฑเจฒเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ CPU เจคเฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจ‰เจน. เจ…เฉฐเจค เจตเจฟเฉฑเจš:

  • เจนเฉ‹เจธเจŸ เจฐเจฟเฉฐเจ— 0 'เจคเฉ‡ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ
  • เจฎเจนเจฟเจฎเจพเจจ เจฐเจฟเฉฐเจ— 0 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ
  • เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ เจฐเจฟเฉฐเจ— -1 'เจคเฉ‡ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ

4) QEMU-KVM

KVM เจฎเจนเจฟเจฎเจพเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฐเจฟเฉฐเจ— 0 เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ QEMU เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ I/O (เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ, เจกเจฟเจธเจ•, เจจเฉˆเฉฑเจŸเจตเจฐเจ•, เจตเฉ€เจกเฉ€เจ“, PCI, USB, เจธเฉ€เจฐเฉ€เจ…เจฒ เจชเฉ‹เจฐเจŸ, เจ†เจฆเจฟ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจจ เจฒเจˆ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจฎเจนเจฟเจฎเจพเจจ "เจฆเฉ‡เจ–เจฆเฉ‡" เจนเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ)เฅค

เจ‡เจธ เจฒเจˆ QEMU-KVM (เจœเจพเจ‚ KVM-QEMU) :)

เจ•เฉเจฐเฉˆเจกเจฟเจŸ
เจงเจฟเจ†เจจ เจ–เจฟเฉฑเจšเจฃ เจฒเจˆ เจคเจธเจตเฉ€เจฐ
เจธเฉเจฐเฉฑเจ–เจฟเจ† เจฐเจฟเฉฐเจ—เจพเจ‚ เจฆเฉ€ เจคเจธเจตเฉ€เจฐ

PS เจ‡เจธ เจฒเฉ‡เจ– เจฆเจพ เจชเจพเจ  เจ…เจธเจฒ เจตเจฟเฉฑเจš เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจšเฉˆเจจเจฒ เจตเจฟเฉฑเจš เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ @RU_Voip เจšเฉˆเจจเจฒ เจฆเฉ‡ เจญเจพเจ—เฉ€เจฆเจพเจฐเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจฆเฉ‡ เจ‡เฉฑเจ• เจธเจตเจพเจฒ เจฆเฉ‡ เจœเจตเจพเจฌ เจตเจœเฉ‹เจ‚เฅค

เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ‹ เจœเจฟเฉฑเจฅเฉ‡ เจฎเฉˆเจ‚ เจตเจฟเจธเจผเฉ‡ เจจเฉ‚เฉฐ เจธเจนเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจจเจนเฉ€เจ‚ เจธเจฎเจเจฆเจพ เจœเจพเจ‚ เจœเฉ‡ เจ•เฉเจ เจœเฉ‹เฉœเจจเจพ เจนเฉˆ.

เจคเฉเจนเจพเจกเจพ เจงเฉฐเจจเจตเจพเจฆ!

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹