A hypervisor – vagy magyarul hiperfelügyelő olyan szoftver vagy hardver, ami virtuális számítógépek futtatását végzi. A hypervisort működtető számítógép a host (kiszolgáló, virtualizációs szerver). A virtuális számítógépek a vendégek (angolul guest, vendég), ezek számára a hypervisor egy virtuális környezetet biztosít, amelyen a vendég operációs rendszer fut. Több ilyen virtuális számítógép osztozkodhat a host gép erőforrásain. Ellentétben egy emulátorral, a vendég a legtöbb utasítást a natív hardveren hajtja végre. Több példányban futó különböző operációs rendszerek oszthatják meg a virtualizált hardver erőforrásait, például Linux, Windows és macOS példányok mindegyike futtatható egyetlen fizikai x86-os gépen. Ez ellentétben áll a műveleti rendszer szintű virtualizációval, ahol az összes példánynak (általában konténereknek nevezett) egyetlen magot kell osztaniuk.
A „hipervizor” kifejezés egy variációja a felügyelőnek, ami a műveleti rendszer kernelének hagyományos neve: a hipervizor a felügyelők felügyelője, a „hyper-” pedig a „super-” erősebb változata. A kifejezés a körülbelül 1970-es évekre datálódik, eleinte az IBM 360/65 gépeken alkalmazott technológiára, és később a CP-67 DIAC kezelőre is használták. A korábbi CP/CMS (1967) rendszerben a Felügyeleti Program kifejezést használták helyette.
Történet A hypervisor kifejezést először 1965-ben használták az IBM 360/65 gépeken. Lehetővé tette, hogy az IBM 360/65 gép megossza memóriáját, félig IBM 360-ként, félig pedig emulált IBM 7080-ként viselkedve. A hypervisorként említett szoftver váltott a két üzemmód között időosztásos alapon. A hypervisor kifejezést a felügyelő szoftver (supervisor) fejlesztéseként értelmezték.Documentation for IBM RPQ E880801
Az első teljes virtualizációt nyújtó hypervisorok a SIMMON teszt eszközök és az egyedi IBM CP-40 kutatási rendszerek voltak, amelyek 1967 januárjában kezdték meg a termelési felhasználást, és az IBM CP/CMS operációs rendszer első verziójává váltak. A CP-40 egy S/360-40 gépen futott, amelyet a Cambridge Scientific Center módosított dinamikus címfordítás támogatására, egy funkciónak, amely lehetővé tette a virtualizációt. Eddig a számítógép hardvere csak olyan mértékben lett virtualizálva, hogy lehetővé tegye a többfelhasználós alkalmazások egyidejű futtatását, például a CTSS és az IBM M44/44X esetében. A CP-40-nel a hardver felügyelő állapota is virtualizált lett, lehetővé téve több operációs rendszer egyidejű futtatását külön virtuális gép kontextusokban.
A programozók hamarosan megvalósították a CP-40-et (CP-67-ként) az IBM System/360-67-hez, az első termelési számítógép rendszertehetséges teljes virtualizációval. Az IBM ezt a gépet 1966-ban szállította ki; tartalmazta az oldal-címfordítási tábla hardvert a virtuális memória és más technikák lehetővé tételéhez, amelyek teljes virtualizációt tettek lehetővé az összes kernel feladat számára, beleértve az I/O és interrupt kezelést is. (Megjegyzés, hogy a "hivatalos" operációs rendszer, a TSS/360 nem alkalmazott teljes virtualizációt.) Mind a CP-40, mind a CP-67 1967-ben kezdték meg a termelési felhasználást. A CP/CMS elérhető volt az IBM ügyfelek számára 1968-tól a 70-es évek elejéig, forráskódban, támogatás nélkül.
A CP/CMS része volt az IBM kísérletének a strapabíró időmegosztású rendszerek építésére nagygépeihez. A hypervisor által több operációs rendszer egyidejű futtatásával a rendszer strapabírósága és stabilitása növekedett: még akkor is, ha egy operációs rendszer összeomlott, a többi továbbra is zavartalanul működött. Valóban, ez lehetővé tette a béta vagy kísérleti verziók telepítését és hibakeresését, anélkül hogy veszélyeztetnék a stabil fő produkciós rendszert, és anélkül, hogy további drága fejlesztési rendszereket igényelne.
Az IBM bejelentette a System/370 sorozatot 1970-ben, anélkül, hogy megfelelő lenne a virtualizációhoz szükséges virtuális memória funkció, de hozzáadta azt az 1972. augusztusi Advanced Function bejelentésben. A virtualizáció szerepelt minden utódszereplő rendszerben, így a mai napig az összes modern IBM nagygép, beleértve a Z sorozatot, kompatibilis marad a 60-as évekbeli IBM S/360 sorozattal. Az 1972-es bejelentés tartalmazta a VM/370-et is, amely a CP/CMS újraillesztése volt az S/370 számára. Ellentétben a CP/CMS-sel, az IBM támogatást is biztosított ehhez a verzióhoz (bár továbbra is forráskódban terjesztették ki több verzióban). A VM a Virtual Machine rövidítése, kiemelve, hogy az összes, nem csak néhány hardware interfész virtualizált. Mind a VM, mind a CP/CMS korai elfogadást és gyors fejlesztést élvezett az egyetemeken, vállalati felhasználóknál és időmegosztó szolgáltatóknál, valamint az IBM-en belül. A felhasználók aktív szerepet játszottak a folyamatos fejlesztésben, elöljáróban azon trendek figyelését, amelyeket a modern nyílt forráskódú projektekben látunk. 2000-től népszerűségének és támogatásának felívelése volt a z/VM termék formájában, például Linux platformként az IBM Z-n.
Ahogyan fent említettük, a VM vezérlő programja tartalmaz egy hypervisor-hívás kezelőt, amely elfogja a DIAG ("Diagnózis", opcode x'83') utasításokat, amelyeket egy virtuális gépben használnak. Ez biztosítja a fájlrendszer-hozzáférés és más műveletek gyors nem-virtualizált végrehajtását (A DIAG egy modellfüggő privilegizált utasítás, nem használják a normál programozás során, így nem virtualizált. Ezért elérhető a "házigazda" operációs rendszer számára jelzésként). Amikor először megvalósították a CP/CMS 3.1 kiadásában, ez a DIAG használat egy operációs rendszeri felületet biztosított, ami analóg volt a System/360 Felügyelő Hívás utasításhoz (SVC), de az nem igényelte a rendszer SVC virtualizálásának módosítását vagy bővítését.
A hypervisor kifejezést először 1965-ben használták az IBM 360/65 gépeken. Lehetővé tette, hogy az IBM 360/65 gép megossza memóriáját, félig IBM 360-ként, félig pedig emulált IBM 7080-ként viselkedve. A hypervisorként említett szoftver váltott a két üzemmód között időosztásos alapon. A hypervisor kifejezést a felügyelő szoftver (supervisor) fejlesztéseként értelmezték.
1985-ben az IBM bemutatta a PR/SM hypervisort a logikai partíciók (LPAR) kezelésére.
Osztályozás
Robert P. Goldberg kétféle hypervisort vázolt fel:
1-es típus (natív, hardveres) a hypervisor közvetlenül a gazdagép (hoszt) hardverén fut, irányítja a hoszt hardvert és a vendég operációs rendszereket. Ide tartoznak a klasszikus hypervisorok: a SIMMON és a CP/CMS. A modern implementációk az Oracle Vm Server for Sparc, a XenServer, a VmWare ESX és a Microsoft Hyper-V.
2-es típus (hosztolt) hagyományos operációs rendszer környezetben fut. A hypervisor a második réteg az operációs rendszer felett, és ezen fut harmadik rétegként a vendég operációs rendszer. Erre példa a KVM, a VmWare Workstation és a VirtualBox.
Operációs rendszerek között Több tényező vezetett a virtualizációs technológia újbóli elterjedéséhez 2005 körül a Unix, Linux és más Unix-szerű operációs rendszerek között:
A bővülő hardverkapacitás lehetővé teszi, hogy minden egyes gép több egyidejű munkát végezzen Az erőfeszítések a költségek csökkentése és a szerverek összevonása révén, a kezelés egyszerűsödik A nagy multiprocesszoros és klaszter telepítések ellenőrzésére irányuló igény, például szerverfarmokban A javított biztonság, megbízhatóság és eszközfüggetlenség, amely lehetséges a hypervisor architektúrából A képesség, hogy futtassuk bonyolult, operációs rendszerfüggő alkalmazásokat különböző hardver- vagy operációs rendszer-környezetekben A képesség, hogy több erőforrást allokáljunk, több alkalmazást illesszünk be egy hostra A nagy Unix-eladók, például HP, IBM, SGI és Sun Microsystems már értékesítettek virtualizált hardvert a 2000-es évek előtt. Ezek általában nagy, drága rendszerek voltak (a multimillió dolláros tartományban a csúcskategóriában), bár a virtualizáció elérhető volt néhány alacsony és középkategóriás rendszeren, például az IBM pSeries szervereken, a HP Superdome sorozaton és a Sun/Oracle T-sorozatú CoolThreads szervereken.
Bár a Solaris mindig az egyetlen hivatalosan támogatott vendég operációs rendszer volt a Sun/Oracle által fejlesztett Logical Domains hypervisoron, az utóbbi időben, 2006 óta, a Linux (Ubuntu és Gentoo), valamint a FreeBSD is portolva lett a hypervisorra (és mindegyik egyszerre futtatható ugyanabban a processzorban, mint teljesen virtualizált független vendég operációs rendszerek). A Wind River "Carrier Grade Linux" is fut Sun Hypervisor-on. Teljes virtualizáció az SPARC processzorokon könnyűnek bizonyult: az 1980-as évek közepétől kezdve a Sun szándékosan tisztán tartotta a SPARC architektúrát olyan elemektől, amelyek akadályozták volna a virtualizációt.
Az HPE nyújtja a HP Integrity Virtual Machines (Integrity VM) lehetőséget több operációs rendszer futtatására az Itanium processzorral működő Integrity rendszereiken. Az Itanium képes futtatni HP-UX, Linux, Windows és OpenVMS-t, és ezeket a környezeteket támogatják virtuális szerverként az HP Integrity VM platformon. A HP-UX operációs rendszer hostolja a Integrity VM hypervisor réteget, amely lehetővé teszi a HP-UX fontos funkcionalitásainak kihasználását és jelentős különbséget jelent ez a platform és más általános platformok között – például processzor cseréje futás közben, memória cseréje futás közben, és dinamikus kernel frissítések rendszer újraindítás nélkül. Bár erősen támaszkodik a HP-UX-re, a Integrity VM hypervisor valójában egy hibrid, ami a hardveren fut, míg a vendégek futnak. Normál HP-UX alkalmazások futtatása egy Integrity VM hoston nem ajánlott, mert a Integrity VM saját memóriakezelést, tervezést és I/O irányelveket használ, amelyek a virtuális gépek számára vannak optimalizálva, és nem olyan hatékonyak normál alkalmazások esetén. Az HPE továbbá szigorúbb felosztást biztosít az Integrity és HP9000 rendszereikhez VPAR és nPar technológia útján, előbbi megosztott erőforrásfelosztást nyújt, míg utóbbi teljes I/O és feldolgozási elszigetelést. A virtuális szerver környezet (VSE) rugalmasa miatt gyakrabban használják az újabb telepítéseknél.
IBM által biztosított a virtuálizációs partíció technológia, amelyet ismert logikai particionálás (LPAR) a System/390, zSeries, pSeries és IBM AS/400 rendszereken. Az IBM Power Systems esetében a POWER Hypervisor (PHYP) egy natív (bare-metal) hypervisor firmware-ben, amely izolációt biztosít az LPAR-ok (logikai partíciók) között. A processzor kapacitást vagy kifejezetten egy LPAR-ra biztosítják, vagy jogosultsági alapon, ahol a felhasználatlan kapacitás elérhetővé válik és újraosztható elfoglalt munkateherként. Az LPAR-ok csoportjai a processzor kapacitásukat úgy kezelhetik, mintha "medencében" lennének – az IBM ezt a képességet Többszörös osztott processzorterületek (Multiple Shared-Processor Pools, MSPP) néven nevezi, és az POWER6 processzorral rendelkező szerverekben valósítja meg. Az LPAR és MSPP kapacitásallokációkat dinamikusan lehet módosítani. A memóriát minden LPAR-hoz kiosztják (LPAR indításakor vagy dinamikusan), és a POWER Hypervisor címellenőrzést végez benne. A valós módú címzéshez az operációs rendszerek (AIX, Linux, IBM i) számára a Power processzorok (POWER4-től kezdődően) terveztek virtualizációs képességeket, ahol a hardver címeltolás az operációs rendszer címeltolásával összehasonlítva a fizikai memóriacímet hoz létre. A bemenet/kimeneti (I/O) adapterek az LPAR-ok kizárólagosan "tulajdonolhatják" vagy megoszthatják LPAR-ok az úgynevezett Virtuális I/O Szerver (VIOS) partíció által. A Power Hypervisor nagy szintű megbízhatóságot, rendelkezésre állást és szolgálhatóságot (RAS) biztosít azzal, hogy lehetővé teszi sok alkatrész probléma nélküli hozzáadását/cseréjét (modelltől függően: processzorok, memória, I/O adapterek, hűtőventilátorok, tápegységek, lemezek, rendszervezérlők, stb.)