Віртуальная машына

Віртуальная машына (ВМ, ад англ.: virtual machine) —

  • праграмная і/або апаратная сістэма, якая эмулюе апаратнае забеспячэнне нейкай платформы (target — мэтавая, або гасцявая платформа) і выконвае праграмы для target-платформы на host-платформе (host — хост-платформа, платформа-гаспадар)
  • ці якая віртуалізуе нейкую платформу і стварае на ёй асяроддзі, якія ізалююць адну ад адной праграмы і нават аперацыйныя сістэмы (гл.: пясочніца);
  • таксама спецыфікацыя нейкага вылічальнага асяроддзя (напрыклад: «віртуальная машына мовы праграмавання Сі»).
Fedora запушчана ў VirtualBox на Ubuntu

Віртуальная машына выконвае нейкі машынна-незалежны код (напрыклад, байт-код, шыты код, p-код) або машынны код рэальнага працэсара. Апроч працэсара, ВМ можа эмуляваць работу як асобных кампанентаў апаратнага забеспячэння, так і рэальнага камп’ютара цалкам (уключаючы BIOS, аператыўную памяць, цвёрды дыск і іншыя перыферыйныя прылады). У апошнім выпадку ў ВМ, як і на рэальны камп’ютар, можна ўсталяваць аперацыйныя сістэмы (напрыклад, Windows можна запускаць у віртуальнай машыне пад Linux ці наадварот). На адным камп’ютары можа функцыянаваць некалькі віртуальных машын (гэта можа выкарыстоўвацца для імітацыі некалькіх сервераў на адным рэальным серверы з мэтай аптымізацыі ўжывання рэсурсаў сервера).

Тэорыя

Канцэпцыя віртуальнай машыны як сукупнасці рэсурсаў, якія эмулююць паводзіны рэальнай машыны, з’явілася ў Кембрыджы ў канцы 1960-х гадоў як пашырэнне канцэпцыі віртуальнай памяці манчэстэрскай вылічальнай машыны Atlas (англ.).[1] У цэлым вылічальны працэс вызначаецца, у межах гэтай канцэпцыі, зместам той рабочай прасторы памяці, да якой ён мае доступ. Пры ўмове, што пэўная сітуацыя ў гэтай рабочай прасторы адпавядае чаканай, працэс не мае аніякіх сродкаў для вызначэння таго, ці з’яўляецца прадстаўлены рэсурс сапраўды фізічным рэсурсам гэтага тыпу, або ён імітаваны дзеяннямі іншых рэсурсаў, якія прыводзяць да аналагічных змен змесціва рабочай прасторы працэсу.

Напрыклад, працэс не можа вызначыць, ці манапольна ён ужывае працэсар або ў рэжыме мультыпраграмавання разам з іншымі працэсамі. У віртуальнай машыне аніводны працэс не можа манапольна ўжываць адвольны рэсурс, і ўсе сістэмныя рэсурсы лічацца рэсурсамі патэнцыйна сумеснага выкарыстання. Акрамя таго, ужыванне віртуальных машын забяспечвае раздзяленне паміж некалькімі карыстальнікамі, якія працуюць у адной вылічальнай сістэме, забяспечваючы пэўны ўзровень абароны даных.

Ідэя віртуальнай машыны палягае ў падмурку цэлага шэрагу аперацыйных сістэм, у прыватнасці, IBM VM/CMS (і яе савецкага клону СВМ) і DEC VAX/VMS.

Ужыванне

Віртуальныя машыны могуць выкарыстоўвацца для наступных мэт:

  • Абарона інфармацыі і абмежаванне магчымасцей праграм (гл.: пясочніца);
  • Даследаванне прадукцыйнасці ПЗ або новай камп’ютарнай архітэктуры;
  • Эмуляцыя разнастайных архітэктур (напрыклад, эмулятар гульнявой прыстаўкі);
  • Выкарыстанне рэсурсаў мэйнфрэймаў і іншых магутных камп’ютараў (гл., напрыклад: IBM eServer);
  • Шкодны код для кіравання інфіцыраванай сістэмай: вірус PMBS, выяўлены ў 1993 годзе, а таксама руткіт SubVirt, створаны ў 2006 годзе ў Microsoft Research, стваралі віртуальную сістэму, якой абмяжоўваўся карыстальнік і ўсе ахоўныя праграмы (антывірусы і іншыя).[2]
  • Мадэляванне інфармацыйных сістэм з кліент-сервернай архітэктурай на адной ЭВМ (эмуляцыя камп’ютарнай сеткі з дапамогай некалькіх віртуальных машын).
  • Спрашчэнне кіравання кластарамі — віртуальныя машыны могуць наўпрост міграваць з адной фізічнай машыны на другую падчас работы.
  • Тэсціраванне і адладка сістэмнага праграмнага забеспячэння;

Вядомыя віртуальныя машыны

Некаторыя вядомыя віртуальныя машыны:

Асяроддзі моў праграмавання
  • ActionScript Virtual Machine
  • Common Language Runtime
  • Форт
  • Java Virtual Machine
  • UCSD p-System
Аперацыйныя сістэмы і гіпервізары
  • Сістэма віртуальных машын
  • ICore Virtual Accounts
  • Kernel-based Virtual Machine
  • Hyper-V
  • OpenVZ
  • Parallels Virtuozzo Containers
  • User-mode Linux
  • Virtual Iron
  • VM/CMS
  • VMware ESX
  • Xen
Аўтаномныя эмулятары камп’ютараў
  • bochs
  • DOSBox
  • Virtual PC
  • Parallels Workstation
  • QEMU
  • VirtualBox
  • VMware Fusion
  • VMware Workstation

Гл. таксама

  • Параўнанне віртуальных машын

Заўвагі

Літаратура

Спасылкі