Prinċipji ġenerali tal-operat QEMU-KVM

Prinċipji ġenerali tal-operat QEMU-KVM

Il-fehim attwali tiegħi:

1) KVM

KVM (Magni Virtwali bbażati fuq il-kernel) huwa hypervisor (VMM – Virtual Machine Manager) li jaħdem bħala modulu fuq Linux OS. Hemm bżonn ta' hypervisor sabiex jitħaddem xi softwer f'ambjent (virtwali) li ma jeżistix u fl-istess ħin jaħbi minn dan is-software il-ħardwer fiżiku reali li fuqu jaħdem dan is-software. L-hypervisor jaġixxi bħala "spacer" bejn il-ħardwer fiżiku (host) u l-OS virtwali (mistieden).

Peress li KVM huwa modulu standard tal-qalba tal-Linux, jirċievi l-goodies kollha meħtieġa mill-qalba (ġestjoni tal-memorja, scheduler, eċċ.). U għalhekk, fl-aħħar, dawn il-benefiċċji kollha jmorru għall-mistednin (peress li l-mistednin jaħdmu fuq hypervisor li jaħdem fuq/fil-kernel tal-Linux OS).

Il-KVM huwa mgħaġġel ħafna, iżda minnu nnifsu mhux biżżejjed li tħaddem OS virtwali, għax... Dan jeħtieġ emulazzjoni I/O. Għal I/O (CPU, diski, netwerk, vidjo, PCI, USB, portijiet tas-serje, eċċ.) KVM juża QEMU.

2) QEMU

QEMU (Quick Emulator) huwa emulator għal diversi apparati li jippermettilek tħaddem sistemi operattivi ddisinjati għal arkitettura waħda fuq oħra (per eżempju, ARM -> x86). Minbarra l-proċessur, QEMU jimita diversi apparati periferali: karti tan-netwerk, HDD, karti tal-vidjo, PCI, USB, eċċ.

Taħdem hekk:

L-istruzzjonijiet/kodiċi binarju (per eżempju, ARM) huma kkonvertiti f'kodiċi intermedju indipendenti mill-pjattaforma bl-użu tal-konvertitur TCG (Tiny Code Generator) u mbagħad dan il-kodiċi binarju indipendenti mill-pjattaforma jiġi kkonvertit f'istruzzjonijiet/kodiċi fil-mira (per eżempju, x86).

ARM –> intermedju_code –> x86

Essenzjalment, tista 'tħaddem magni virtwali fuq QEMU fuq kwalunkwe ospitanti, anke b'mudelli ta' proċessuri anzjani li ma jappoġġjawx Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine). Madankollu, f'dan il-każ, se taħdem bil-mod ħafna, minħabba l-fatt li l-kodiċi binarju ta 'eżekuzzjoni jeħtieġ li jiġi kkompilat mill-ġdid fuq il-fly darbtejn, bl-użu ta' TCG (TCG huwa kompilatur Just-in-Time).

Dawk. QEMU innifsu huwa mega cool, iżda jaħdem bil-mod ħafna.

3) Ċrieki ta 'protezzjoni

Prinċipji ġenerali tal-operat QEMU-KVM

Il-kodiċi tal-programm binarju fuq il-proċessuri jaħdem għal raġuni, iżda jinsab f'livelli differenti (ċrieki / ċrieki ta 'protezzjoni) b'livelli differenti ta' aċċess għad-dejta, mill-aktar privileġġjati (Ring 0), għall-aktar limitati, regolati u "bil-ġewż issikkat ” (Ċirku 3 ).

Is-sistema operattiva (kernel OS) taħdem fuq Ring 0 (modalità kernel) u tista 'tagħmel dak kollu li trid bi kwalunkwe data u apparat. L-applikazzjonijiet tal-utent joperaw fil-livell Ring 3 (mod tal-utent) u ma jitħallewx jagħmlu dak kollu li jridu, iżda minflok iridu jitolbu aċċess kull darba biex iwettqu operazzjoni partikolari (għalhekk, l-applikazzjonijiet tal-utent għandhom biss aċċess għad-dejta tagħhom stess u ma jistgħux “jikseb fi” kaxxa tar-ramel ta’ xi ħadd ieħor). Ċirku 1 u 2 huma maħsuba għall-użu mis-sewwieqa.

Qabel l-invenzjoni ta 'Intel VT-x / AMD SVM, l-hypervisors dam fuq Ring 0, u l-mistednin dam fuq Ring 1. Peress li Ring 1 m'għandux biżżejjed drittijiet għat-tħaddim normali tal-OS, b'kull sejħa privileġġata mis-sistema mistieden, il- hypervisor kellu jimmodifika din is-sejħa fuq il-fly u jesegwixxiha fuq Ring 0 (bħal kif tagħmel QEMU). Dawk. mistieden binarju MHUX ġie esegwit direttament fuq il-proċessur, u kull darba għadda minn diversi modifiki intermedji fuq il-fly.

L-overhead kien sinifikanti u din kienet problema kbira, u mbagħad il-manifatturi tal-proċessuri, indipendentement minn xulxin, ħarġu sett estiż ta 'struzzjonijiet (Intel VT-x / AMD SVM) li ppermettew li jeżegwixxu kodiċi OS mistieden. DIRETTAMENT fuq il-proċessur ospitanti (bypassing kwalunkwe passi intermedji għaljin, kif kien il-każ qabel).

Bil-miġja ta 'Intel VT-x / AMD SVM, inħoloq livell ġdid speċjali ta' Ring -1 (nieqes wieħed). U issa l-hypervisor jimxi fuqu, u l-mistednin jimxu fuq Ring 0 u jiksbu aċċess privileġġjat għas-CPU.

Dawk. eventwalment:

  • host jimxi fuq Ring 0
  • mistednin jaħdmu fuq Ring 0
  • hypervisor jimxi fuq Ring -1

4) QEMU-KVM

KVM jagħti lill-mistednin aċċess għal Ring 0 u juża QEMU biex jimita l-I/O (proċessur, diski, netwerk, vidjo, PCI, USB, portijiet tas-serje, eċċ. li l-mistednin "ara" u jaħdmu magħhom).

Għalhekk QEMU-KVM (jew KVM-QEMU) :)

KREDITI
Stampa biex tiġbed l-attenzjoni
Stampa ta 'ċrieki ta' Protezzjoni

P.S. It-test ta 'dan l-artikolu kien oriġinarjament ippubblikat fil-kanal Telegram @RU_Voip bħala tweġiba għal mistoqsija minn wieħed mill-parteċipanti tal-kanal.

Ikteb fil-kummenti fejn ma nifhimx is-suġġett sew jew jekk hemmx xi ħaġa xi żżid.

Grazzi!

Sors: www.habr.com

Żid kumment