Prensip jeneral operasyon QEMU-KVM

Prensip jeneral operasyon QEMU-KVM

Konpreyansyon mwen ye kounye a:

1) KVM

KVM (Machin Virtuel ki baze sou Kernel) se yon ipèvizè (VMM - Manadjè Machin Virtyèl) ki kouri kòm yon modil sou OS Linux. Yon hypervisor nesesè pou kouri kèk lojisyèl nan yon anviwonman ki pa-inexistant (vityèl) Et an menm tan kache nan lojisyèl sa a reyèl pyès ki nan konpitè fizik sou ki lojisyèl sa a kouri. Hypervisor a aji kòm yon "spacer" ant pyès ki nan konpitè fizik (lame) ak eksplwatasyon an vityèl (envite).

Depi KVM se yon modil estanda nan nwayo Linux la, li resevwa tout bagay ki nesesè yo soti nan nwayo a (jesyon memwa, orè, elatriye). Ak kòmsadwa, nan fen a, tout benefis sa yo ale nan envite yo (depi envite yo travay sou yon hypervisor ki kouri sou / nan nwayo OS Linux).

KVM se trè vit, men pou kont li li pa ase yo kouri yon eksplwatasyon vityèl, paske ... Sa a mande pou I/O emulation. Pou I/O (CPU, disk, rezo, videyo, PCI, USB, pò seri, elatriye) KVM itilize QEMU.

2) QEMU

QEMU (Quick Emulator) se yon Emulation pou plizyè aparèy ki pèmèt ou kouri sistèm operasyon ki fèt pou yon achitekti sou yon lòt (pa egzanp, ARM -> x86). Anplis processeur a, QEMU imite divès kalite aparèy periferik: kat rezo, HDD, kat videyo, PCI, USB, elatriye.

Li travay tankou sa a:

Enstriksyon/kod binè (pa egzanp, ARM) yo konvèti nan kòd entèmedyè platfòm endepandan lè l sèvi avèk konvètisè TCG (Tiny Code Generator) epi answit kòd binè endepandan platfòm sa a konvèti an enstriksyon/kod sib (pa egzanp, x86).

ARM -> entèmedyè_kod -> x86

Esansyèlman, ou ka kouri machin vityèl sou QEMU sou nenpòt lame, menm ak ansyen modèl processeur ki pa sipòte Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine). Sepandan, nan ka sa a, li pral travay trè dousman, akòz lefèt ke kòd binè egzekite a bezwen yo dwe rekonpile sou vole a de fwa, lè l sèvi avèk TCG (TCG se yon konpilateur jis nan tan).

Moun sa yo. QEMU tèt li se mega fre, men li travay trè dousman.

3) bag pwoteksyon

Prensip jeneral operasyon QEMU-KVM

Kòd pwogram binè sou processeurs travay pou yon rezon, men sitiye nan diferan nivo (bag / Pwoteksyon bag) ak diferan nivo aksè done, soti nan pi privilejye (Ring 0), nan pi limite a, reglemante ak "ak nwa yo sere boulon. ” ( Bag 3 ).

Sistèm operasyon an (OS kernel) kouri sou Ring 0 (mòd nwayo) epi li ka fè tou sa li vle ak nenpòt done ak aparèy. Aplikasyon itilizatè yo opere nan nivo Ring 3 (mòd itilizatè) epi yo pa gen dwa fè sa yo vle, men olye yo dwe mande aksè chak fwa pou fè yon operasyon an patikilye (kidonk, aplikasyon itilizatè yo sèlman gen aksè a pwòp done yo epi yo pa ka "jwenn nan” bwat sab yon lòt moun). Bag 1 ak 2 yo fèt pou chofè yo itilize.

Anvan envansyon Intel VT-x / AMD SVM, hypervisors te kouri sou Ring 0, ak envite yo te kouri sou Ring 1. Depi Ring 1 pa gen ase dwa pou operasyon nòmal OS la, ak chak apèl privilejye nan sistèm envite a, la. hypervisor te oblije modifye apèl sa a sou vole epi egzekite li sou Ring 0 (tankou QEMU fè). Moun sa yo. binè envite PA te egzekite dirèkteman sou processeur a, epi chak fwa te ale nan plizyè modifikasyon entèmedyè sou vole a.

Anlè a te enpòtan e sa a te yon gwo pwoblèm, ak Lè sa a, manifaktirè processeur, poukont youn ak lòt, lage yon seri pwolonje enstriksyon (Intel VT-x / AMD SVM) ki te pèmèt egzekite kòd OS envite. DIRECTEMENT sou processeur lame a (kontourne nenpòt etap entèmedyè ki koute chè, jan sa te ka a anvan).

Avèk avenman Intel VT-x / AMD SVM, yo te kreye yon nouvo nivo espesyal Ring -1 (mwens yon sèl). Epi, koulye a hypervisor la kouri sou li, epi envite yo kouri sou Ring 0 epi jwenn aksè privilejye nan CPU a.

Moun sa yo. evantyèlman:

  • lame kouri sou Ring 0
  • envite travay sou Ring 0
  • hypervisor kouri sou Ring -1

4) QEMU-KVM

KVM bay envite aksè nan Ring 0 epi sèvi ak QEMU pou imite I/O (prosesè, disk, rezo, videyo, PCI, USB, pò seri, elatriye ke envite "wè" ak travay avèk).

Pakonsekan QEMU-KVM (oswa KVM-QEMU) :)

KREDI
Foto pou atire atansyon
Foto bag pwoteksyon

PS Tèks atik sa a te pibliye orijinèlman nan chanèl Telegram la @RU_Voip kòm yon repons a yon kesyon youn nan patisipan chanèl yo.

Ekri nan kòmantè yo kote mwen pa konprann sijè a kòrèkteman oswa si gen anyen yo ajoute.

Mèsi!

Sous: www.habr.com

Add nouvo kòmantè