Концепція віртуальних машин

Віртуальна машина (ВМ, від англ. virtual machine) -

· програмна і/або апаратна система, що емулює апаратне забезпечення деякої платформи і виконуюча програми для цієї платформи (target — цільова або гостьова платформа) на іншій платформі (host — хост-платформа, платформа-хазяїн)

· чи що віртуалізує деяку платформу і створює на ній середовища, що ізолюють один від одного програми і навіть операційні системи (см: пісочниця);

· також, специфікація деякого обчислювального середовища (наприклад: «віртуальна машина мови програмування Сі»).

Віртуальна машина виконує деякий машинно-незалежний код (наприклад, байт-код, шитий код, p -код) або машинний код реального процесора. Окрім процесора, ВМ може емулювати роботу як окремих компонент апаратного забезпечення, так і цілого реального комп'ютера (включаючи BIOS, оперативну пам'ять, жорсткий диск і інші периферійні пристрої). У останньому випадку у ВМ, як і на реальний комп'ютер, можна встановлювати операційні системи (наприклад, Windows можна запускати у віртуальній машині під Linux або навпаки). На одному комп'ютері може функціонувати декілька віртуальних машин (це може використовуватися для імітації декількох серверів на одному реальному сервері з метою оптимізації використання ресурсів сервера).

Концепція віртуальної машини як сукупності ресурсів, які емулюють поведінку реальної машини, з'явилася в Кембріджі у кінці 1960-х років як розширення концепції віртуальної пам'яті манчестерської обчислювальної машини Atlas (англ.). В цілому обчислювальний процес визначається у рамках цієї концепції вмістом того робочого простору пам'яті, до якого він має доступ. За умови, що конкретна ситуація в цьому робочому просторі відповідає очікуваною, процес не має ніяких засобів для визначення того, чи являється представлений йому ресурс дійсно фізичним ресурсом цього типу, або ж він імітується діями інших ресурсів, які призводять до аналогічних змін утримуваного робочого простору процесу.

Наприклад, процес не може визначити, чи монопольно він використовує процесор або ж в режимі мультипрограмування разом з іншими процесами. У віртуальній машині жоден процес не може монопольно використовувати ніякого ресурсу, і усі системні ресурси вважаються ресурсами потенційно спільного використання. Крім того, використання віртуальних машин забезпечує розв'язку між декількома користувачами, працюючими в одній обчислювальній системі, забезпечуючи певний рівень захисту даних.

Ідея віртуальної машини лежить в основі цілого ряду операційних систем, зокрема, IBM VM/CMS (і її радянського клона СВМ) і DEC VAX/VMS.

Віртуальні машини можуть використовуватися для:

· захисту інформації і обмеження можливостей програм (см: пісочниця);

· дослідження продуктивності ПО або нової комп'ютерної архітектури;

· емуляції різної архітектури (наприклад, емулятор ігрової приставки);

· оптимізації використання ресурсів мейнфреймов і інших потужних комп'ютерів (см, наприклад: IBM eServer);

· шкідливого коду для управління інфікованою системою: вірус PMBS, виявлений в 1993 році, а також руткит SubVirt, створений в 2006 році в Microsoft Research, створювали віртуальну систему, якою обмежувався користувач і усі захисні програми (антивіруси і інші).[2]

· моделювання інформаційних систем з клієнт-серверною архітектурою на одній ЕОМ (емуляція комп'ютерної мережі за допомогою декількох віртуальних машин).

· спрощення управління кластерами — віртуальні машини можуть просто мігрувати з однієї фізичної машини на іншу під час роботи.

· тестування і відладки системного програмного забезпечення;

 

 

Контрольні запитання

  1. Дати визначення Віртуальної машини
  2. Де зародилася ідея створення віртуальної машини?
  3. Для чого використовуються віртуальні машини?

Література

Едлектронний ресурс: http://ru.wikipedia.org/wiki/Виртуальная машина