Віртуальні машини. Як зробити комп’ютер у комп’ютері

В одному звичайному комп’ютері можна створити одразу кілька віртуальних, щоб познайомитися з можливостями Linux або іншими екзотичними ОС, запустити дуже стару програму, яка сьогодні не підтримується, пройти заново гру дитинства на сучасному залізі. Або ж запустити Windows Vista всередині Windows 7 всередині Windows 8 всередині Windows 10. Просто тому, що захотілося.

Що таке віртуальні машини

Віртуальна машина — це емулятор комп’ютера в найширшому сенсі. Це майже як емулятор ігрової приставки або Android-пристрою, тільки налаштовується набагато гнучкіше.

Наприклад, на емуляторі Sony PlayStation не вийде запустити гру під Nintendo GameBoy. А емулятор DOSbox — це дуже умовний, спеціалізований віртуальний комп’ютер з емуляцією певного списку старого обладнання та з вбудованою системою DOS, тож запустити там Windows 10 не вийде.

Віртуальна машина ж — це емулятор персонального комп’ютера з практично будь-яким залізом. І на цей комп’ютер можна встановлювати будь-яку операційну систему і програми, які потрібні.

Навіщо потрібні віртуальні машини

У ділових процесах віртуальні машини використовуються активно — там це потрібно. Центри обробки даних, хмарні обчислення, віртуальні сервери, розмежування доступу і таке інше. На одному й тому ж залізі може працювати окремий файловий архів, окремий веб-сервер, окремий сервер авторизації — і все на різних системах, повністю ізольованих одна від одної. Але навіщо потрібна технологія віртуальних машин звичайному домашньому користувачеві?

Ось простий приклад: у вас є комп’ютер і на ньому, найімовірніше, встановлено операційну систему Windows. Для вивчення програмування вам потрібен linux, але ви не хочете експериментувати зі своїм комп’ютером, розбивати особистий диск на кілька розділів і ризикувати втратою даних. Віртуальна машина дасть змогу працювати в іншій системі, при цьому рідна Windows ніяк не постраждає.

Або, наприклад, є дуже важлива і потрібна програма, яка запускається тільки під WindowsXP конкретної версії і збірки. Причому ця програма відмовиться запускатися, якщо оперативної пам’яті більше 128 мегабайт. Можна відпиляти частину мікросхем від сучасного модуля на 16 гігабайт, але щось вам підказує, що так робити не потрібно. А ось віртуальна машина допоможе запустити примхливий софт, емулюючи комп’ютер з потрібним обсягом пам’яті.

А ось, припустімо, гра двадцятирічної давності, яку ви знайшли на антресолях і намагаєтеся встановити в нападі ностальгії. Гра відмовляється вірити в існування восьмиядерного процесора і вилітає з помилкою «так не буває». Віртуальна машина з потрібними характеристиками допоможе згадати минулі часи і запустити гру.

Часто віртуальну машину використовують як «пісочницю» — маленький ігровий майданчик для програми, яка викликає у вас підозри. Щоб не ризикувати, ви запускаєте сумнівну програму всередині віртуальної машини, а не на справжньому комп’ютері: софт чесно робить свою роботу, потім шифрує всі файли і вимагає грошей, наприклад. Але у віртуальній системі, у тій самій «пісочниці» не було ніяких цінних даних, тому ви можете спокійно видалити віртуальну машину з нахабною програмою всередині. Здорово ж!

Нарешті, прихильники техніки Apple або переконані Linux-користувачі теж можуть використовувати віртуальну машину, щоб запустити якийсь специфічний софт, який працює тільки під Windows.

Як бачите, навіть для домашнього користування віртуальні машини можуть стати в пригоді. Тож розберемося з основними характеристиками та навчимося створювати комп’ютер у комп’ютері.

Основні терміни та їхнє розуміння

Гість (guest, гест, гостьова система, таргет) — це віртуальний комп’ютер, один або кілька, який запускається на хості.

Хост — це основний комп’ютер, на якому запускаються віртуальні машини. Продуктивність хоста має бути достатньою, щоб тягнути і власну систему, і гостьову. Для запуску однієї віртуальної машини цілком достатньо можливостей будь-якого сучасного комп’ютера. Але для нормальної роботи кількох систем одночасно краще мати не менше шістнадцяти гігабайт оперативної пам’яті, а образи комп’ютерів створювати на швидкісному SSD-накопичувачі. З очевидних причин, у вас не вийде створити віртуальну машину з характеристиками, вищими за характеристики самого хоста — якщо на основному комп’ютері всього 8 гігабайт оперативної пам’яті, то створити таргет із 16 ГБ не вийде.

Гіпервізор — спеціалізована програма для створення віртуальних машин і керування ними. Для домашнього користування є безкоштовні програми-гіпервізори з мінімальною кількістю налаштувань і функцій. У бізнес-сфері використовуються більш просунуті рішення, а деякі гіпервізори і зовсім встановлюються замість операційної системи, щоб відразу кілька потужних комп’ютерів можна було об’єднати у великий віртуальний хост. Це називається «консолідація серверів». Дороге задоволення, як за витратами на залізо, так і на гіпервізор

Образ — термін досить відомий, позначає файл із повною цифровою копією будь-якого носія всередині. Зазвичай застосовується щодо оптичних дисків, але в нашому випадку в образі може зберігатися і дискета, і віртуальний жорсткий диск.

Встановлення

Щоб почати знайомство з віртуальною машиною потрібно встановити гіпервізор. Таких існує безліч: платних і не дуже, для тонкого налаштування всього і вся або базового «натиснув — запрацювало». Virtualbox — один із найпопулярніших гіпервізорів, тому що безкоштовний, доступний під Windows, Mac OS і Linux, активно розвивається і підтримується спільнотою розробників та ентузіастів. Завантажити VirtualBox можна з офіційного сайту, але врахуйте, він англійською.

Починаючи з шостої версії у VirtualBox прибрали підтримку 32-бітних хост-систем, але п’ята версія досі доступна для скачування. У будь-якому разі, можна завантажити обидві версії. Для комфортнішої роботи знадобиться ще й набір розширень — ExtensionPack.

Встановлюється VirtualBox досить просто, достатньо послідовно погоджуватися з усіма пропозиціями. Перед встановленням з’явиться велике попередження про те, що комп’ютер буде відключений від мережі, на час встановлення віртуальних мережевих карт — це нормально. А в ході встановлення з’явиться кілька підтверджувальних вікон — це встановлюється емулятор USB, мережевих карт та інших пристроїв.

Ну а після встановлення з’явиться основне вікно гіпервізора рідною російською мовою.

Насамперед бажано встановити пакет розширень — він додає підтримку USB 2.0, підключення за протоколом RDP, підтримку накопичувачів з NVMe та інші корисні речі. У стандартному встановленні всі ці можливості відсутні через різні ліцензії: сам гіпервізор безкоштовний на всі боки, а розширення безкоштовні тільки для особистого користування та ознайомлення.

Щоб встановити розширення, достатньо запустити файл Extensionpack дабл-кліком, але робити це потрібно після встановлення самого Virtualbox — тому що установник розширень запускається всередині гіпервізора.

Як працює віртуальна машина

Гіпервізор створює файл образу жорсткого диска, резервує певну кількість оперативної пам’яті та займає процесорний час — це необхідно для роботи «контейнера», у якому працюватиме віртуальна машина. Зсередини ж «контейнер» має вигляд повноцінного комп’ютера з жорстким диском, оптичним приводом, дисководом, мережевою картою, відеоадаптером, звуковою картою та іншим обладнанням. Причому замінити відеокарту зазвичай не можна — вона емулюється як вбудована в материнську плату. А ось в оптичний привід можна або завантажити образ із файлу, або використовувати наявний привід хоста.

Процесор віртуалізується як мінімум одним ядром. Для старих систем краще не використовувати багатоядерність — не зрозуміють, злякаються і будуть глючити. А новим більше двох ядер потрібно видавати тільки за реальної необхідності.

Підключені до хоста USB-пристрої можна прокинути всередину віртуальної машини. Досить вибрати для конкретної машини потрібний пункт з меню «Пристрої — USB». При цьому, наприклад, флешка зникне зі списку накопичувачів у хост-системі і стане видимою у віртуальній машині. Так само можна вчинити з будь-яким іншим USB-пристроєм, але не забудьте спочатку встановити Extensionpack, інакше швидкість USB 1.1 вас засмутить.

Щоб файли на основній системі були доступні у віртуальній ОС, можна скористатися загальними папками: вони монтуються як мережеві шляхи, але зручніше автоматично їх монтувати як мережевий диск — він буде підключатися під час завантаження системи. Подробиці розберемо на етапі налаштування.

Створюємо віртуальний комп’ютер

Створити нову віртуальну машину у VirtualBox допоможе вбудований майстер налаштування. Досить ввести назву віртуального комп’ютера, а гіпервізор на його основі спробує визначити потрібну операційну систему і видасть рекомендовані параметри. Якщо назва занадто оригінальна, то потрібно буде вказати тип гостьової операційної системи вручну.

Незважаючи на те, що в списку підтримуваних систем є навіть Windows 3.1, найкраще віртуалізуються відносно свіжі системи, починаючи хоча б з Windows 2000. З win9x трохи складніше: спочатку потрібно завантажити DOS з образу дискети, а вже потім запускати інсталятор — у ті часи завантажувальні CD не робили, бо оптичні носії тільки-тільки з’являлися.

Наступним кроком буде вибір обсягу оперативної пам’яті та віртуального жорсткого диска — якщо немає спеціальних вимог, то автоматично запропоновані значення можна не змінювати.

Після створення віртуальної машини необхідно відкрити її налаштування і підключити образ завантажувального компакт-диска на вкладці «носії». І тепер можна запускати віртуальний комп’ютер.

Встановлення системи у багатьох користувачів не викличе зайвих запитань, тому докладно описувати цей процес не будемо. А подальше встановлення драйверів — інша справа. У VirtualBox є спеціальний «диск із драйверами», який називається «Доповнення гостьової ОС» — його можна підключити через пункт меню.

Доповнення — це диск із драйверами, який завантажується у віртуальний привід оптичних дисків. У Windows-системах достатньо запустити файл autorun з диска, а під Linux — відповідний скрипт. Головна вигода від встановлення гостьових драйверів — можливість довільно змінювати розміри вікна віртуальної машини, а роздільна здатність екрана автоматично підлаштується. А, ну і кольори стануть веселішими: не 16 базових, а 32 мільйони відтінків.

Налаштовуємо взаємодію з хостом і мережу

Віртуальна машина з налаштуваннями «за замовчуванням» отримує доступ до інтернету, але не має жодного зв’язку з основним комп’ютером. А іноді цей зв’язок потрібен…

У налаштуваннях можна ввімкнути двосторонній буфер обміну. Він, щоправда, працює тільки з текстовою інформацією, але спрощує введення інтернет-адрес і консольних команд. Для прийому-передачі файлів можна налаштувати мережеві папки. Будь-яка папка на хості може бути підключена у вигляді мережевої папки в гостьовій системі. Додатково можна видати права гостьовій системі на запис до цієї папки і автоматично підключати папку як диск під час завантаження системи. Так, наприклад, папка Downloads на хост-системі може бути доступна з гостьової системи через мережеве оточення за адресою //vboxsvr/Downloads або автоматично підключатися як мережевий диск.

Для експериментів з Linux-системами і віртуальними серверами часто потрібен доступ з хоста до веб-сервера, який запускається на гостьовій ОС. Для цього потрібно перемкнути режим мережевої карти з «NAT» на «віртуальний адаптер хоста» або ж «Virtualbox Host-only Ethernet Adapter». В останньому разі гостьова система не матиме особистого доступу до інтернету, але зможе спілкуватися з основним комп’ютером. Так, наприклад, з хоста можна постукати на файловий сервер, який працює на віртуальній машині.

У цьому випадку це спеціалізований linux-дистрибутив openmediavault для створення мережевого сховища, який запущено у віртуальній машині з типом мережевого адаптера «тільки хост».

Проблеми з віртуалізацією

Головна проблема — відсутність адекватної підтримки відеоадаптера і 3D-прискорення. На звичайній хост-системі ви можете користуватися новітньою відеокартою, але всі її переваги у віртуальній машині будуть недоступні. Втім, старі ігри не особливо вимогливі до відео — у більшості випадків впорається і вбудований відеоадаптер процесора.

Другий момент — підтримка сучасного інтернету старими системами. Відкрити будь-який сайт у системі, яка застаріла років на 10-20, може бути проблематично. Або сторінка завантажиться не повністю, або не завантажиться зовсім.

Віртуалізуй це!

Віртуальні машини дадуть вам змогу вивчити екзотичні ОС на сучасному комп’ютері. Крім безлічі сучасних Linux-дистрибутивів, це може бути:

  • ReactOS — система з відкритим кодом, яка намагається бути сумісною з WinXP
  • BeOS (нині HaikuOS) — найдружелюбніша до користувача система з 90х
  • OS/2 — непорушна і надійна система від IBM, яка використовувалася в 90х
  • MacOSX — найбільш примхлива в плані віртуалізації система, яка добре працює тільки на комп’ютерах від Apple.

Також можна встановити стару версію Windows і спробувати підкорити сучасний інтернет. За часів технології Active Desktop у windows98 інтернет був дуже іншим

Зрештою, віртуальна машина дасть змогу експериментувати з недовірливими програмами, запускаючи їх в ізольованій пісочниці. Virtualbox, як і багато інших безкоштовних гіпервізорів, це лише інструмент, а як використовувати віртуальну машину — вирішуйте самі.