Melao-motheo e akaretsang ea ts'ebetso ea QEMU-KVM

Melao-motheo e akaretsang ea ts'ebetso ea QEMU-KVM

Kutloisiso ea ka ea hajoale:

1) KVM

KVM (Kernel-based Virtual Machine) ke hypervisor (VMM - Virtual Machine Manager) e sebetsang e le mojule ho Linux OS. Ho hlokahala hypervisor e le hore u tsamaise software e itseng sebakeng se seng teng (virtual) mme ka nako e ts'oanang u pate software ena thepa ea sebele ea 'mele eo software ena e sebetsang ho eona. Hypervisor e sebetsa e le "spacer" lipakeng tsa thepa ea 'mele (moamoheli) le OS (moeti).

Kaha KVM ke mojule o tloaelehileng oa kernel ea Linux, e fumana lintho tsohle tse hlokahalang ho tsoa kernel (taolo ea memori, kemiso, joalo-joalo). 'Me ka lebaka leo, qetellong, melemo ena kaofela e ea ho baeti (kaha baeti ba sebetsa ho hypervisor e sebetsang ho / ho Linux OS kernel).

KVM e potlakile haholo, empa ka boeona ha ea lekana ho tsamaisa OS ea sebele, hobane ... Sena se hloka mohlala oa I/O. Bakeng sa I/O (CPU, disks, network, video, PCI, USB, serial ports, joalo-joalo) KVM e sebelisa QEMU.

2) QEMU

QEMU (Quick Emulator) ke emulator ea lisebelisoa tse fapaneng tse u lumellang ho tsamaisa lits'ebetso tse etselitsoeng moaho o mong ho o mong (mohlala, ARM -> x86). Ntle le processor, QEMU e etsisa lisebelisoa tse fapaneng tsa peripheral: likarete tsa marang-rang, HDD, likarete tsa video, PCI, USB, jj.

E sebetsa tjena:

Litaelo/khoutu ea binary (mohlala, ARM) e fetoloa ho ba khoutu e ikemetseng ea sethala ho sebelisoa converter ea TCG (Tiny Code Generator) ebe khoutu ena ea binary e ikemetseng e fetoloa ho latela litaelo / khoutu (mohlala, x86).

ARM –> intermediate_code –> x86

Ha e le hantle, o ka tsamaisa mechini ea sebele ho QEMU ho moamoheli ofe kapa ofe, esita le ka mefuta ea khale ea processor e sa tšehetseng Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine). Leha ho le joalo, tabeng ena, e tla sebetsa butle haholo, ka lebaka la hore khoutu ea binary e sebetsang e hloka ho khutlisetsoa hape ka fofa ka makhetlo a mabeli, ho sebelisoa TCG (TCG ke moqapi oa Just-in-Time).

Tseo. QEMU ka boeona e pholile haholo, empa e sebetsa butle haholo.

3) Mehele ea tšireletso

Melao-motheo e akaretsang ea ts'ebetso ea QEMU-KVM

Binary program code on processors e sebetsa ka lebaka, empa e fumaneha maemong a fapaneng (rings / Protection rings) e nang le maemo a fapaneng a phihlello ea data, ho tloha ho ba lehlohonolo ka ho fetesisa (Ring 0), ho isa ho tse fokolang, tse laoloang le "ka linate tse tiisitsoeng. ” (Lesale la 3).

Sistimi ea ts'ebetso (OS kernel) e sebetsa ho Ring 0 (kernel mode) mme e ka etsa eng kapa eng eo e e batlang ka data le lisebelisoa life kapa life. Lisebelisoa tsa mosebelisi li sebetsa maemong a Ring 3 (mokhoa oa mosebelisi) 'me ha li lumelloe ho etsa eng kapa eng eo li e batlang, empa ho fapana le moo li tlameha ho kopa phihlello nako le nako ho etsa ts'ebetso e itseng (ka hona, lits'ebetso tsa mosebelisi li na le phihlello ea data ea tsona feela mme ha li khone ho "fumana ka har'a" lebokoso la lehlabathe la motho emong). Ring 1 le 2 li reretsoe ho sebelisoa ke bakhanni.

Pele ho qaptjoa Intel VT-x / AMD SVM, li-hypervisors li ile tsa matha ka Ring 0, 'me baeti ba matha ka Ring 1. Kaha Ring 1 ha e na litokelo tse lekaneng bakeng sa ts'ebetso e tloaelehileng ea OS, ka mohala o mong le o mong o khethehileng o tsoang tsamaisong ea baeti, hypervisor o ile a tlameha ho fetola mohala ona ka fofa ebe o o etsa ho Ring 0 (haholo joalo ka ha QEMU e etsa). Tseo. moeti binary HASE e ne e etsoa ka kotloloho ho processor, 'me nako le nako e ne e feta ka liphetoho tse' maloa tsa mahareng ka fofa.

Bokaholimo bo ne bo le bohlokoa mme hona e ne e le bothata bo boholo, mme joale baetsi ba li-processor, ba sa ipapisa le ba bang, ba lokolla litaelo tse atolositsoeng (Intel VT-x / AMD SVM) e lumelletseng ho phethahatsa khoutu ea OS ea baeti. TS'ELISO ho processor ea moamoheli (ho feta mehato efe kapa efe e theko e boima ea mahareng, joalo ka ha ho ne ho le joalo pele).

Ka ho fihla ha Intel VT-x / AMD SVM, ho ile ha thehoa boemo bo khethehileng ba Ring -1 (ho tlosa e le 'ngoe). 'Me joale hypervisor e sebetsa ho eona,' me baeti ba matha ho Ring 0 mme ba fumana monyetla oa ho fumana CPU.

Tseo. qetellong:

  • moamoheli o matha ho Ring 0
  • baeti ba sebetsa ka Ring 0
  • hypervisor e matha ka Ring -1

4) QEMU-KVM

KVM e fa baeti monyetla oa ho fumana Ring 0 'me e sebelisa QEMU ho etsisa I / O (processor, disks, network, video, PCI, USB, serial ports, joalo-joalo bao baeti ba "bonang" le ho sebetsa le bona).

Kahoo QEMU-KVM (kapa KVM-QEMU) :)

Credits
Setšoantšo ho hohela tlhokomelo
Setšoantšo sa Tšireletso mehele

PS Sengoloa sa sengoloa sena se phatlalalitsoe qalong mocha oa Telegraph @RU_Voip e le karabo ea potso e tsoang ho e mong oa bankakarolo ba kanale.

Ngola litlhalosong moo ke sa utloisiseng sehlooho ka nepo kapa haeba ho na le ho hong ho eketsang.

Спасибо!

Source: www.habr.com

Eketsa ka tlhaloso