Технологii вiртуалiзацii: вчора, сьогоднi, завтра
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
апаратного контролю звичайний x86-процесор не надаСФ.
Схема 6. Вiртуалiзацiя з гостьовими ОС.
Ще одна проблема з тiСФi ж серii - внутрiшнiй регiстр процесора, що вiдповiдаСФ за рiвень привiлеiв поточного запущеного додатку. Процесор використовуСФ його, щоб перехоплювати спроби звернення звичайних додаткiв до небезпечним, недозволеним iнструкцiй i областях памятi; призначаСФться цей рiвень привiлеiв операцiйною системою. Таких рiвнiв всього чотири; про додатки iз заданим рiвнем привiлеiв говорять, що вони працюють у вiдповiдному кiльцi. Чим менше чисельне значення даного параметра, тим бiльше можна вiдповiдним додаткiв. У кiльцi 0 (Ring 0), примiром, працюСФ операцiйна система i (зазвичай) драйвера операцiйноi системи; в кiльцi 3 (Ring 3) - звичайнi користувальницькi додатки. Так от: довiряти гостьовий операцiйнiй системi нульове кiльце не можна - iнакше неможливо буде перехоплювати деякi його дii, оскiльки в нульовому кiльцi дозволено все i багато перевiрки безпеки просто не працюють. Але оскiльки гостьова операцiйна система, природно, за замовчуванням припускаСФ, що ii потрiбно запускати саме в нульовому кiльцi, а перевiрити цей факт особливоi працi не представляСФ, то цiлком природно, що при спробi ii запуску в будь-якому iншому кiльцi додаток-вiртуалiзатор добСФться хiба що повiдомлення про помилку. Тому, строго кажучи, повноцiнну iмiтацiю фiзичного компютера за допомогою апаратних ресурсiв вiртуалiзацii в x86 не можна. Кажуть, що не виконано критерiй самовiртуалiзiруемостi Попека i Голберга (Popek and Goldberg self-virtualization requirements).
Як же тодi працюють вiртуалiзатор типу VMWare? Досить нетривiальним чином. Вiртуалiзатор злегка пiдрiзаСФ крила коду виконуСФться пiд його керуванням операцiйноi системи, на льоту дiзассемблiруя ii код i замiнюючи поганi iнструкцii (на кшталт читання-запису регiстра CR3) нейтральними з ii точки зору (це називаСФться динамiчноi трансляцiСФю; dynamic recompilation). Зробити це, мяко кажучи, не так вже просто, а гарантувати працездатнiсть що виходить на виходi результату - ще складнiше. Приплюсуйте сюди задачку iмiтацii софтом вiртуального x86-компютера (що вимагаСФ реалiзацii спецiального складного драйвера), i ви отримаСФте уявлення про те, чому вiртуалiзуСФться ПЗ для x86 до цих пiр не вiдрiзнялося нi особливою надiйнiстю, нi особливою продуктивнiстю. На жаль, але в архiтектурi IA-32 з ii з самого початку непоганий вiртуалiзацiйних функцiональнiстю спочатку була закладена здоровенна дiрка, яку можливо обiйти тiльки з великими труднощами.
Цiкаво, до речi, що в що прийшла на змiну IA32 технологii AMD64/Intel EM64T, виправити бiльшiсть невдалих i тонких мiiь архiтектури, що веде свiй родовiд аж з процесора Intel i80386, цю вiртуалiзацiйних дiрку нi Intel, нi AMD так i не закрили! Замiсть цього вони абсолютно незалежно один вiд одного випустили двi абсолютно несумiснi один з одним заплатки до AMD64 i EM64T вiдповiдно, по-рiзному що полегшують життя розробникам вiртуалiзацiйних ПЗ.
b) VMWare Workstation i VMWare Server
У Росii iмя VMWare СФ практично синонiмiчним для програмного забезпечення для вiртуалiзацii. Саме ця компанiя в 1999 роцi вперше вивела на ринок успiшний продукт, що забезпечував для операцiйних систем виробництва Microsoft можливiсть запуску вiртуальних машин з чужими операцiйними системами. Правда, в 2003 роцi VMWare була скуплена корпорацiСФю EMC2, до складу якоi з тих пiр i входить, проте свого iснування як самостiйного гравця з розкрученим брендом вона з тих пiр не припинила. РЖ поточна полiтика керiвництва EMC2 полягаСФ в тому, щоб VMWare i далi працювала на ринку як самостiйна одиниця, впливати на стратегiю i тактику якого EMC особливо не буде.
На сьогоднiшнiй день VMWare пропонуСФ три лiнiйки базового i деяку кiлькiсть супутнього вiртуалiзацiйних ПЗ (таблиця-ца 1). Перша лiнiйка, VMWare Workstation 5.5 орiСФнтована насамперед на звичайних розробникiв, запускаючих на своСФму компютерi декiлька операцiйних систем одночасно. Друга, VMWare Server GSX 3 - практично iдентична першоi по основнiй функцiональностi, але орiСФнтована вже на серверне застосування в якостi засобу органiзацii безлiчi захищених вiртуальних серверiв на одному фiзичному. РЖснують версii обох пакетiв для Windows 2000/XP/2003 та основних дистрибутивiв Linux. Третя лiнiйка, VMWare Server ESX 2 коштуСФ дещо окремо, оскiльки орiСФнтована не на запуск в якостi звичайного додатки в батькiвського операцiйнiй системi, а, фактично, реалiзуСФ свою власну операцiйну систему, в якiй запускаСФться одно-СФдина програма - власне вiртуалiзацiйних ПЗ. Область застосування Server ESX приблизно та ж, що i у Server GSX, але ESX орiСФнтована на великi дата-центри, що вимагають особливоi надiйностi вiд вiртуалiзуСФться ПЗ.
Конфiгурацiя вiртуальних машин у VMWare бiльш нiж гiдна. Ресурси процесора доступнi вiртуальнiй машинi в повному обсязi (якщо на батькiвського машинi коштуСФ Pentium 4 - в iмiтованих компютерi буде стояти точно такий же процесор); обсяг оперативноi памятi - практично необмежений (до 3,6 Гбайт на кожну вiртуальну машину); пiдключаються безпосередньо або iмiтуються стандартнi IDE-пристроi (жорсткi диски та оптичнi накопичувачi у виглядi файлiв на диску), пiдтримуСФться пряме пiдключення SCSI-адаптерiв i iмiтацiя SCSI-дискiв, пiдключених через контролер LSI Logic Ultra160 або Mylex BT-958. Вiдеокарта - абстрактний графiчний адаптер VGA / SVGA. ПiдтримуСФться i емулюСФться до двох флоппi-дискiв, до чотирьох COM-портiв, UCHI-контролер на 2 порти USB 1.1; до д