Что такое виртуальная машина и как она работает

Автор: Грант Виреллан
Опубликовано:
Время чтения: 3 мин
Просмотров: 3
Научно-популярный материал Оригинал статьи ↗
Что такое виртуальная машина и как она работает
Эмуляторы — одна из разновидностей виртуальных машин — часто используются для запуска ретро-видеоигр на современных ПК. Источник: issaro prakalung / Shutterstock
Что же такое виртуальная машина? Виртуальная машина (ВМ) — это программная вычислительная среда, которая имитирует аппаратное обеспечение для операционной системы и приложений. Проще говоря, это компьютер внутри другого компьютера.

Итак, что же такое виртуальная машина? Виртуальная машина (ВМ) — это программная вычислительная среда, эмулирующая аппаратные компоненты для работы операционной системы и приложений. Представьте себе компьютер внутри другого компьютера.

Физический компьютер, предоставляющий свои ресурсы, называют хостом (или хост-машиной). На каждой ВМ работает гостевая операционная система, что позволяет, например, запускать Windows и Linux одновременно на одном ПК.

Как устроена виртуализация

В основе виртуализации лежит гипервизор — программное обеспечение, которое создает виртуальные машины, управляет ими и контролирует доступ к физическому оборудованию. Несколько ВМ могут делить между собой мощность процессора, оперативную память, накопители и сетевые интерфейсы.

Гипервизор 1-го типа (автономный, или «bare-metal») работает непосредственно на физическом оборудовании. Гипервизор 2-го типа (хостовый) запускается поверх основной операционной системы. Примерами первого типа служат VMware ESXi и Microsoft Hyper-V, а второго — Oracle VirtualBox. В свою очередь, технология KVM (Kernel-based Virtual Machine) превращает само ядро Linux в полноценный гипервизор.

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

Настройка и сохранение ВМ

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

Вы также можете развернуть готовый образ виртуальной машины, уже содержащий содержимое диска. Клонирование позволяет создать копию ВМ из существующей конфигурации и дисков. А моментальный снимок (снапшот) фиксирует состояние диска в конкретный момент времени и может сохранять состояние оперативной памяти и устройств. Не стоит путать снапшот с полноценной резервной копией: его работа часто зависит от исходных файлов диска.

Зачем нужна виртуальная машина?

Виртуальные машины создают изолированную среду («песочницу») для тестирования программ и запуска устаревших приложений, требующих другой ОС. Бизнес применяет консолидацию серверов, чтобы перенести множество задач на меньшее число физических серверов, а облачные провайдеры сдают мощности ВМ в аренду. Изоляция защищает процессы одной ВМ от влияния соседей. Тем не менее безопасность виртуальных машин требует пристального внимания: уязвимости или ошибки в настройках могут нарушить эти границы. Регулярно обновляйте гипервизор и гостевые системы, ограничивайте права доступа и помните, что ни одна «песочница» не гарантирует абсолютной защиты от побега.

Виртуальные машины против контейнеров

Главное различие между виртуальными машинами и контейнерами кроется в ядре операционной системы. Системная виртуальная машина запускает собственное гостевое ядро. Контейнеры же обычно используют ядро хост-системы совместно, поэтому контейнеры Docker требуют значительно меньше ресурсов, чем полноценные ВМ. При этом на настольных ПК средой для запуска таких контейнеров нередко сама выступает виртуальная машина.

У термина «ВМ» есть и другое значение. Процессная (или прикладная) виртуальная машина, например Java Virtual Machine (JVM), предоставляет среду выполнения для отдельных программ, а не эмулирует полноценную операционную систему.

Этот материал подготовлен с использованием технологий ИИ, после чего прошел фактчекинг и редактуру научными редакторами HowStuffWorks.

Статья прочитана Листайте вниз к следующей статье ↓