Віртуальна машина — модель обчислювальної машини, створеної шляхом віртуалізації обчислювальних ресурсів: процесора, оперативної пам'яті, пристроїв зберігання та вводу і виводу інформації.
Віртуальна машина, на відміну від програми емуляції конкретного пристрою, забезпечує повну емуляцію фізичної машини чи середовища виконання (для програми).
Визначення
Раніше віртуальну машину визначали як «ефективну ізольовану копію реальної машини». Проте сучасні віртуальні машини можуть не мати прямого апаратного аналогу. Наприклад, в залежності від способу моделювання набору інструкцій віртуального центрального процесора, віртуальна машина може моделювати реальну або абстрактну обчислювальні машини. При моделюванні реальної обчислювальної машини набір інструкцій процесора віртуальної машини збігається з набором інструкцій обраного для моделювання центрального процесора.
Віртуальні машини поділяються на 2 головні категорії, в залежності від їх використання та відповідності до реальної апаратури:
- системні (апаратні) віртуальні машини, що забезпечують повноцінну емуляцію всієї апаратної платформи і відповідно підтримують виконання операційної системи.
- прикладні віртуальні машини, які розробленні для виконання лише застосунків (прикладних програм), наприклад, Віртуальна машина Java.
Системні віртуальні машини
Системні віртуальні машини дозволяють розподіл апаратних ресурсів фізичної машини між різними копіями віртуальних машин, на кожній з яких може бути встановлена своя операційна система. Пласт програмного забезпечення, що виконує віртуалізацію, називається гіпервізором. Гіпервізори поділяються на 2 типи: ті, що можуть виконуватися на [en]» апаратурі (1-й тип, або рідні (англ. native)), та ті, що виконуються в певній операційній системі (2-й тип, або хостові).
Основні переваги системних ВМ:
- різні операційні системи можуть співіснувати на одному комп'ютері, і при цьому знаходитися в строгій ізоляції одна від одної
- ВМ можуть забезпечувати розширений набір машинних інструкцій, адже при моделюванні абстрактної обчислювальної машини набір інструкцій процесора віртуальної машини може бути довільним.
- широкі можливості контролю за програмами
- легкість модифікацій та відновлення
Основний недолік:
- віртуальна машина не така ефективна як реальна, тому що доступ до апаратури в ній відбувається опосередковано.
Різні ВМ, на кожній з яких може бути встановлена своя власна ОС (які також називається гостьовими ОС), часто використовуються для серверного об'єднання: різні сервіси (що повинні виконуватися на окремих машинах, щоб запобігти взаємовтручанню) запускаються в різних ВМ, проте на одній фізичній машині, що дозволяє економити апаратні ресурси.
Прикладні віртуальні машини
Прикладні віртуальні машини виконують звичайні програми всередині ОС. Вони зазвичай створюються коли програма запускається та знищуються після її завершення. Їхня ціль — забезпечити платформно-незалежне програмне середовище, яке дозволяє абстрагуватися від конкретної апаратури та операційної системи, на якій виконується програма.
Прикладна ВМ забезпечує високорівневу абстракцію (наприклад, інтерпретатори високорівневих мов програмування — Lisp, Java, Python, Perl), в той час як системні ВМ зазвичай обмежуються низькорівневою абстракцією (машинним набором кодів). Сучасні прикладні ВМ, що реалізуються за допомогою інтерпретаторів, для підвищення швидкості виконання використовують компіляцію «на льоту» (англ. JIT — just-in-time).
Технології
Рідна емуляція
Цей підхід полягає в простому розподіленні тих апаратних ресурсів, на яких запущена ВМ. Кожна копія ВМ обмежена реальною апаратурою. Відповідно, ми зможемо використовувати лише ті ОС, які підтримують нашу апаратуру.
Нерідна емуляція
В цьому випадку ВМ емулює апаратуру, яка може відрізнятися від тієї, на якій вона запущена. Це розширює круг ОС, які ми можемо на неї встановити.
Віртуалізація рівня ОС
Ядро ОС дозволяє створювати багато ізольованих один від одного просторів користувачів. В цьому випадку крах програми в одному просторі ніяк не вплине на програми в інших просторах.
Приклади та підтримка
Першою (і досьогодні — однією з найкращих операційних систем, які підтримували концепцію віртуальної машини) є операційна система VM (в межах колишнього СРСР також відома як СВМ — Система Віртуальних Машин) фірми IBM.
На окремих апаратних платформах можлива апаратна підтримка віртуальних машин. Вперше технологія апаратної підтримки віртуальних машин була реалізована в машині серії (IBM-370) (початок 1970 рр.) як можливість завантаження мікропрограмного коду, який забезпечував додаткову функціональність центрального процесора IBM-370 для обслуговування віртуальних машин.
Однією з найпопулярніших насьгодні віртуальних машин є віртуальна машина Java.
Застосування
Віртуальні машини можуть використовуватися для:
- захисту інформації і обмеження можливостей програм;
- Дослідження продуктивності ПО або нової комп'ютерної архітектури;
- емуляції різних архітектур (наприклад, емулятор ігрової приставки);
- Оптимізації використання ресурсів мейнфреймів та інших потужних комп'ютерів;
- шкідливого коду для управління інфікованої системою: вірус PMBS, виявлений в 1993 році, а також руткит SubVirt, створений в 2006 рік у в Microsoft Research, створювали віртуальну систему, якої обмежувався користувач і все захисні програми (антивіруси та інші).
- Моделювання інформаційних систем з клієнт-серверною архітектурою на одній ЕОМ (емуляція комп'ютерної мережі за допомогою декількох віртуальних машин).
- Спрощення управління кластерами — віртуальні машини можуть просто мігрувати з однієї фізичної машини на іншу під час роботи.
- Тестування і налагодження системного програмного забезпечення;
Приклади віртуальних машин:
Див. також
Посилання
- Виртуализация vSphere, Hyper-V, XenServer и Red Hat (рос.) [Архівовано 25 серпня 2011 у WebCite]
- Виртуализация. VMware vSphere (рос.) [Архівовано 25 серпня 2011 у WebCite]
- Виртуальные машины дома и в бизнесе (рос.) [Архівовано 25 серпня 2011 у WebCite]
Ця стаття не містить . (квітень 2016) |
Ця стаття потребує додаткових для поліпшення її . (квітень 2016) |
Це незавершена стаття про операційні системи. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Virtualna mashina model obchislyuvalnoyi mashini stvorenoyi shlyahom virtualizaciyi obchislyuvalnih resursiv procesora operativnoyi pam yati pristroyiv zberigannya ta vvodu i vivodu informaciyi Fedora zapushena v VirtualBox Virtualna mashina na vidminu vid programi emulyaciyi konkretnogo pristroyu zabezpechuye povnu emulyaciyu fizichnoyi mashini chi seredovisha vikonannya dlya programi ViznachennyaRanishe virtualnu mashinu viznachali yak efektivnu izolovanu kopiyu realnoyi mashini Prote suchasni virtualni mashini mozhut ne mati pryamogo aparatnogo analogu Napriklad v zalezhnosti vid sposobu modelyuvannya naboru instrukcij virtualnogo centralnogo procesora virtualna mashina mozhe modelyuvati realnu abo abstraktnu obchislyuvalni mashini Pri modelyuvanni realnoyi obchislyuvalnoyi mashini nabir instrukcij procesora virtualnoyi mashini zbigayetsya z naborom instrukcij obranogo dlya modelyuvannya centralnogo procesora Virtualni mashini podilyayutsya na 2 golovni kategoriyi v zalezhnosti vid yih vikoristannya ta vidpovidnosti do realnoyi aparaturi sistemni aparatni virtualni mashini sho zabezpechuyut povnocinnu emulyaciyu vsiyeyi aparatnoyi platformi i vidpovidno pidtrimuyut vikonannya operacijnoyi sistemi prikladni virtualni mashini yaki rozroblenni dlya vikonannya lishe zastosunkiv prikladnih program napriklad Virtualna mashina Java Sistemni virtualni mashini Sistemni virtualni mashini dozvolyayut rozpodil aparatnih resursiv fizichnoyi mashini mizh riznimi kopiyami virtualnih mashin na kozhnij z yakih mozhe buti vstanovlena svoya operacijna sistema Plast programnogo zabezpechennya sho vikonuye virtualizaciyu nazivayetsya gipervizorom Gipervizori podilyayutsya na 2 tipi ti sho mozhut vikonuvatisya na en aparaturi 1 j tip abo ridni angl native ta ti sho vikonuyutsya v pevnij operacijnij sistemi 2 j tip abo hostovi Osnovni perevagi sistemnih VM rizni operacijni sistemi mozhut spivisnuvati na odnomu komp yuteri i pri comu znahoditisya v strogij izolyaciyi odna vid odnoyi VM mozhut zabezpechuvati rozshirenij nabir mashinnih instrukcij adzhe pri modelyuvanni abstraktnoyi obchislyuvalnoyi mashini nabir instrukcij procesora virtualnoyi mashini mozhe buti dovilnim shiroki mozhlivosti kontrolyu za programami legkist modifikacij ta vidnovlennya Osnovnij nedolik virtualna mashina ne taka efektivna yak realna tomu sho dostup do aparaturi v nij vidbuvayetsya oposeredkovano Rizni VM na kozhnij z yakih mozhe buti vstanovlena svoya vlasna OS yaki takozh nazivayetsya gostovimi OS chasto vikoristovuyutsya dlya servernogo ob yednannya rizni servisi sho povinni vikonuvatisya na okremih mashinah shob zapobigti vzayemovtruchannyu zapuskayutsya v riznih VM prote na odnij fizichnij mashini sho dozvolyaye ekonomiti aparatni resursi Prikladni virtualni mashini Prikladni virtualni mashini vikonuyut zvichajni programi vseredini OS Voni zazvichaj stvoryuyutsya koli programa zapuskayetsya ta znishuyutsya pislya yiyi zavershennya Yihnya cil zabezpechiti platformno nezalezhne programne seredovishe yake dozvolyaye abstraguvatisya vid konkretnoyi aparaturi ta operacijnoyi sistemi na yakij vikonuyetsya programa Prikladna VM zabezpechuye visokorivnevu abstrakciyu napriklad interpretatori visokorivnevih mov programuvannya Lisp Java Python Perl v toj chas yak sistemni VM zazvichaj obmezhuyutsya nizkorivnevoyu abstrakciyeyu mashinnim naborom kodiv Suchasni prikladni VM sho realizuyutsya za dopomogoyu interpretatoriv dlya pidvishennya shvidkosti vikonannya vikoristovuyut kompilyaciyu na lotu angl JIT just in time TehnologiyiRidna emulyaciya Cej pidhid polyagaye v prostomu rozpodilenni tih aparatnih resursiv na yakih zapushena VM Kozhna kopiya VM obmezhena realnoyu aparaturoyu Vidpovidno mi zmozhemo vikoristovuvati lishe ti OS yaki pidtrimuyut nashu aparaturu Neridna emulyaciya V comu vipadku VM emulyuye aparaturu yaka mozhe vidriznyatisya vid tiyeyi na yakij vona zapushena Ce rozshiryuye krug OS yaki mi mozhemo na neyi vstanoviti Virtualizaciya rivnya OS Yadro OS dozvolyaye stvoryuvati bagato izolovanih odin vid odnogo prostoriv koristuvachiv V comu vipadku krah programi v odnomu prostori niyak ne vpline na programi v inshih prostorah Prikladi ta pidtrimkaPershoyu i dosogodni odniyeyu z najkrashih operacijnih sistem yaki pidtrimuvali koncepciyu virtualnoyi mashini ye operacijna sistema VM v mezhah kolishnogo SRSR takozh vidoma yak SVM Sistema Virtualnih Mashin firmi IBM Na okremih aparatnih platformah mozhliva aparatna pidtrimka virtualnih mashin Vpershe tehnologiya aparatnoyi pidtrimki virtualnih mashin bula realizovana v mashini seriyi IBM 370 pochatok 1970 rr yak mozhlivist zavantazhennya mikroprogramnogo kodu yakij zabezpechuvav dodatkovu funkcionalnist centralnogo procesora IBM 370 dlya obslugovuvannya virtualnih mashin Odniyeyu z najpopulyarnishih nasgodni virtualnih mashin ye virtualna mashina Java ZastosuvannyaVirtualni mashini mozhut vikoristovuvatisya dlya zahistu informaciyi i obmezhennya mozhlivostej program Doslidzhennya produktivnosti PO abo novoyi komp yuternoyi arhitekturi emulyaciyi riznih arhitektur napriklad emulyator igrovoyi pristavki Optimizaciyi vikoristannya resursiv mejnfrejmiv ta inshih potuzhnih komp yuteriv shkidlivogo kodu dlya upravlinnya infikovanoyi sistemoyu virus PMBS viyavlenij v 1993 roci a takozh rutkit SubVirt stvorenij v 2006 rik u v Microsoft Research stvoryuvali virtualnu sistemu yakoyi obmezhuvavsya koristuvach i vse zahisni programi antivirusi ta inshi Modelyuvannya informacijnih sistem z kliyent servernoyu arhitekturoyu na odnij EOM emulyaciya komp yuternoyi merezhi za dopomogoyu dekilkoh virtualnih mashin Sproshennya upravlinnya klasterami virtualni mashini mozhut prosto migruvati z odniyeyi fizichnoyi mashini na inshu pid chas roboti Testuvannya i nalagodzhennya sistemnogo programnogo zabezpechennya Prikladi virtualnih mashin Forth Java Virtual Machine Kaffe vilna virtualna mashina Java Dalvik chastina mobilnoyi platformi Android IBM VM Sistema Virtualnih Mashin SVM VirtualBox VMware XenDiv takozhKrosplatformna virtualizaciya Vagrant Izolyaciya brauzeraPosilannyaVirtualizaciya vSphere Hyper V XenServer i Red Hat ros Arhivovano 25 serpnya 2011 u WebCite Virtualizaciya VMware vSphere ros Arhivovano 25 serpnya 2011 u WebCite Virtualnye mashiny doma i v biznese ros Arhivovano 25 serpnya 2011 u WebCite Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno kviten 2016 Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno kviten 2016 Ce nezavershena stattya pro operacijni sistemi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi