Кіріспе

Виртуалды машиналарды құрастыратын және іске қосатын бағдарламалық қамтамасыз ету немесе аппараттық құрал.

Гипервизор, сондай-ақ виртуалды машина мониторы (ВММ) немесе виртуализатор деп аталады, – виртуалды машиналарды құрастыратын және іске қосатын компьютерлік бағдарламалық қамтамасыз ету, микробағдарламалық қамтамасыз ету немесе аппараттық құралдың бір түрі. Гипервизор бір немесе бірнеше виртуалды машинаны іске қосатын компьютер хост-машина деп аталады, ал әрбір виртуалды машина – қонақ-машина деп аталады. Гипервизор қонақ операциялық жүйелерге виртуалды операциялық платформа ұсынады және қонақ операциялық жүйелердің жұмыс істеуін басқарады. Эмулятордан айырмашылығы, қонақ көптеген нұсқауларды түпнұсқалық аппараттық құралда орындайды. Әртүрлі операциялық жүйелердің бірнеше мысалы виртуалды аппараттық ресурстарды бөлісе алады: мысалы, Linux, Windows және macOS мысалдарын бір физикалық x86 машинасында іске қосуға болады. Бұл операциялық жүйе деңгейіндегі виртуализациядан өзгеше, онда барлық мысалдар (әдетте контейнерлер деп аталады) бір ядроны бөлісуі керек, бірақ қонақ операциялық жүйелер пайдаланушы кеңістігінде әртүрлі болуы мүмкін, мысалы, бір ядроны қолданатын әртүрлі Linux дистрибутивтері. Гипервизор термині – супервизордың бір түрі, операциялық жүйенің ядросы үшін дәстүрлі термин: гипервизор – супервизорлардың супервизоры, мұндағы «гипер» – «супер» сөзінің күштірек түрі. Бұл термин шамамен 1970 жылға дейін қарайды; IBM оны 360/65 үшін қолданды, кейін CP 67 DIAG өңдеушісі үшін пайдаланды. Алдыңғы CP/CMS (1967) жүйесінде оның орнына Control Program термині қолданылған.

Негізгі компьютерлердің пайда болуы

Толық виртуализацияны қамтамасыз ететін алғашқы гипервизорлар – SIMMON тест құралы және IBM CP 40 зерттеу жүйесінің бірі болды. Ол 1967 жылдың қаңтарында өндіріске енгізіліп, IBM CP/CMS операциялық жүйесінің алғашқы нұсқасы саналды. CP 40, динамикалық мекенжай аудармасын қолдау үшін Кембридж ғылыми орталығында өзгертілген S/360 40 машинасының үстінде жұмыс істеді, бұл виртуализацияны мүмкін ететін мүмкіндік болды. Осыған дейін компьютерлік жабдықтар тек бірнеше пайдаланушы қолданбаларын бір уақытта іске қосуға мүмкіндік беретін деңгейде ғана виртуалдыландырылған, мысалы CTSS және IBM M44/44X жүйелерінде. CP 40 арқылы аппараттық қадағалаушы күйі де виртуалдыланды, соның нәтижесінде бірнеше операциялық жүйелерді бөлек виртуалды машиналар контекстінде бір мезгілде іске қосуға болады. Бағдарламашылар көп ұзамай CP 40-ты (CP 67 ретінде) IBM System/360 67 үшін іске қосты, бұл толық виртуализацияға қабілетті алғашқы өндірістік компьютерлік жүйе болды. IBM бұл машинаны 1966 жылы шығарды; оған виртуалды жад үшін беттік аударма кестесінің аппараттық құралдары және ядролық барлық тапсырмаларды, соның ішінде I/O және үзіліс өңдеуді толық виртуалдастыруға мүмкіндік беретін басқа да әдістер кірді. (Еске сала кетейік, "ресми" операциялық жүйе TSS/360 толық виртуализацияны қолданбады.) CP 40 және CP 67 екеуі де 1967 жылы өндіріске енгізілді. CP/CMS 1968 жылдан 1970 жылдардың басына дейін IBM клиенттеріне бастапқы код түрінде, қолдаусыз қолжетімді болды. CP/CMS, IBM-нің өзінің орталық компьютерлері үшін сенімді уақыт бөлісу жүйелерін құруға жасаған тырысының бір бөлігі болды. Бір уақытта бірнеше операциялық жүйелерді іске қосу арқылы гипервизор жүйенің сенімділігі мен тұрақтылығын арттырды: тіпті бір операциялық жүйе құласа, қалғандары үзіліссіз жұмысын жалғастыра беретін. Бұл операциялық жүйелердің немесе тіпті жаңа аппараттық құралдардың бета немесе сынақ нұсқаларын тұрақты негізгі өндірістік жүйені қауіпке ұшыратпай, қымбат қосымша даму жүйелерін қажет етпей, іске қосуға және жөндеуге мүмкіндік берді. IBM 1970 жылы виртуализацияға қажетті виртуалды жад мүмкіндігінсіз System/370 сериясын жариялады, бірақ оны 1972 жылдың тамызындағы Advanced Function хабарламасында қосты. Виртуализация барлық келесі жүйелерде қолданылды, сондықтан барлық қазіргі IBM мейнфреймдері, соның ішінде zSeries желісі, 1960 жылдардағы IBM S/360 желісімен кері үйлесімділікті сақтайды. 1972 жылғы хабарламаға S/370 үшін CP/CMS-ті қайта іске асырған VM/370 да кірді. CP/CMS-тен айырмашылығы, IBM бұл нұсқаға қолдау көрсетті (бірақ ол әлі де бірнеше шығарылымдар үшін бастапқы код түрінде таратылды). VM – «Виртуалды машина» дегенді білдіреді, бұл барлық аппараттық интерфейстер, тек кейбіреулері ғана емес, виртуалды екенін көрсетеді. VM және CP/CMS екеуі де университеттерде, корпоративтік пайдаланушылар мен уақыт бөлісу өнімдерін шығарушыларда, сондай-ақ IBM-де ерте қабылданып, жылдам дамыды. Пайдаланушылар даму процесіне белсенді қатысып, қазіргі ашық кодты жобаларда көрінетін тенденцияларды болжады. Алайда, бірқатар даулы және ащы шайқастарда уақыт бөлісу, IBM-нің саяси тартысының нәтижесінде пакеттік өңдеуге жеңілді, ал VM ондаған жылдар бойы IBM-нің «басқа» мейнфрейм операциялық жүйесі болып қалып, MVS-ке ұтылды. Ол 2000 жылдан бастап z/VM өнімі ретінде танымалдығын қайта арттырды, мысалы IBM Z-дегі Linux платформасы ретінде. Жоғарыда айтылғандай, VM басқару бағдарламасына гипервизорлық шақыруларды басқарушы кіреді, ол виртуалды машинада қолданылатын DIAG («Диагностикалау», opcode x'83') нұсқауларын қабылдайды. Бұл файлдық жүйеге қол жеткізу және басқа операциялардың виртуалды емес, жылдам орындалуын қамтамасыз етеді (DIAG – бұл модельге тәуелді артықшылықты нұсқау, қалыпты бағдарламалауда қолданылмайды, сондықтан виртуалды емес. Сондықтан оны «хост» операциялық жүйеге сигнал ретінде пайдалануға болады). CP/CMS 3.1 нұсқасында алғаш рет іске асырылған кезде DIAG-тің осы қолданылуы операциялық жүйе интерфейсін қамтамасыз етті, ол System/360 Supervisor Call нұсқаулығына (SVC) ұқсас болды, бірақ SVC-нің жүйелік виртуализациясын өзгертуді немесе кеңейтуді қажет етпеді. 1985 жылы IBM логикалық бөлімдерді басқару үшін PR/SM гипервизорын (LPAR) енгізді.

x86 жүйелері

X86 виртуализациясы 1990 жылдары енгізілді, оның эмуляциясы Bochs бағдарламасына қосылды. Intel және AMD 2005 жылы Intel VT-x (Vanderpool кодовый аты) және AMD-V (Pacifica кодовый аты) атты алғашқы x86 процессорларын аппараттық виртуализация мүмкіндігімен шығарды. Балама тәсіл, гипервизор имитациялайтын машиналық I/O нұсқауларын орындаудың орнына, негізгі гипервизорға жүйелік шақыру жасау үшін қонақ опералық жүйені өзгертуді қажет етеді. Бұл Xen-де паравиртуализация, Parallels Workstation-да "гипершақыру", ал IBM VM-де "DIAGNOSE коды" деп аталады. Mach және L4 сияқты кейбір микроядролар, қонақ опералық жүйелерді паравиртуализациялауға жеткілікті икемділікке ие.

Кіріспелі жүйелер

Енгізілген гипервизорлар, енгізілген жүйелерге және нақты уақыт режимінде жұмыс істейтін белгілі бір операциялық жүйелерге (RTOS) бағытталған, десктоптық және корпоративтік жүйелермен салыстырғанда, беріктік, қауіпсіздік және нақты уақыт мүмкіндіктері тұрғысынан әртүрлі талаптармен жобаланады. Көптеген енгізілген жүйелердің, әсіресе аккумуляторлық қуатпен жұмыс істейтін мобильді жүйелердің шектеулі ресурстары, кішкентай жад көлемі мен төмен шығынды талап етеді. Сонымен қатар, PC әлемінде x86 архитектурасының кең таралғандығына қарағанда, енгізілген әлемде әртүрлі архитектуралар мен кем стандартталған орталар қолданылады. Виртуализацияны қолдау үшін жадты қорғау (жадты басқару бірлігі немесе кемінде жадты қорғау бірлігі арқылы) және пайдаланушы режимі мен привилегиялы режим арасындағы айырмашылық қажет, бұл көптеген микроконтроллерлерді қолдаудан шығарады. Бұл x86, MIPS, ARM және PowerPC архитектураларын орта және жоғары деңгейдегі енгізілген жүйелерде кеңінен қолданылатын құрылымдар ретінде қалдырады. Енгізілген жүйелерді өндірушілер әдетте өздерінің операциялық жүйелерінің бастапқы кодына ие болғандықтан, оларға осы салаға толық виртуализация қажеттігі азайды. Керісінше, паравиртуализацияның өнімділік артықшылықтары оны әдетте таңдаулы виртуализация технологиясы етеді. Дегенмен, ARM және MIPS жақында толық виртуализация қолдауын IP опциясы ретінде қосып, ARM Cortex A15 MPCore және ARMv8 EL2 сияқты соңғы жоғары деңгейдегі процессорлар мен архитектуралық нұсқаларына енгізді. Серверлік/десктоптық және енгізілген орталардағы виртуализацияның басқа да айырмашылықтарына виртуалды машиналар арасында ресурстарды тиімді бөлісу, жоғары өткізу қабілеті, виртуалды машиналар арасындағы байланыстың төмен задергісі, жоспарлау және қуатты басқарудың жалпы көрінісі, сондай-ақ ақпарат ағындарын ұсақ деңгейде бақылау талаптары кіреді.

Қауіпсіздікке әсері

Операциялық жүйенің астына өздерін гипервизор ретінде орнататын зиянды бағдарламалар мен түбірлік жинақтардың (rootkit) гипервизор технологиясын пайдалануы, гипержакинг деп аталады, және оларды анықтау қиынырақ болуы мүмкін, себебі зиянды бағдарлама операциялық жүйенің кез келген әрекетін (мысалы, пайдаланушының пароль енгізуін) антивирустық бағдарламалық қамтамасыз ету міндетті түрде анықтамайынша ұшырап алады (өйткені зиянды бағдарлама бүкіл операциялық жүйенің астында жұмыс істейді). Бұл концепцияның іске асырылуы SubVirt зертханасының түбірлік жинағында (Microsoft және Мичиган университетінің зерттеушілері бірлесіп жасаған) және Blue Pill зиянды бағдарламалық пакетінде болған деп хабарланады. Дегенмен, мұндай мәлімдемелерді басқалар күмәндандырып, гипервизорға негізделген түбірлік жинақтың бар екенін анықтау мүмкін екенін айтады. 2009 жылы Microsoft және Солтүстік Каролина штаты университетінің зерттеушілері Hooksafe деп аталатын гипервизорлық қабатты түбірлік жинаққа қарсы қорғау құралын көрсетті, ол ядролық режимдегі түбірлік жинақтарға қарсы жалпы қорғаныспен қамтамасыз ете алады.