Технологii вiртуалiзацii: вчора, сьогоднi, завтра

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

у концепт-ПК вiд Intel, який легким поворотом ключика може перекладатися з режиму роботи звичайноi користувацькоi ОС в спецiальний навчальний режим з графiчним сенсорним екраном, призначений тiльки для простори освоСФння iСФроглiфiчного письма. При цьому поточний стан звичайноi ОС повнiстю зберiгаСФться, i до нього можна легко повернутися зворотним поворотом ключика.

Загалом, простiр для застосовностi технологiй вiртуалiзацii на роботi i в побутi СФ, i питання його грамотного використання з новiтнiми процесорами Intel тепер лягаСФ на плечi вiдповiдного програмного забезпечення, яке поки що не отримало широкого розповсюдження. Хоча, будемо сподiватися, скоро його все ж таки отримаСФ.

а) Вiртуалiзацiя завтра: AMD Secure Virtual Machine Pacifica

З AMD ситуацiя ще цiкавiше: в 2005 роцi ця компанiя сильно здивувала свiтову громадськiсть, випустивши свою технологiю вiртуалiзацii, абсолютно несумiсну з технологiСФю, запропонованою Intel. Ось так! Ранiше процесори Intel i AMD працювали на одних i тих самих материнських платах, потiм стали працювати на рiзних, потiм вимагали рiзних типiв оперативноi памятi, а тепер ось - i рiзного програмного забезпечення. Можете навiть не намагатися встановити вiртуалiзацiйних софт для Intel на процесори AMD - там немаСФ нiчого навiть близько схожого.

Щоправда, з iншого боку, рiшення AMD бiльш досконалий i бiльш сучасним. А несумiснiсть концептуальних пiдходiв виявляСФться лише у вiдносно невеликоi частини коду модуля VMM (будь-якi операцiйнi системи i звичайне ПЗ, природно, будуть як i ранiше однаково добре працювати на процесорах i Intel, i AMD). Але - тим не менш.

Давайте на хвилинку повернемося до Intel i подивимося на те, який пiдхiд був покладений в основу iдеологii VT-x. У нас СФ якась базова операцiйна система, в якiй користувач запускаСФ програму типу VMWare Workstation або Microsoft VirtualPC, а вже цю програму при бажаннi може пiдкрутити щось в процесорi, включити режим вiртуалiзацii, створити спецiальний модуль з управлiння вiртуальними машинами, створити вiртуальнi машини, i запустити на них якiсь гостьовi операцiйнi системи зi своiми додатками. При цьому режим VMX не СФ чимось дуже особливим i запущений в цьому режимi код нiякими особливими привiлеями не володiСФ. Фактично це просто звичайна програма (або драйвер), запущене на процесорi i маСФ зайвоi парою прапорцiв, записаних глибоко в службових регiстрах процесора.

У AMD пiдхiд принципово iнший, бiльш простий i наочний. ПочинаСФться вiн теж з менеджера вiртуальних машин VMM, та тiльки ось менеджер той на iнтеловськiх аналог абсолютно не походить. У Intel VMM - це якесь дуже хитре додаток звичайноi операцiйноi системи, яке може бути запущено навiть з кiльця звичайного прiоритету. У AMD - це системний код, що працюСФ на бiльш низькому рiвнi, нiж сама операцiйна система, i запускаСФться виключно з системного Ring 0. Модуль VMM в Pacifica фактично виконуСФ роль ядра деякоi базовоi операцiйноi системи, i тiльки цей код в Pacifica працюСФ з власне фiзичним обладнанням. Усi звичайнi операцiйнi системи в пiдходi AMD - гостьовi i працюють з вiртуальними машинами, якi для них створюСФ VMM. Оцiнiть всю принаднiсть рiшення: у Intel модуль VMM в потi чола займаСФться фальсифiкацiСФю купи рiзних подiй, вибиваючись з сил, аби зробити вигляд, що гостьова ОС працюСФ з реальним залiзом. У AMD модуль VMM просто один-СФдиний раз створюСФ вiртуальну машину, перемикаСФться в гостьовiй режим - i запущений в цiй гостьовiй машинi код працюСФ з свiжостворений вiртуальною машиною в практично повнiстю автономному режимi, без будь-якого втручання VMM.

Схема 9. Вiртуалiзацiя з AMD Pacifica

Як таке можливо? Та дуже просто: AMD дiйсно вiртуалiзуСФться фiзичнi ресурси, i, перш за все, - оперативну память. Фiзична вiртуальна память, видима гостьовими ОС в Pacifica - це просто вiртуальна память другого рiвня. Таблицi трансляцii для якого контролюСФ, природно, VMM. Тобто якщо яка-небудь програма, запущена в цiй гостьовiй ОС, скажiмо, звертаСФться до памятi за адресою такому-то, то процесор, використовуючи таблицi трансляцii, контрольованi гостьовiй ОС, спочатку перетворюСФ цю адресу в фiзичний адреса, який вже апаратно, без участi VMM перетвориться в справжнiй фiзичну адресу. Або, як уже говорилося, не перетворюСФться, а викликаСФ пiдкачування з своп-файлу, завантаження даних по мережi, i iнше - можливостi вiртуальноi памятi в умiлих руках безмежнi. VMM, до речi кажучи, влаштований набагато простiше операцiйноi системи, повнiстю незалежний вiд неi, i тому потенцiйно можливо реалiзовувати на його основi всю ту рiдкiсну функцiональнiсть, яку зазвичай не ризикують (або не хочуть) вносити до ядра звичайних операцiйних систем.

Ще одна цiкава особливiсть Pacifica - це спецiальний захищений режим запуску VMM. При бажаннi на компютерi з процесором, що пiдтримуСФ цю технологiю, можна зробити так, щоб при стартi компютер на апаратному рiвнi перевiрив цифровий пiдпис до VMM. Простiше кажучи, можна зашити в компютер таку програму, що на ньому принципово неможливо буде запустити непiдписанi довiреною джерелом модулi VMM. А самi модулi вiд цього довiреноi джерела, у свою чергу можуть перевiрити цифровий пiдпис у запускаються ними операцiйних систем; операцiйнi системи - перевiряти цифровий пiдпис у запускаються додаткiв, i так далi, до як завгодно високих ступенiв контролю того, що саме запущено на компютерi.

З просто-таки напрошуються прикладiв - можна, примiром, буде створити та