Виртуальная машина: что это, виды и как создать первую VM

Виртуальная машина: что это, виды и как создать первую VM Полезное

Виртуальная машина (VM, ВМ) — это программно созданный компьютер со своим виртуальным процессором, памятью, диском и сетью, внутри которого работает отдельная операционная система. Физический компьютер, на котором она запущена, называют хостом, а систему внутри VM — гостевой ОС. Ресурсы между хостом и гостями распределяет гипервизор.

Типичные задачи VM — учебный стенд с Linux, тестирование на разных ОС, облачные серверы (VPS — это VM у провайдера) и запуск старого ПО. Ниже — виды VM и гипервизоров, выбор программы в 2026 году, первая VM по шагам и отличие от контейнера.

Мини-словарь: четыре термина, которые путают

Термин Что это Пример
Виртуализация Общий подход: представить ресурс (компьютер, диск, сеть) программно Облачный сервер, программная сеть
Виртуальная машина Конкретный объект: изолированный виртуальный компьютер с гостевой ОС Ubuntu, запущенная в VirtualBox на Windows
Гипервизор Программа или слой, который создает VM и делит между ними ресурсы KVM, Hyper-V, VMware ESXi
Эмуляция Программное исполнение чужой архитектуры процессора, без прямого выполнения на CPU хоста QEMU запускает ARM-систему на x86-ноутбуке

Граница: при аппаратной виртуализации (Intel VT-x, AMD-V) инструкции гостя в основном выполняются прямо на процессоре хоста, и скорость близка к «родной»; при эмуляции их приходится переводить, это заметно медленнее. Поэтому «VM всегда медленная» — неверный абсолют: сильнее всего обычно проседают диск и графика.

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

Системные и процессные VM

Системная VM имитирует целый компьютер: в нее ставят полноценную ОС со своим ядром. Именно о них эта статья.

Процессная VM запускает одну программу и завершается вместе с ней. Пример — JVM: исполняет байт-код Java одинаково на разных ОС, но отдельной ОС внутри нет. Системная VM изолирует ОС, процессная дает переносимость кода.

Гипервизоры типа 1 и типа 2

Признак Тип 1 (bare-metal) Тип 2 (hosted)
Где работает Прямо на железе, под гостевыми ОС Как приложение поверх обычной ОС
Примеры VMware ESXi, Xen, Hyper-V, Proxmox VE (на базе KVM) VirtualBox, VMware Workstation, Parallels Desktop
Где встречается Серверы, дата-центры, облака Ноутбук разработчика, учебный стенд
Накладные расходы Ниже Выше: между VM и железом есть хостовая ОС

Деление на два типа — упрощение. KVM встроен в ядро Linux: ОС остается обычной, но ядро становится гипервизором, поэтому KVM чаще относят к типу 1. Hyper-V после включения запускается под Windows, а сама Windows работает как привилегированный раздел рядом с гостями.

Программы для виртуальных машин в 2026 году

Выбор зависит от ОС хоста и задачи, а не от рейтинга.

Задача Что взять Когда иначе
Учебный стенд на Windows, Linux или macOS VirtualBox (бесплатный, open source) Нужна лучшая производительность графики — VMware Workstation Pro
Windows 10/11 Pro, Enterprise или Education Hyper-V (встроен в систему) Windows Home — Hyper-V недоступен, берите VirtualBox или VMware
Linux-хост, серверы, домашняя лаборатория KVM + QEMU, управление через virt-manager или libvirt Нужен веб-интерфейс и кластер — Proxmox VE
Mac на Apple Silicon VMware Fusion, Parallels Desktop, UTM Гостевая ОС должна быть под ARM; x86-систему придется эмулировать, это медленно

Коротко о каждой:

  • VirtualBox от Oracle — кроссплатформенный гипервизор типа 2, ветка 7.x. Базовый пакет под GPL; Extension Pack лицензируется отдельно.
  • VMware Workstation Pro (для Windows и Linux) и Fusion Pro (для macOS) после покупки VMware компанией Broadcom стали бесплатными для личного использования в 2024 году.
  • Hyper-V — гипервизор Microsoft, включается как компонент Windows. При включенном Hyper-V или WSL 2 VirtualBox и VMware работают через Windows Hypervisor Platform и могут замедляться.
  • KVM/QEMU — связка в Linux: KVM дает аппаратное ускорение, QEMU эмулирует устройства (диск, сеть, видео). Без KVM QEMU работает в режиме чистой эмуляции.

Как создать первую виртуальную машину

Итог раздела — VM с Linux, снимком чистой установки и доступом по SSH. Пример на VirtualBox (есть под все три ОС хоста); в интерфейсе шаги те же, команды VBoxManage приведены для точного повтора.

Шаг 1. Проверить аппаратную виртуализацию

На Linux-хосте:

grep -Ec '(vmx|svm)' /proc/cpuinfo

Число больше нуля — процессор поддерживает Intel VT-x (vmx) или AMD-V (svm); ноль — виртуализация выключена в BIOS/UEFI или ее нет. На Windows см. «Диспетчер задач» -> «Производительность» -> ЦП, строка «Виртуализация».

Шаг 2. Создать и настроить VM

Минимальный полный скрипт: создает машину, диск на 25 ГБ, подключает ISO-образ Ubuntu Server и запускает установку.

VM=ubuntu-lab
ISO="$HOME/iso/ubuntu-24.04-live-server-amd64.iso"

VBoxManage createvm --name "$VM" --ostype Ubuntu_64 --register
VBoxManage modifyvm "$VM" --memory 4096 --cpus 2 --nic1 nat
VBoxManage createmedium disk --filename "$HOME/VMs/$VM.vdi" --size 25600
VBoxManage storagectl "$VM" --name SATA --add sata --controller IntelAhci
VBoxManage storageattach "$VM" --storagectl SATA --port 0 --device 0 --type hdd --medium "$HOME/VMs/$VM.vdi"
VBoxManage storageattach "$VM" --storagectl SATA --port 1 --device 0 --type dvddrive --medium "$ISO"
VBoxManage startvm "$VM"

После startvm откроется окно VM с установщиком Ubuntu. Что делают ключевые строки:

  • --memory 4096 --cpus 2 — 4 ГБ памяти и 2 ядра. Оставляйте хосту не меньше половины ресурсов, иначе тормозить будут обе системы.
  • --nic1 nat — сеть через NAT: гость выходит в интернет, но снаружи к нему напрямую не подключиться. Это безопасный режим по умолчанию.
  • --size 25600 — диск в мегабайтах, динамический: файл растет по мере заполнения.

Шаг 3. Снимок и доступ по SSH

После установки ОС выключите VM и сделайте снимок для отката:

VBoxManage snapshot ubuntu-lab take clean-install
VBoxManage modifyvm ubuntu-lab --natpf1 "ssh,tcp,127.0.0.1,2222,,22"
VBoxManage startvm ubuntu-lab --type headless
ssh -p 2222 user@127.0.0.1

Проброс слушает только 127.0.0.1: порт 2222 доступен лишь с самого хоста, не из локальной сети. --type headless запускает VM без окна. Результат — приглашение командной строки гостевой Ubuntu.

Если не получилось

Симптом Вероятная причина Что сделать
«VT-x is not available» / «AMD-V is disabled» Виртуализация выключена в BIOS/UEFI Включить Intel VT-x / SVM Mode в настройках прошивки
VM очень медленная, в статусе значок черепахи VirtualBox работает поверх Hyper-V Отключить Hyper-V либо принять замедление
Гость не видит интернет Выбрана «Внутренняя сеть» или host-only Вернуть NAT на первом адаптере
ssh: connection refused В госте не установлен OpenSSH или неверный проброс sudo apt install openssh-server в госте, проверить правило --natpf1
Снова запускается установщик ISO остался подключен Извлечь образ в настройках носителей

Безопасность: где изоляция VM заканчивается

VM изолирует гостя от хоста лучше обычной программы, но не абсолютно: уязвимости «побега из VM» находят и закрывают, поэтому гипервизор обновляют так же, как ОС. Для подозрительных файлов минимальный набор мер:

  • отключить общие папки, общий буфер обмена и drag-and-drop;
  • использовать сеть «Виртуальный адаптер хоста» или отключить сеть вовсе, а не «Сетевой мост»: мост ставит VM в вашу локальную сеть наравне с другими устройствами;
  • делать снимок до эксперимента и откатываться после;
  • не входить внутри такой VM в личные аккаунты.

И отдельно: снимок не равен резервной копии. Снимок хранится рядом с диском VM и зависит от него; при потере файла диска пропадут оба. Для бэкапа экспортируйте машину (VBoxManage export ubuntu-lab -o ubuntu-lab.ova) и храните копию на другом носителе.

Виртуальная машина или контейнер

Контейнер (например, Docker) тоже изолирует приложение, но работает иначе: у всех контейнеров одно ядро хостовой ОС, а у каждой VM — свое.

Признак Виртуальная машина Контейнер
Ядро ОС Свое у каждой VM Общее ядро хоста
Можно запустить другую ОС Да: Windows на Linux-хосте и наоборот Только с тем же типом ядра (Linux-контейнеры на Linux)
Старт Десятки секунд и дольше: загружается ОС Обычно секунды
Размер Гигабайты Часто десятки-сотни мегабайт
Изоляция Сильнее: граница на уровне гипервизора Слабее: граница на уровне ядра

Таблица упрощает: Docker Desktop на Windows и macOS запускает Linux-контейнеры внутри служебной Linux-VM, а в облаке контейнеры обычно работают внутри VM.

Правило выбора: нужна другая ОС, свое ядро или сильная изоляция — VM; быстро упаковать и развернуть Linux-приложение — контейнер.

Выводы

  • Виртуальная машина — изолированный программный компьютер со своей ОС; гипервизор делит между VM ресурсы хоста.
  • Системные VM (VirtualBox, KVM) запускают целую ОС, процессные (JVM) — одну программу.
  • Тип 1 работает на железе и нужен серверам, тип 2 — приложение поверх ОС для рабочего ноутбука; KVM и Hyper-V в эту схему укладываются с оговорками.
  • Первая VM — это ISO, 2 ядра, 4 ГБ памяти, сеть NAT и снимок после установки; снимок не заменяет бэкап.
  • Контейнер делит ядро с хостом и стартует быстрее, VM дает свою ОС и более сильную изоляцию.

Где применяется / связь с практикой

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

Виртуальные машины — ежедневный инструмент Linux-администратора: на них собирают стенды и тестируют обновления до выката на боевые серверы. Системно эту работу разбирают на курсе Administrator Linux. Professional. Разобрать отдельные темы с преподавателями вживую можно на бесплатных открытых уроках.

FAQ

Можно ли запустить VM внутри другой VM?
Да, это вложенная виртуализация. Ее поддерживают KVM, Hyper-V и VMware, но она должна быть включена для внешней VM, а производительность ниже.

Сколько VM можно запустить на одном компьютере?
Ограничение задают память и диск хоста. Суммарно выделять памяти больше физической обычно не стоит — хост уйдет в подкачку.

Нужна ли лицензия Windows для гостевой ОС?
Да, Windows в VM лицензируется так же, как на физическом компьютере.

OTUS Журнал
Скидка 5% 12-19 октября на курсы (popup)
Бесплатные открытые уроки (поп-ап)