Є кілька варіантів реалізації проміжного програмного забезпечення
Якщо не вдаватися в деталі, то комп'ютерні системи зазвичай складаються з апаратного забезпечення, операційної системи, яка працює на цьому апаратне забезпечення, і програм, які потребують цієї ОС. (Правда, у вбудованих системах операційна система в традиційному розумінні може бути відсутнім.) Так чи інакше, операційна система «знає» про всі ресурси і можливості використовуваного обладнання і керує ним безпосередньо.
Якщо між ОС та обчислювальної системою присутній ще один програмний рівень, тоді ОС отримує тільки ту інформацію, яку цей проміжний рівень їй надає. І відомості про земельні ресурси і можливості використовуваного апаратного забезпечення будуть залежати від цього проміжного програмного рівня. Операційна система може контролювати нижележащее обладнання тільки в тій мірі, в якій йому дозволяє цей проміжний рівень.
Проміжний програмний рівень може повідомити ОС все, що йому відомо про апаратне забезпечення, і просто передавати керуючі директиви без будь-яких змін. Але можливо і інше рішення: проміжний рівень може не повідомляти ОС всі дані про наявний обладнанні і до певної міри змінювати керуючі директиви, що передаються ОС.
Звичайно, існують різноманітні пристрої і інтерфейси, які додають свої нюанси і складності в обчислювальну середу. Але використання програмного рівня для формування набору обчислювальних ресурсів і правил роботи і складають основу так званої віртуальної машини.
Віртуальна машина - це обчислювальне середовище, набір ресурсів і правил роботи якої формується (за допомогою програмного забезпечення) в якійсь іншій обчислювальному середовищі.
Віртуальна машина - гіпервізор
Віртуальні машини є основою таких технологій, як ESX Server компанії VMware і вільно поширюваний монітор віртуальної машини Xen. Обидва продукти є сервери, в яких використовується одночасно кілька операційних систем, орієнтованих на архітектуру x86. Підходи, реалізовані в цих продуктах, - різновиди того, що називають віртуальними машинами для апаратного рівня, для «голого заліза» або віртуальними машинами типу гипервизор. Проміжний програмний рівень (званий монітором віртуальної машини або гіпервізором) розміщується між ОС і апаратним забезпеченням. Завдяки Гіпервізор у всіх працюючих на даному комп'ютері операційних систем створюється ілюзія, що кожна з них є єдиною.
Використання декількох операційних систем на одній серверній платформі дає цілий ряд переваг. В цьому випадку можна повністю задіяти ресурси дуже потужних серверів, забезпечити сумісність для успадкованих програм і розподілити додатки між декількома ОС таким чином, щоб вони не створювали перешкод один одному.
VMware використовує прозору віртуалізацію, що означає відсутність необхідності міняти операційні системи, що працюють на гіпервізора. Xen використовує «паравіртуалізацію», тобто вимагає зміни операційних систем таким чином, щоб вони могли одночасно працювати на одному і тому ж апаратному забезпеченні. На думку фахівців Xen, паравіртуалізація збільшує швидкість і підвищує ефективність роботи.
Хостової віртуальні машини
Microsoft Virtual PC і GSX Server і GSX Workstation компанії VMware називають хостової віртуальними машинами. У цих продуктах віртуальна машина, як і інші додатки, працює в операційній системі. Додаток віртуальної машини розділяється на проміжний програмний рівень, операційну систему і додаток, що працює в цій ОС.
Така схема менш ефективна і пропонує не настільки широкі можливості, як схема, що застосовується в серверах з гіпервізором, але дає свої переваги, дозволяючи працювати з успадкованими програмами і відокремлювати додатки від решти системи. Користувач, який хоче відвідати потенційно небезпечні Web-сайти, наприклад, може посилити захист на час своєї роботи в Web за рахунок застосування віртуальної машини.
Віртуальні машини рівня додатків
Віртуальні машини рівня додатків, такі як віртуальна машина Java, працюють як додатки, що ріднить їх з рішеннями, що підтримують хостовую модель. Такі віртуальні машини, проте, поєднують в собі проміжний програмний рівень з операційною системою. Віртуальна машина Java виконується як додаток у вихідній середовищі, а додатки Java працюють вже на віртуальній машині.
Як стверджується, одна з переваг такої парадигми програмування полягає в тому, що програма на Java буде працювати в будь-який віртуальній машині Java без перекомпіляції. І в цьому випадку тільки від постачальника залежить, чи зможе віртуальна машина Java працювати з декількома вихідними операційними системами.
Паралельна віртуальна машина
Паралельна віртуальна машина - це дещо інший підхід до створення віртуальної машини. В цьому випадку проміжний програмний рівень має вигляд програмного демона, або серверної програми, яка поряд з набором бібліотечних викликів повинна бути скомпільована в додаток, призначене для роботи на паралельній віртуальній машині. Бібліотечні виклики, які передбачають звернення до серверних програм, дозволяють представляти мережу комп'ютерів як один комп'ютер з паралельними процесорами.
Як то кажуть, ви можете змусити програму робити все що завгодно. Правда, не завжди така програма буде працювати швидко і ефективно. Але до тих пір, поки існує проміжний програмний рівень, буде існувати і віртуалізація.
Поділіться матеріалом з колегами і друзями