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
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
PS Sengoloa sa sengoloa sena se phatlalalitsoe qalong mocha oa Telegraph
Ngola litlhalosong moo ke sa utloisiseng sehlooho ka nepo kapa haeba ho na le ho hong ho eketsang.
Спасибо!
Source: www.habr.com