ВМ может быть построена практически на любой доступной платформе, с применением разных технологических решений. При этом тип виртуализации прямо зависит от выбранного аппаратного обеспечения и взаимодействия между гостевыми и хостовой операционной системой.
Зачем нужна виртуальная машина
Виртуальная машина представляет собой программу, с помощью которой можно запустить имитацию ПК, к примеру, на другой операционной системе, с другой конфигурацией аппаратных ресурсов и архитектурой. ВМ во многом схожа с ОС, запущенной из-под другой ОС.
Это может быть необходимо в самых разных ситуациях:
- Облачные сервисы. Используя сервер с мощным аппаратным обеспечением и программы виртуализации можно распределить доступ к ресурсам сервера и даже продавать их пользователям. Такой сервис может предоставить пользователю из любой точки страны или даже мира доступ к ВМ, которая будет иметь необходимую мощность и работать на подходящей для решения тех или иных задач операционной системе.
- ВМ для программирования. Некоторые языки программирования предполагают подготовку кода с последующей компиляцией в специальный файл, исполнить который можно только с использованием подходящей виртуальной машины.
- Безопасность. Запуск любого приложения через ВМ можно сравнить с запуском этого же ПО, но на совсем иной платформе, другом ПК. Даже при наличии каких-то проблем с безопасностью пользователь не будет подвергаться никакой угрозе. Если хакер получит доступ к компьютеру через имеющуюся уязвимость, он буквально будет заперт внутри этой виртуальной оболочки, потому не будет иметь даже теоретической возможности навредить данным и программам за ее пределами, то есть на реальном ПК, за которым сидит пользователь.
- Дистрибуция программного обеспечения. Чтобы запустить некоторое серверное ПО, требуется прописывать дополнительные настройки в разных конфигурационных файлах, а также делать новых пользователей, выдавать им определенный уровень доступа и т.д. Все это требует существенных временных затрат, которых можно избежать с помощью ВМ. В ВМ можно в любое время запустить программное обеспечение в подходящей среде и не тратить зря ресурсы.
Из истории
Сам термин «виртуальная машина» был впервые озвучен более 50-ти лет назад — в конце шестидесятых. В те времена он использовался в сфере работы с крупными ЭВМ, предназначенными для сложных вычислений. В тех условиях ВМ использовались для разделения аппаратных мощностей компьютера и выделения части этой мощности каждому пользователю для выполнения различных операций.
Сегодня задачи и цели использования ВМ изменились, однако принцип остался прежним.

Принцип работы
Если говорить о принципе работы ВМ, необходимо рассматривать ее с двух разных сторон: со стороны пользователя и изнутри. Если смотреть на ВМ глазами обычного пользователя, то ничего сложного в ней нет. Как это работает? Человек просто запускает на компьютере программу в отдельном окне, где и происходит вся работа.
Однако с практической точки зрения все намного сложнее, так как ВМ имеет свои собственные, хоть и эмулированные аппаратные ресурсы — жесткий диск, оперативную память и т.д. По сути эти виртуальные аппаратные мощности являются вполне реальными, так как они выделяются настоящим компьютером, который просто делится своей мощностью.
ОС компьютера не распознает виртуальности аппаратного обеспечения — она видит ресурсы, новое оборудование, которое и отображается в свойствах системы. Более того, точно так же эти ресурсы видят все установленные на компьютер приложения, которые могут взаимодействовать с ними, как с вполне реальными ресурсами. При этом ВМ сохраняет свою полную изолированность от настоящего ПК, несмотря на наличие доступа к оборудованию.
Если смотреть на ВМ глазами пользователя, она является виртуальной вычислительной средой, которая создается программными ресурсами. Сегодня на компьютере можно создать, запустить и работать с практически неограниченным числом ВМ. Единственное ограничение — аппаратная мощность настоящего ПК. Мощность созданных внутри компьютера виртуальных машин, работающих на основе его ресурсов, не может быть выше мощности этого компьютера.
Что касается инструмента для создания ВМ, то это простое приложение, которое можно установить под любую популярную ОС. Операционная система, внутри которой создается виртуальное пространство, называется хозяйской.
Внутри программного обеспечения по созданию и работе с ВМ обязательно имеется спецмодуль ВМ, отвечающий за управление виртуальными машинами. У обычного пользователя нет прямого доступа к нему. Он лишь может работать с графическим интерфейсом, возможностей которого достаточно для того, чтобы можно было своими руками и всего парой кликов создать и запустить ВМ.
При использовании ВМ пользователь волен установить на нее выбранную ОС, которая будет называться гостевой. Одна из важнейших характеристик ВМ — список поддерживаемых гостевых ОС. Самые мощные современные ВМ обеспечивают поддержку около десяти популярных версий ОС, включая не только Windows, но также Linux и MacOS.
При работе с ВМ у пользователя может возникнуть стойкое ощущение, что он работает с самым обыкновенным ПК, у которого есть собственное аппаратное обеспечение, включая процессор, память и т.д.
Однако в реальности ВМ не имеет доступа к ресурсам настоящего ПК. Работа с компьютером возлагается на модуль и драйвер ВМ.
Если рассмотреть архитектуру ВМ, то она будет выглядеть следующим образом:
- хостовая ОС и монитор ВМ разделяют права на управление аппаратными ресурсами ПК, ресурсы между программами распределяются ОС;
- монитор контролирует распределение ресурсов между запущенными ВМ, из-за чего у пользователя может возникнуть ощущение, что он работает с реальными аппаратными ресурсами;
- гостевые ОС управляют собственными приложениями, используя выделенные на них мощности ПК.
Типы и отличия VM
Существует три типа виртуальных машин, которые отличаются по «глубине» виртуализации.
Полная
Виртуализация может считаться полной в случае, если ВМ полностью копирует реальный ПК со всеми элементами и оборудованием. Обычно такие ВМ используются службами безопасности, которым необходимо в изолированных условиях использовать виртуальную ОС, к примеру, при работе с опасными приложениями и вредоносными программами. Естественно, в условиях виртуальной машины ни один вирус не может навредить реальному компьютеру и хозяйской ОС.
Также полная виртуализация используется тестировщиками, которые могут на одном компьютере запустить с десяток различных версий операционных систем, чтобы проверять на них работоспособность и отказоустойчивость приложения.
Однако полная виртуализация не является унифицированным решением для всех, к примеру, не подходит для облака.
Виртуализация с доступом к аппаратным ресурсам
Этот вид виртуальных машин дает ОС возможность обращаться к аппаратным ресурсам компьютера напрямую, без эмулирования.
Такая методика виртуализации используется многочисленными облачными решениями, к примеру, Xen, Virtualbox и другими. Продукты применяются для построения надежных облачных сервисов, позволяющих запускать виртуальные машины для клиентов. Их основное преимущество — максимальная скорость. Запросы гостевых ОС выполняются напрямую на аппаратных мощностях без затрат ресурсов на эмуляцию.
Уровень ОС
Самый распространенный облачный метод виртуализации, который часто используется для запуска программного обеспечения в облаке и для дистрибуции серверных программ. Методика не предполагает жесткой виртуализации. Ядро хостовой ОС выделяет несколько независимых пространств на уровне самой хостовой ОС и пускает в эти области другие приложения на выполнение. Каждая программа при этом получает собственную изолированную среду.
Эта методика применяется в контейнеризации приложений. Она хорошо известна в узком кругу благодаря таким решениям, как OpenVZ, jails и Docker, которые стали важной причиной широкого распространения виртуальных машин.
Уровень ОС в виртуализации дает возможность контролировать поведение гостевых контейнеров, определять политику доступа гостей к ресурсам и данным хостовой ОС.
Данный метод имеет наибольшую производительность, так как не предполагает мощной эмуляции и сильного контроля над доступом к железу компьютера. Все решается средствами хостовой операционной системы. При этом собирать программы в таких ВМ достаточно просто.
Как выбрать виртуальную машину?
Рассмотрев вопрос, какие есть виртуальные машины, закономерно возникает следующий: какую из них выбрать? Однако нельзя выделить какой-то один тип виртуализации и сказать, что такая виртуальная машина лучше других.
Все методики виртуализации используются для различных целей:
- Полная. Применяется безопасниками и тестировщиками.
- Частичная с доступом к железу. Подходит для администраторов и управленцев, которые планируют строить собственные облачные решения.
- Контейнеризация. Наиболее распространенный тип ВМ, который подходит всем пользователям, участвующим в разработке крупных систем.
Виртуализация уровня ОС так популярна, что сегодня умение работать в данной среде стало важным навыком программиста, который обязательно учитывается при найме на работу в крупные компании, где предстоит взаимодействовать с серверным ПО.
Оставить комментарий