Как работают виртуальные машины – принцип работы

Как мы и обещали, сегодня мы продолжим разговор на интересную тему виртуализации. Виртуализация – это одна из наиболее сложных и полезных технологий. Давайте разберемся в том, как работают виртуальные машины, и узнаем принцип работы виртуальных машин.
Виртуальная машина, которая используется пользователем, по своей сути создает специальное (особое) окружение для операционной системы и программного обеспечения, запускаемого в ней. Это особое окружение практически не чем не отличается от самого настоящего компьютера. Как и компьютер, виртуальное окружение состоит из виртуального жесткого диска, процессора, видеокарты, контроллеров устройств, оперативной памяти и тп. При этом виртуальная машина может одновременно с ПК взаимодействовать с реальными устройствами, например, такими как DVD-привод, USB-флэшка, веб-камера…

Операционная система, в которой включается виртуальная машина (окружение) принято называть – основной или “хостом”; а система, установленная на виртуальной машине именуется как гостевая ОС.

Виртуальные компоненты (процессор, оперативная память и другие устройств), при создании окружения, создает так называемый монитор виртуальной машины (Virtual Machine Monitor — VMM), также данный монитор еще называют гипервизором. Гипервизор является ключевым компонентом для абсолютно всех виртуальных сред, с помощью которых выполняется изоляция основной операционной системы (хоста) от гостевой. Кроме того, именно гипервизор отвечает за получение и разделение ресурсов компьютера между запущенными системами. Если говорить иначе, то именно от работы Virtual Machine Monitor полностью зависит правильная и стабильная работа гостевой ОС. При всем при этом, гостевая операционная система в большинстве случаев вообще не подозревает о существовании гипервизора, и думает, что она работает на обычном железе. Собственно говоря, этот “обман” являете основой технологии виртуализации (имеется ввиду ее домашнее использование).

Как работают виртуальные машины

Бывают такие ситуации, когда система сообщает виртуальной машине о нереальности ее окружения и дает возможность гостевой ОС напрямую взаимодействовать с VMM (гипервизором), в таком случае уже не стоит называть ее виртуализацией – это уже другая технология, называемая паравиртуализацией. Для использования данной технологии требуется внесение некоторых изменений в ядро операционной системы. Именно по этой причине не паравиртуализация применяется исключительно в ОС с открытым исходным кодом, к которым как нам всем давно известно не относятся системы от Microsoft и Apple.

Паравиртуализация

Поскольку технология виртуализации относится к достаточно сложным, одной из главных задач разработчиков, создающих решения для виртуализации является контроль исполнения кода гостевой операционной системы. Современные ОС устроены так, что не могут существовать без проблем в рамках одного компьютера, и если попробовать исполнять их код в таком виде как он есть, то такой эксперимент не приведет ни к чему хорошему. Вместо привычной и комфортной рабочей среды, пользователь получит постоянно зависающую, постоянно перезагружающуюся рабочую среду, или такую рабочую среду, в которой будет только “синий экран смети” и больше ничего. Чтобы пользователю не сталкиваться со всеми перечисленными выше проблемами, решения для виртуализации не позволяют гостевой ОС получить прямой доступ к управлению аппаратными ресурсами компьютера и получению данных о реальном состоянии системы. Другими словами, все строится на обмане, гостевой ОС подсовывают те значения регистров состояния процессора, памяти и других компонентов, которые она должна видеть, чтобы работать стабильно и правильно.

Есть два способа, с помощью которых обманывают гостевую ОС: бинарная трансляция и поддержка аппаратной виртуализации. Редко, но все же, к этим способам еще причисляют и паравиртуализацию, но как мы уже писали выше, технология паравертуализации подразумевает под собой, что гостевая ОС знает о существовании гипервизора и умеет с ним взаимодействовать. По этой причине паравертуализация очень слабо относится к виртуальным машинам и о ней говорить мы не будем.

Надеемся хотя бы в общих чертах, но нашим читателям стало понятно, как работают виртуальные машины и на каком принципе основывается их работа.

Поделитесь с друзьями:

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *