Ta'iala fa'atino lautele o QEMU-KVM

Ta'iala fa'atino lautele o QEMU-KVM

O loʻu malamalama i le taimi nei:

1) KVM

KVM (Kernel-based Virtual Machine) o se hypervisor (VMM - Virtual Machine Manager) o loʻo faʻaogaina o se module i luga o Linux OS. E mana'omia se hypervisor ina ia mafai ai ona fa'agaoioia nisi polokalama i totonu o se si'osi'omaga e le o iai (virtual) ma i le taimi lava e tasi e natia ai mai lenei polokalama le masini fa'aletino moni o lo'o fa'aogaina ai lenei polokalama. O le hypervisor e galue o se "spacer" i le va o meafaigaluega faʻapitoa (host) ma le OS virtual (malosi).

Talu ai ona o le KVM o se faʻatulagaga masani o le fatu Linux, e maua uma mea lelei manaʻomia mai le fatu (pulea manatua, faʻatulagaina, ma isi). Ma e tusa ai, i le faaiuga, o nei faʻamanuiaga uma e alu i malo (talu ai o malo e galulue i luga o se hypervisor e taʻavale i luga / i le Linux OS kernel).

KVM e matua televave, ae na o ia lava e le lava le faʻatautaia o se OS faʻapitoa, aua ... E mana'omia le fa'ata'ita'iga I/O. Mo I / O (CPU, disks, network, vitio, PCI, USB, ports serial, ma isi) faʻaaogaina e KVM QEMU.

2) QEMU

QEMU (Quick Emulator) o se emulator mo masini eseese e mafai ai e oe ona faʻaogaina faiga faʻaogaina mo le tasi fausaga i luga o le isi (mo se faʻataʻitaʻiga, ARM -> x86). I le faaopoopo atu i le faagasologa, QEMU faʻataʻitaʻiina masini faʻapitoa: kata fesoʻotaʻiga, HDD, kata vitio, PCI, USB, ma isi.

E pei o lenei:

O faatonuga/fa'ailoga binary (mo se fa'ata'ita'iga, ARM) e fa'aliliuina i totonu ole laiga tuto'atasi-tuto'atasi code e fa'aaoga ai le TCG (Tiny Code Generator) converter ona fa'aliliuina lea o lenei fa'avae-tuto'atasi code binary i fa'atonuga fa'atatau (mo se fa'ata'ita'iga, x86).

ARM -> intermediate_code -> x86

O le mea moni, e mafai ona e faʻatautaia masini komepiuta i luga o QEMU i luga o soʻo se talimalo, e oʻo lava i faʻataʻitaʻiga faʻapipiʻi tuai e le lagolagoina le Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine). Ae ui i lea, i lenei tulaga, o le a galue lemu, ona o le mea moni e manaʻomia le toe faʻapipiʻiina o le numera binary code i luga o le lele faalua, e faʻaaoga ai le TCG (TCG o se Just-in-Time compiler).

O na. QEMU lava ia e manaia tele, ae e galue lemu.

3) mama puipuiga

Ta'iala fa'atino lautele o QEMU-KVM

O le polokalame binary code i processors e galue mo se mafuaʻaga, ae o loʻo tu i tulaga eseese (mama / Puipuiga mama) faʻatasi ai ma tulaga eseese o faʻamatalaga faʻamatalaga, mai le sili ona faʻamaonia (Ring 0), i le pito sili ona faʻatapulaʻaina, faʻatulafonoina ma "faʻatasi ai ma nati faʻamalosi. ” ( Mama 3 ).

O le faiga fa'aoga (OS kernel) o lo'o fa'asolo ile Ring 0 (kernel mode) ma e mafai ona faia so'o se mea e mana'o ai i so'o se fa'amaumauga ma masini. O talosaga a le tagata fa'aoga e fa'agaoioia i le Ring 3 tulaga (tagata fa'aoga) ma e le fa'atagaina e fai so'o se mea latou te mana'o ai, ae e tatau ona talosagaina le avanoa i taimi ta'itasi e fa'atino ai se fa'agaioiga fa'apitoa (o le mea lea, e na'o na'o latou lava fa'amatalaga e maua ai e tagata fa'aoga talosaga ma e le mafai ona "maua." i totonu” o le pusa oneone a se isi tagata). O le mama 1 ma le 2 e faʻamoemoe mo le faʻaaogaina e avetaavale.

Aʻo leʻi faia le Intel VT-x / AMD SVM, na tamoʻe le hypervisors i luga o le Ring 0, ma na tamoʻe malo i luga o le Ring 1. Talu ai e le lava le aia tatau a le Ring 1 mo le faʻaogaina masani o le OS, faʻatasi ai ma valaau faʻapitoa taʻitasi mai le faiga malo, o le hypervisor e tatau ona suia lenei valaau i luga o le lele ma faʻatino i luga o le Ring 0 (e pei o le QEMU). O na. binary malo Leai na faʻatinoina saʻo i luga o le processor, ma o taimi taʻitasi e alu i le tele o suiga vavalalata i luga o le lele.

O le pito i luga e taua tele ma o se faʻafitauli tele lea, ona tuʻuina atu lea e le au gaosi oloa, tutoʻatasi le tasi ma le isi, se seti faʻalautele o faʻatonuga (Intel VT-x / AMD SVM) e faʻatagaina ai le faʻaogaina o le code OS. SA'O i luga o le polokalama talimalo (aloese soʻo se laʻasaga tuʻufaʻatasiga taugata, pei o le tulaga muamua).

Faatasi ai ma le oʻo mai o le Intel VT-x / AMD SVM, na faia ai se tulaga faʻapitoa Ring -1 (minus tasi). Ma o lea o loʻo tamoʻe le hypervisor i luga, ma tamomoʻe malo i luga o le Ring 0 ma maua avanoa faʻapitoa i le PPU.

O na. mulimuli ane:

  • e tamo'e le talimalo ile Ring 0
  • e galulue malo ile Ring 0
  • hypervisor e tamo'e ile Ring -1

4) QEMU-KVM

KVM e tuʻuina atu i malo le avanoa i le Ring 0 ma faʻaoga QEMU e faʻataʻitaʻi ai le I / O (processor, disks, network, video, PCI, USB, serial ports, ma isi mea e "vaai" ma galulue ai malo.

O lea QEMU-KVM (po'o KVM-QEMU) :)

FUAFUAGA
Ata e faatosina mai ai
Ata o mama Puipui

P.S. O le tusiga o lenei tusiga na faʻasalalau muamua i le Telegram channel @RU_Voip e fai ma tali i se fesili a se tasi o sui o le alalaupapa.

Tusi i faʻamatalaga pe a ou le malamalama lelei i le autu pe i ai se mea e faʻaopoopo.

Faafetai lava!

puna: www.habr.com

Faaopoopo i ai se faamatalaga