Hipervizor
Hipervizor (također poznat kao monitor virtualnog računala, VMM ili virtualizator) vrsta je računalnog softvera, firmvera ili hardvera koji stvara i pokreće virtualne strojeve odnosno virtualna računala.
Računalo odnosno poslužitelj na kojem hipervizor pokreće jedan ili više virtualnih računala naziva se host stroj (engl. host), a svaki virtualni stroj naziva se gost (engl. guest) stroj. Hipervizor pokreće gostujuće operativne sustave s virtualnom operativnom platformom i upravlja izvođenjem gostujućih operativnih sustava. Za razliku od emulatora, gost (unutar virtualnog računala) izvršava većinu instrukcija na izvornom hardveru (ako to hardver podržava). Višestruke instance različitih operativnih sustava mogu dijeliti virtualizirane hardverske resurse: na primjer, instance Linuxa, Windowsa i macOS-a mogu se sve izvoditi na jednom fizičkom računalu ili poslužitelju.
Možemo reći i ovako: potpuna virtualizacija naziva se i hardverska virtualizacija ili virtualizacija platforme, a odnosi se na stvaranje virtualnog računala (stroja) koji se ponaša kao pravo računalo s operativnim sustavom. Softver koji se izvodi na ovim virtualnim računalima odvojen je od temeljnih hardverskih resursa. Na primjer, računalo koje pokreće Debian Linux može ugostiti virtualno računalo koje izgleda kao stvarno (fizičko) računalo s operativnim sustavom Microsoft Windows, što dopušta i pokretanje softvera temeljenog na operativnom sustavu Windows na tom virtualnom računalu.
Dakle prednost virtualizacije leži u činjenici da se gotovo svaki x86 kompatibilni operativni sustav može pokrenuti pod centralnom administracijom hipervizora bez dodatnih prilagodbi. Ovakav način rada naziva se potpuna virtualizacija ili hardverski virtualni stroj (HVM). Da bi to sve radilo, potrebna je i hardverska podrška za virtualizaciju unutar modernih procesora (CPU-a).
Ovakva virtualizacija je u suprotnosti s virtualizacijom na razini operativnog sustava.
Virtualizacija na razini operativnog sustava koristi određene metode izolacije resursa na razini operativnog sustava, poput Linux kontejnera, gdje sve instance (obično zvane kontejneri) moraju dijeliti kernel (jezgru) operativnog sustava instaliranog na fizičko računalo. Iako se operativni sustavi za goste mogu razlikovati u korisničkom prostoru, kao što su različite distribucije Linuxa, koje koriste isti kernel (od fizičkog računala), u njih (kontejnere) se ne mogu instalirati drugačiji operativni sustavi.
To znači da, ako na fizičkom računalu imamo instaliran Linux (pr. Debian distribucija), da kao gostujući Linux kontejner možemo imati bilo koju drugu distribuciju Linuxa (pr. Ubuntu, Rocky Linux, ... ), ali ne i primjerice Windows ili macOS.
To je tako jer Linux na fizičkom računalu, prema Linux kontejneru prosljeđuje sve svoje resurse, preko mehanizama izolacije i ograničavanja resursa (tzv. cgroups) te dodatno preko imeničnih izolacijskih prostora Linuxa (Linux namespace). Dok aplikacije unutar Linux kontejnera s fizičkim računalom (Linuxom) komuniciraju preko izoliranih imeničnih prostora, pomoću sistemskih poziva Linuxa.
Vratimo sa na hipervizor. Izraz hipervizor varijanta je riječi nadzornik, pa je prema logici rada hipervizor nadzornik nadzornika, jer se on pokreće na fizičkom računalu, unutar njegovog operativnog sustava, nadzirući (i upravljajući) s operativnom sustavom virtualnog računala, odnosno gosta.
Od 2005. proizvođači procesora ugradili su podršku za hardversku virtualizaciju; na primjer, Intel VT-x (kodnog naziva Vanderpool) i AMD-V (kodnog naziva Pacifica), kao i drugi proizvođači za druge arhitekture procesora (osim x86 [ARM, RISC-V, SPARC, ...]).
Pojednostavljeno, hipervizor je komponenta operativnog sustava instalirana direktno na hardver (računalo/poslužitelj). Hipervizor pomoću svojih komponenti ima više zadataka, od rezerviranja hardverskih resursa fizičkog računala i dodjeljivanja tih resursa virtualnom računalu, do emuliranja hardvera koji se predstavlja virtualnom računalu, poput:
- Matične ploče sa svojim BIOSom i emuliranim sklopovljem, čipseta i svih djelova matične ploče, kao i centralnog procesora (CPU).
- Diskovnog kontrolera sa svojim BIOSom i emuliranim sklopovljem te sâmih diskova.
- Mrežne kartice (sučelja) sa svojim BIOSom i emuliranim sklopovljem.
- Grafičke kartice (sučelja) sa svojim BIOSom i emuliranim sklopovljem.
- ... svih ostalih kompomenti virtualnog računala, kao da se radi o fizičkom računalu.
Dakle hipervizor[1] emulira sve komponente klasičnog računala (uz hardversku pomoć modernih procesora) i daje ih virtualnom računalu. A potom se unutar virtualnog računala instalira operativni sustav prema želji (pr. pomoću ISO slike operativnog sustava). Operativni sustav unutar virtualnog računala nije svjestan da se on pokreće u virtualnom računalu, jer on vidi sve komponente računala koje mu je hipervizor dao (iako su emulirane to jest virtualizirane).
Tako da je unutar njega (virtualiziranog operativnog sustava) potrebno učitati upravljačke programe svog virtualiziranog hardvera (zapravo emuliranog hardvera). Pod Linuxom i nekim drugim platformama za virtualizaciju (pr. VMware ESXi) osim emuliranja hardvera, moguće je koristiti i paravirtualizaciju, za određene komponente računala. Pogledajte Proxmox VE.
Na Linuxu je centralni dio hipervizora KVM (Kernel-based Virtual Machine), pri čemu KVM omogućuje korištenje hardverski ubrzanih značajki modernih procesora za virtualizaciju (Intel VT-x ili AMD-V ) a njegova komponenta zadužena za emuliranje hardvera je QEMU[2].
- ↑ Horvat, Hrvoje. 6. srpnja 2023. Operativni sustavi i računalne mreže - Linux u primjeni. Hrvoje Horvat. Osijek. str. 1070–1071, 1074–1075, 1078–1080, 1082–1084. doi:10.5281/zenodo.8119310. ISBN 978-953-59438-9-1CS1 održavanje: datum i godina (link)
- ↑ KVM. KVM. KVM.org. Pristupljeno 10. kolovoza 2022.