Розділи 6
Віртуалізація
Віртуалізація — це програмний метод запуску віртуальних машин (компʼютерів) за допомогою програми-гіпервізора.
6.1. Віртуалізація та емуляція
Емуляція — це процес, за якого компʼютер повністю імітує апаратну архітектуру та логіку роботи іншого компʼютера або апаратних компонентів. На відміну від віртуалізації, емуляція застосовується тоді, коли базові архітектури несумісні. Емулятор виконує постійний програмний переклад процесорних інструкцій та відтворює компоненти пристрою, дозволяючи програмному забезпеченню працювати на обладнанні, для якого воно початково не було розроблене.
Віртуальна машина — це подібна до компʼютера система, що виконується як програмний процес. Апаратні компоненти віртуальної машини частково емулюються програмно, а частково використовують можливості фізичного компʼютера напряму завдяки спільній архітектурі.
Гіпервізор — це програма для віртуалізації, яка дозволяє фізичній системі запускати віртуальні машини. Гіпервізор розподіляє ресурси фізичного компʼютера — обчислювальні потужності, оперативну та постійну памʼять — між віртуальними машинами та контролює їхній стан.
6.2. Види гіпервізорів
Type-2 (прикладні гіпервізори)
Виконуються як звичайна програма поверх типової операційної системи. Вони зручні для розробки, тестування та повсякденного використання на персональних компʼютерах.
- VirtualBox: Linux / Windows / macOS;
- GNOME Boxes: Linux;
- QEMU: Linux / Windows / macOS;
- UTM: macOS.
Type-1 (операційні системи-гіпервізори, або «bare-metal»)
Встановлюються як повноцінна ОС безпосередньо на постійну памʼять компʼютера, минаючи типові операційні системи. Забезпечують значно вищу продуктивність та безпеку, оскільки працюють з апаратними компонентами напряму.
- Proxmox: Linux / KVM / QEMU;
- Xen / XCP-ng: Xen / dom0;
- Qubes OS: Xen / dom0;
- Hyper-V: Windows (архітектурно працює на рівні компонентів під самою ОС Windows).
6.3. Приклад використання
Використовуючи гіпервізор, створюється віртуальна машина з такими виділеними компонентами: 2 ядра процесора, 4 ГБ оперативної памʼяті, 30 ГБ постійної памʼяті та інсталяційний образ операційної системи. Після запуску віртуальна система встановлюється, налаштовується та використовується так, ніби вона працює на окремих реальних апаратних компонентах.
6.4. Альтернатива: контейнеризація
Окрім повноцінних віртуальних машин, існує більш «легкий» підхід — контейнери (наприклад, Docker). Замість створення окремої віртуальної машини та встановлення окремої гостьової ОС контейнери використовують спільне ядро хостової операційної системи. Вони ізолюють лише необхідні для роботи конкретної програми файли, бібліотеки та процеси. Це суттєво економить ресурси компʼютера та прискорює запуск додатків.