hostprofi.ru
Подобрать хостинг
Термин·буква Г

Гостевая ОС

краткое определение

Операционная система, установленная внутри виртуальной машины и работающая под управлением гипервизора. Видит виртуализированное «железо» и изолирована от хостовой ОС и других гостевых систем.

Гостевая ОС (guest OS) — операционная система, запущенная внутри виртуальной машины (VM). Она взаимодействует не с реальным железом, а с виртуализированными устройствами, которые предоставляет гипервизор: эмулированный CPU, виртуальная память, vDisk, виртуальная сетевая карта. Гостевая ОС не знает о том, что работает в виртуальной среде (при полной аппаратной виртуализации) или знает, но использует специальный API гипервизора (паравиртуализация).

Как работает

При аппаратной виртуализации (Intel VT-x, AMD-V) гостевая ОС выполняет инструкции в ring 0, но в специальном непривилегированном режиме (VMX non-root mode). Попытка выполнить инструкцию, требующую реального аппаратного доступа (CPUID, RDTSC, порты ввода-вывода), вызывает VM Exit — гипервизор перехватывает управление, обрабатывает инструкцию и возвращает управление гостевой ОС. Современные CPU (Intel Ivy Bridge+, AMD Zen+) минимизируют накладные расходы VM Exit до 1–3 мкс.

Для ввода-вывода используются паравиртуализированные драйверы даже при полной виртуализации CPU. В KVM/QEMU — драйверы virtio: virtio-blk или virtio-scsi для дисков, virtio-net для сети. Они значительно быстрее эмулированных устройств (e1000, IDE): virtio-net даёт 10+ Гбит/с против 1 Гбит/с у эмулированного e1000 на том же хосте.

Установка guest additions (VMware Tools, VirtualBox Guest Additions, Qemu Guest Agent) позволяет гипервизору взаимодействовать с гостевой ОС: получать IP-адреса интерфейсов, запускать команды внутри гостя, согласовывать системное время, делать корректные снапшоты (quiesced snapshots с уведомлением файловой системы).

История

Концепция гостевой ОС появилась с первыми виртуальными машинами IBM CP-40/CMS в 1967 году. В CP (Control Program) гостевые ОС назывались «виртуальными машинами». На x86 гостевые ОС в VMware появились в 1999–2000 годах. Паравиртуализированные драйверы virtio для KVM разработаны Rusty Russell в 2007–2008 годах и стали частью ядра Linux в 2.6.24 (2008).

Гостевая ОС vs хостовая ОС

Хостовая ОС — операционная система на физическом сервере, под управлением которой работает гипервизор Type 2 (VirtualBox, VMware Workstation). При Type 1 (bare-metal) гипервизоре хостовой ОС в классическом смысле нет — гипервизор сам является «ОС». Ключевое различие: хостовая ОС управляет реальным железом, гостевая — виртуальным.

На что обращать внимание

Выбор гостевой ОС влияет на поддержку паравиртуализированных драйверов: современные Linux (ядро 2.6.24+) имеют virtio из коробки. Windows требует установки Virtio-win драйверов (проект Fedora, .iso с драйверами WHQL-сертификаты) для максимальной производительности в KVM. FreeBSD поддерживает virtio с версии 8.2. Старые ОС (Windows XP, CentOS 5) работают только с эмулированными устройствами — медленнее.

Типичные ошибки при работе с гостевыми ОС

Первая ошибка — установка гостевой ОС без гостевых агентов: qemu-guest-agent необходим для корректных снапшотов (freeze/thaw файловой системы), передачи данных между хостом и гостем, мониторинга состояния ВМ. Установите через apt install qemu-guest-agent в гостевой системе. Вторая ошибка — использование эмулированных дисков (IDE/SATA) вместо virtio: это снижает I/O до 30–50% от максимума. Третья — неправильно настроенный часовой пояс: гостевая ОС должна использовать UTC-время через hwclock, иначе возможно расхождение времени после ребута.

Другие термины