Mabaadi'da hawlgalka guud ee QEMU-KVM

Mabaadi'da hawlgalka guud ee QEMU-KVM

Fahamkayga hadda:

1) KVM

KVM (Mashiinka Virtual-based Kernel) waa hypervisor (VMM - Maareeyaha Mashiinka Virtual) oo u shaqeeya sidii module Linux OS ah. hypervisor ayaa loo baahan yahay si loo socodsiiyo qaar ka mid ah software-ka meel aan jirin (virtual) isla markaasna laga qariyo software-ka qalabka dhabta ah ee dhabta ah ee software-kani ku shaqeeyo. Hypervisor-ku wuxuu u shaqeeyaa sidii "spacer" inta u dhaxaysa qalabka jireed (martigeliyaha) iyo OS-ka (marti).

Maadaama KVM uu yahay cutubka caadiga ah ee kernel-ka Linux, waxay ka helaysaa dhammaan wanaagga loo baahan yahay kernel-ka (maamulka xusuusta, jadwaleeyaha, iwm.). Oo sidaas daraaddeed, dhamaadka, dhammaan faa'iidooyinkan waxay aadayaan martida (maaddaama martidadu ay ka shaqeeyaan hypervisor-ka ku shaqeeya Linux OS kernel).

KVM waa mid aad u dheereeya, laakiin lafteeda kuma filna in la socodsiiyo OS-ga casriga ah, sababtoo ah ... Tani waxay u baahan tahay ku dayasho I/O I/O (CPU, disks, network, video, PCI, USB, serial ports, iwm.) KVM waxay isticmaashaa QEMU.

2) QEMU

QEMU (Quick Emulator) waa emulator qalabyo kala duwan oo kuu oggolaanaya inaad ku socodsiiso nidaamyada hawlgalka ee loogu talagalay hal qaab-dhismeedka kale (tusaale, ARM -> x86). Marka lagu daro processor-ka, QEMU waxay ku dayataa aaladaha kala duwan ee durugsan: kaararka shabakada, HDD, kaararka fiidiyowga, PCI, USB, iwm.

Waxay u shaqeysaa sidatan:

Tilmaamaha/koodka binary-ga (tusaale, ARM) waxa loo rogaa kood madax-bannaan oo dhexdhexaad ah iyada oo la adeegsanayo beddelaha TCG (Tiny Code Generator) ka dibna koodhkan binary-ga ah ee madax-bannaan ee madal ayaa loo rogaa tilmaamo/code (tusaale, x86).

ARM -> dhexdhexaad_code -> x86

Asal ahaan, waxaad ku wadi kartaa mashiinnada farsamada QEMU martigeliyaha kasta, xitaa moodooyinka processor-ka hore ee aan taageerin Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine). Si kastaba ha ahaatee, kiiskan, waxay u shaqeyn doontaa si tartiib tartiib ah, sababtoo ah xaqiiqda ah in fulinta code binary u baahan yahay in lagu soo koobo duulimaadka laba jeer, iyadoo la adeegsanayo TCG (TCG is a Just-in-Time compiler).

Kuwaas. QEMU lafteedu waa mega qabow, laakiin si tartiib tartiib ah ayey u shaqeysaa.

3) Faraantiga ilaalinta

Mabaadi'da hawlgalka guud ee QEMU-KVM

Koodhka barnaamijka binary-ga ee soo-saareyaashu waxay u shaqeeyaan sabab, laakiin waxay ku yaalliin heerar kala duwan (faraanado / siddo ilaalin) oo leh heerar kala duwan oo helitaan xog ah, laga bilaabo kuwa ugu mudnaanta badan (Ring 0), ilaa kan ugu xaddidan, nidaamsan iyo "laska la adkeeyay ” (Xalqada 3aad).

Nidaamka hawlgalka (OS kernel) wuxuu ku shaqeeyaa Ring 0 (qaabka kernel) wuxuuna ku samayn karaa wax kasta oo uu rabo xog kasta iyo qalab kasta. Codsiyada isticmaaluhu waxay ku shaqeeyaan heerka Ring 3 (qaabka isticmaalaha) loomana oggola inay sameeyaan wax kasta oo ay rabaan, laakiin taa beddelkeeda waa inay codsadaan gelitaanka wakhti kasta si ay u fuliyaan hawlgal gaar ah (sidaa darteed, codsiyada isticmaaleyaashu waxay heli karaan oo keliya xogtooda mana heli karaan galay” sanduuqa ciid ee qof kale). Giraanta 1 iyo 2 waxaa loogu talagalay inay isticmaalaan darawallada.

Ka hor intaan la abuurin Intel VT-x / AMD SVM, hypervisors waxay ku ordeen Ring 0, martidana waxay ku ordeen Ring 1. Tan iyo Ring 1 ma laha xuquuq ku filan hawlgalka caadiga ah ee OS-ka, iyadoo wicitaan kasta oo mudnaan leh uu ka helo nidaamka martida, hypervisor waa inuu wax ka beddelo wicitaankan duullimaadka oo uu ku fuliyaa giraanta 0 (sida ay QEMU samayso). Kuwaas. binary martida MAYA waxaa si toos ah loogu fuliyay processor-ka, mar kastana waxa uu soo maray dhowr isbeddel oo dhexdhexaad ah oo duullimaad ah.

Dulqaadku wuxuu ahaa mid muhiim ah tanina waxay ahayd dhibaato weyn, ka dibna soo-saareyaasha soo-saareyaasha, si madax-bannaan midba midka kale, ayaa sii daayay tilmaamo dheeri ah (Intel VT-x / AMD SVM) kaasoo u oggolaanaya fulinta koodka OS-ka martida. SI toos ah processor-ka martida loo yahay (iyadoo laga gudbayo tillaabooyin dhexdhexaad ah oo qaali ah, sidii horeba ahayd).

Markii ay soo baxday Intel VT-x / AMD SVM, waxaa la sameeyay heer cusub oo giraan ah -1 (mid laga jaray). Oo hadda hypervisor-ka ayaa ku shaqeeya, martiduna waxay ku ordaan Ring 0 oo waxay fursad u helaan helitaanka CPU.

Kuwaas. ugu dambayn:

  • martigeliyaha wuxuu ku socdaa giraanta 0
  • martida waxay ku shaqeeyaan Ring 0
  • hypervisor wuxuu ku socdaa Ring -1

4) QEMU-KVM

KVM waxay siisaa martida marin u helka Ring 0 waxayna isticmaashaa QEMU si ay ugu daydaan I/O (processor, disks, network, video, PCI, USB, serial ports, iwm. in martidu ay "arkaan" oo ay la shaqeeyaan).

Markaa QEMU-KVM (ama KVM-QEMU):)

DHIBCAHA
Sawir si aad u soo jiidato dareenka
Sawirka giraanta Ilaalinta

PS Qoraalka maqaalkan waxaa markii hore lagu daabacay kanaalka Telegram @RU_Voip jawaab ahaan su'aal ka timid mid ka mid ah ka qaybgalayaasha kanaalka.

Ku qor faallooyinka meesha aanan si sax ah u fahmin mawduuca ama haddii ay jiraan wax lagu daro.

Waad ku mahadsan tahay!

Source: www.habr.com

Add a comment