Hü­per­vii­sor on tarkvara või püsivara, mis hõlbustab vir­tuaal­ma­si­nate loomist ja haldamist, abst­ra­hee­ri­des füüsilise arvuti riist­va­ra­res­sursse ning või­mal­da­des mitme ope­rat­sioo­ni­süs­teemi sa­ma­aeg­set töötamist. Selle asemel, et ehitada üles tervet süsteemi koos riistvara ja ope­rat­sioo­ni­süs­tee­miga, loob hü­per­vii­sor vir­tua­li­see­ri­tud versiooni, mis si­su­li­selt si­mu­lee­rib täielikku ar­vu­ti­kesk­konda.

Kuidas töötab hü­per­vii­sor?

Vir­tuaal­ma­sina (VM) loomisel toimib see mit­te­vir­tuaalse, tegeliku masina – näiteks per­so­naal­ar­vuti – baasil. Vir­tuaal­ma­sin sõltub füü­si­li­sest riist­va­rast. Seetõttu on kahe taseme vahel haldamise eest vastutav kiht: hü­per­vii­sor. Hü­per­vii­sor on tarkvara, mis võtab üle vajalike res­surs­side haldamise. See programm, mida tuntakse ka kui vir­tuaal­ma­sina monitori (VMM), jaotab ressursse süsteemis. Sel viisil saavad mitmed erinevad vir­tuaal­ma­si­nad töötada ühel host-süsteemil, kuna hü­per­vii­sor tagab, et need ei segaks üksteist ja et kõigil oleksid vajalikud võimsused kät­te­saa­da­vad.

Seega loob hü­per­vii­sor riistvara ja sellel töötavate ope­rat­sioo­ni­süs­teemide vahele abst­rakt­sioo­ni­kihi. Selleks jagab ta riist­va­ra­res­sur­sid loo­gi­lis­teks üksusteks ja si­mu­lee­rib iga vir­tuaal­ma­sina jaoks eraldi keskkonna. Vir­tuaal­ma­si­nad tunnevad, nagu töötaksid nad otse reaalse riistvara peal, kuigi nad jagavad ressursse teiste vir­tuaal­ma­si­na­tega.

Note

Erinevate vir­tuaal­ma­si­nate range eral­da­mine tagab mitte ainult res­surs­side õige jaotuse, vaid suurendab ka tur­va­li­sust. Hü­per­vi­sor tagab, et kü­la­lis­süs­teem ei pääse ligi teise kü­la­lis­süs­teemi failidele. See on eriti oluline tes­ti­misel, et vigane programm ei kah­jus­taks teisi test­kesk­kondi.

Mä­lu­hal­dus

Prot­ses­sori vir­tua­li­see­ri­misel kasutab hü­per­vii­sor selliseid meetodeid nagu ajajaotus, et jaotada tööt­le­mis­võim­sus vir­tuaal­ma­si­nate vahel õiglaselt. Kaas­aeg­se­tel prot­ses­so­ri­tel on spet­siaal­sed vir­tua­li­see­ri­mis­funkt­sioo­nid (nt Intel VT-x või AMD-V), mis toetavad hü­per­viisorit ja vä­hen­da­vad li­sa­koor­must.

Mälu (RAM) haldamine toimub le­he­kül­gede va­he­ta­mise ja kaar­dis­ta­mise meetodite abil. Hü­per­visori abil mää­ra­takse füü­si­lis­tele mä­lub­lok­ki­dele vir­tuaal­mälu aadressid, mistõttu iga vir­tuaal­ma­sin näeb ainult oma mäluruumi. Kui mälu on napiks jäänud, saab kasutada selliseid meh­ha­nisme nagu mälu üle­mää­ra­mine või bal­loo­ning, et jaotada mälu vir­tuaal­ma­si­nate vahel tõhusalt.

Sisend-väljund ja seadmete haldus

Vir­tuaal­ma­si­nad pääsevad ligi riist­vara­sead­me­tele, nagu kõ­va­kettad, võr­gu­kaar­did või graa­fi­ka­kaar­did, vir­tuaal­sete liideste kaudu. Hü­per­vi­sor emuleerib neid seadmeid või suunab päringud otse füü­si­li­sele riist­va­rale (kasutades Direct-I/O või lä­bi­vii­mise tehnikaid). See tagab ühil­du­vuse ja jõudluse vahelise tasakaalu.

Iso­lat­sioon ja tur­va­li­sus

Vir­tua­li­see­ri­mise oluline eelis on vir­tuaal­ma­si­nate vaheline eraldatus. Iga vir­tuaal­ma­sin töötab oma kesk­kon­nas, mistõttu ühe vir­tuaal­ma­sina vead või rünnakud ei avalda otsest mõju teistele vir­tuaal­ma­si­na­tele ega host-süs­tee­mile. Hü­per­visori kasutab range eral­da­tuse ta­ga­miseks mit­me­su­gu­seid tur­va­meh­ha­nisme, seal­hul­gas mä­lu­kait­set, juur­de­pää­su­kont­rolli ja sand­boxing-meetodeid.

Erinevad vir­tuaal­ma­sina monitorid

Vir­tuaal­ma­si­nate monitoore on kahte tüüpi: 1. tüübi ja 2. tüübi hü­per­viiso­rid. Mõlemal on oma väga konk­reet­sed eelised. Esimene neist on ka vanem versioon. Selle teh­no­loo­gia abil hakati vir­tua­li­see­ri­mi­sega tegelema juba 1960. aastatel.

1. tüübi hü­per­vii­sor

Esimest tüüpi hü­per­viisorit ni­me­ta­takse bare-metal-hü­per­viisoriks või na­tiiv­seks hü­per­viisoriks. Selline VMM pai­gal­da­takse otse füü­si­li­sele riist­va­rale, möödudes pe­re­mees­ar­vuti ope­rat­sioo­ni­süs­tee­mist. Seetõttu peab see sisaldama kõiki vajalikke seadme drai­ve­reid. Tüübi 1 hü­per­visori res­sur­si­tar­bi­mine on suh­te­li­selt madal, kuna ar­vu­tus­võim­sus ei pea läbima hosti ope­rat­sioo­ni­süs­teemi. Selline hü­per­vi­sor on mõeldud eelkõige ka­su­ta­ja­tele, kes soovivad luua vir­tua­li­see­ri­mis­ser­ve­rit. Väik­se­mate ko­du­pro­jek­tide jaoks on tüübi 1 hü­per­vi­sor aga ta­va­li­selt liiga keeruline.

Image: Schematic representation of the functioning of the Type-1 hypervisor
A Type-1 hy­per­vi­sor sits directly on the hardware.

2. tüübi hü­per­vii­sor

Teine variant (tuntud ka kui majutatud hü­per­vii­sor) eeldab ole­mas­ole­vat ope­rat­sioo­ni­süs­teemi, mis on pai­gal­da­tud füü­si­li­sele riist­va­rale. Tüüp 2 hü­per­vii­sor ins­tal­li­takse nagu iga teine programm. Seejärel haldab vir­tua­li­see­ri­mist VMM. Seadme drai­ve­reid ei ole vaja hü­per­viisorisse ins­tal­lida, kuna tegelik ope­rat­sioo­ni­süs­teem saab need lihtsalt tark­va­rale edastada. See mugavus tuleb aga jõudluse arvelt. Olulise osa res­surs­si­dest tarbib juba hosti ope­rat­sioo­ni­süs­teem. Lihtsa ins­tal­li­mise ja kon­fi­gu­ree­ri­mise tõttu sobivad tüüp 2 hü­per­viiso­rid ideaal­selt väik­se­ma­tele pro­jek­ti­dele.

Image: Schematic representation of the functioning of the Type-2 hypervisor
The Type-2 hy­per­vi­sor is installed on an existing operating system.
Go to Main Menu