Parimet e përgjithshme të funksionimit të QEMU-KVM

Parimet e përgjithshme të funksionimit të QEMU-KVM

Kuptimi im aktual:

1) KVM

KVM (Virtual Machine e Bazuar nĂ« Linux) Ă«shtĂ« njĂ« hipervizor (VMM – Menaxheri i MakinerisĂ« Virtuale), qĂ« funksionon si njĂ« modul nĂ« sistemin operativ Linux. Hipervizori nevojitet pĂ«r tĂ« ekzekutuar ndonjĂ« software nĂ« njĂ« mjedis tĂ« pamundur (virtual) dhe, po ashtu, pĂ«r tĂ« fshehur nga ky software pajisjet fizike reale, mbi tĂ« cilat funksionon ky software. Hipervizori vepron si njĂ« ‘ndĂ«rmjetĂ«s’ mes pajisjes fizike (hostit) dhe sistemit operativ virtual (mysafir).

Duke qenë se KVM është një modul standard i bërthamës Linux, ai merr nga bërthama të gjitha avantazhet e nevojshme (puna me kujtesën, planifikuesi, etj.). Prandaj, në fund, të gjitha këto përfitime i shkojnë edhe mysafirëve (pasi mysafirët funksionojnë mbi hipervizorin, i cili funksionon në/në bërthamën e sistemit operativ Linux).

KVM është shumë i shpejtë, por ai vetëm nuk mjafton për të ekzekutuar një sistem operativ virtual, sepse për këtë nevojitet një imitim I/O. Për I/O (procesori, diskët, rrjeti, video, PCI, USB, porta seriale, etj.) KVM përdor QEMU.

2) QEMU

QEMU (Quick Emulator) – njĂ« emulator pĂ«r pajisje tĂ« ndryshme, i cili lejon qĂ« tĂ« ethet sisteme operative tĂ« destinuara pĂ«r njĂ« arkitekturĂ«, tĂ« funksionojnĂ« nĂ« njĂ« tjetĂ«r (pĂ«r shembull, ARM –> x86). PĂ«rveç procesorit, QEMU emulon pajisje periferike tĂ« ndryshme: karta rrjeti, HDD, karta grafike, PCI, USB etj.

Funksionon kështu:

Udhëzimet/kodi binar (për shembull, ARM) konvertohen në kod ndërmjetës, të pavarur nga platforma, përmes konvertuesit TCG (Tiny Code Generator), dhe pastaj ky kod i pavarur nga platforma konvertohet në instruksione/kod përfundimtar (për shembull, x86).

ARM –> kod_ndĂ«rmjetĂ«s –> x86

Në thelb, mund të ekzekutoni makina virtuale në QEMU në çdo host, edhe me modele të lashta procesorësh, që nuk mbështesin Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine). Megjithatë, në këtë rast, do të funksionojë shumë ngadalë, për shkak se kodi binar i ekzekutueshëm duhet të rikonvertohet në flutur dy herë, përmes TCG (TCG është një kompiler Just-in-Time).

Pra, QEMU është i shkëlqyer vetë për vetë, por funksionon shumë ngadalë.

3) Rringat e mbrojtjes

Parimet e përgjithshme të funksionimit të QEMU-KVM

Kodi binar i programeve në procesorë nuk funksionon thjesht kështu, por ndodhet në nivele të ndryshme (unaza / Protection rings) me nivele të ndryshme qasjeje në të dhëna, nga më privilegjuari (Ring 0), deri te ai më i kufizuar, rregullohet dhe "me vida të ngushta" (Ring 3).

Sistemi operativ (kernel i OS) punon në Ring 0 (kernel mode) dhe mund të bëjë çfarëdo me çdo të dhëna dhe pajisje. Aplikacionet e përdoruesve punojnë në nivelin Ring 3 (user mode) dhe nuk kanë të drejtë të bëjnë çdo gjë që duan, por çdo herë duhet të kërkojnë qasje për të realizuar një operacion të caktuar (në këtë mënyrë, aplikacionet e përdoruesve kanë qasje vetëm në të dhënat e tyre dhe nuk mund të "hyjnë" në "sandbox-in" e të tjerëve). Ring 1 dhe 2 janë të destinuara për përdorim nga drejtuesit.

Para shpikjen e Intel VT-x / AMD SVM, hipervizorĂ«t punonin nĂ« Ring 0, ndĂ«rsa mysafirĂ«t punonin nĂ« Ring 1. Duke qenĂ« se Ring 1 nuk kishte mjaft privilegje pĂ«r funksionimin normal tĂ« OS-sĂ«, pĂ«r çdo thirrje privilegjuar nga sistemi mysafir, hipervizorit i duhej tĂ« modifikonte nĂ« kohĂ« reale kĂ«tĂ« thirrje dhe ta ekzekutonte nĂ« Ring 0 (afĂ«rsisht ashtu siç bĂ«n QEMU). DomethĂ«nĂ«, kodi binar i mysafirit NË nuk ekzekutohej drejtpĂ«rdrejt nĂ« procesor, por çdo herĂ« kalonte nĂ«pĂ«r disa modifikime ndĂ«rmjetĂ«se nĂ« kohĂ« reale.

Shpenzimet ishin tĂ« konsiderueshme dhe kjo ishte njĂ« problem i madh dhe atĂ«herĂ« prodhuesit e procesorĂ«ve, pĂ«rveç tĂ« tjerĂ«ve, lançuan njĂ« grup tĂ« avancuar instruksionesh (Intel VT-x / AMD SVM), duke lejuar ekzekutimin e kodit tĂ« sistemeve mysafire DREJTPËRDREJT nĂ« procesorin e hostit (duke kaluar çdo hap tĂ« ndĂ«rmjetĂ«m tĂ« shtrenjtĂ«, siç kishte ndodhur mĂ« parĂ«).

Me ardhjen e Intel VT-x / AMD SVM, u krijua një nivel i ri special Ring -1 (minus një). Dhe tani mbi të punon hipervizori, ndërsa mysafirët punojnë në Ring 0 dhe marrin qasje privilegjuar në CPU.

Domethënë, në fund:

  • hosti punon nĂ« Ring 0
  • mysafirĂ«t punojnĂ« nĂ« Ring 0
  • hipervizori punon nĂ« Ring -1

4) QEMU-KVM

KVM ofron akses për mysafirët në Ring 0 dhe përdor QEMU për të emuluar I/O (procesori, diskët, rrjeti, video, PCI, USB, porta seriale etj., të cilat "shikojnë" dhe me të cilat punojnë mysafirët).

Prandaj QEMU-KVM (ose KVM-QEMU) 🙂

KREDITE
Imazh për të tërhequr vëmendjen
Imazh Rring të mbrojtjes

P.S. Teksti i këtij artikulli u publikua fillimisht në kanalin Telegram @RU_Voip si një përgjigje ndaj pyetjes së një prej anëtarëve të kanalit.

Shkruani në komentet, në cilat vende nuk e kuptoj saktë temën ose nëse ka diçka për të shtuar.

Faleminderit!

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster