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

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

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

чi справжня iнструкцiю MOV to / from CR3 з апаратний рег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 РЖнструкцii на даному процесорi виконуються так довго. Можна Навiть спробувати один-в-один зiмiтуватi AMD Athlon XP на Intel Pentium 4 - так, що програмне забезпечення Гостьовий операцiйноi системи не буде i здогадуватiся про пiдмiну. Правда, Якщо бути точним Зовсiм, то оскiлькi Pentium 4 не пiдтрiмуСФ набiр iнструкцiй AMD 3Dnow, А технологiя VT-x НЕ дозволяСФ перехоплюватi помилки типу невiдома iнструкцiя (Invalid Opcode), то зiмiтуватi пiдтримку 3Dnow! на P4 неможливим. Але 3Dnow! все одно сьогоднi практичнiсть не вiкорiстовуСФться, а в усьому iншому (скажiмо, у всьому тому, що рапортуСФ про процесор стандартна iнструкцiя CPUID), iмiтованiм компютер буде вести себе точно як AMD Athlon XP, так що переважно бiльшiсть ПЗ на вiверт пiддасться.

От i вся технологiя вiртуалiзацii VT-x - ми просто перекладаСФться наш процесор в такий режим, коли ВРЖН перехоплюСФ Деякi (визначенi нами) подii i передаСФ РЗХ у спецiальну програму - менеджер вiртуальноi машини. РЖ нiякоi складноi бiнарноi трансляцii!

Всього в VT-x десять нових iнструкцiй:

  • VMXON i VMXOFF включаються i вимикають режим VMX.
  • VMWRITE дозволяСФ програмiсту запiсуватi Данi в структуру VMCS, що опiсуСФ вiртуальну машину; VMREAD - аналогiчно читать Данi з VMCS. "асне формат структури VMCS офiцiйно невiдомий, i яким чином i що там, взагалi кажучи, зберiгаСФться - одна Intel знаСФ. Зауважiмо, такоже, що сама структура VMCS вiдносно невелика за розмiрамi (одиницi кiлобайт) i не зберiгаСФ в собi, прiмiром, даних про вiртуальну памятi, що утворюСФ фiзiчну память вiртуального компютера, - ЦРЖ Данi менеджер VMM пiдтрiмуСФ (завантажуСФ i зберiгаСФ) для вiртуальнiх машин самостiйно.
  • VMPTRLD дозволяСФ вiбрато потоково вiртуальну машину (покажчик на VMCS). VMPTRST, аналогiчно, ЗБЕРЕГТИ покажчик на поточно вiртуальну машину.
  • VMLAUNCH дозволяСФ запустiтi вибране вiртуальну машину (опiсуСФться ранiше встановлених Покажчик на коректно потоково VMCS).
  • Виконання коду працюСФ вiртуальноi машини перерiваСФ або настання зазначених у VMCS подii (зовнiшнього перериванi, спроба ВИКОНАТИ ту чи iншу iнструкцiю), або виконання РЖнструкцii VMCALL (Якщо вона дозволена в настройках VMCS).
  • VMRESUME дозволяСФ продовжiтi перерване подiСФю виконання коду на вiртуальнiй машiнi.
  • VMCLEAR вiкорiстовуСФться для iнiцiалiзацii порожнiй структури VMCS i для перекладу вiбраноi вiртуальноi машини в зупинення табору (зi збереженням даних VMCS).

Схема 8. Набор инструкций VT-x

Доступ до iнструкцiй VT-x за замовчуванням заблокований; для iх включення потрiбно включити бiт 4 в четвертому контрольному регiстрi процесора (CR4.VMXE = 1) i включити бiти 0 i 2 в MSR-регiстрi 3Ah. На вiртуальнiй машинi, емульованоi за допомогою VT-x, можна замаскувати пiдтримку VT-x, повiдомляСФмо iнструкцiСФю CPUID, i примусово заблокувати будь-яку можливiсть використання у вiртуальнiй машинi iнструкцiй даного сiмейства. З урахуванням можливостей по маскуванню виконавчi iнструкцiй на вiртуальнiй машинi це означаСФ, що можна домогтися того, що виконуються на вiртуальнiй машинi програмне забезпечення нi за яких умов не зможе здогадатися про те, що працюСФ не на реальному компютерi, а на вiртуальнiй машинi.

Технологiя Intel VT вже вийшла на ринок - у продажу СФ як настiльнi, так i сервернi процесори, офiцiйно ii пiдтримують. Перелiк процесорiв Intel з пiдтримкою VT постiйно поповнюСФться, i ви без працi зможете знайти його на сайтi Intel разом iз популярним описом самоi технологii. Корпорацiя для популяризацii цього свого рiшення любить влаштовувати живi демонстрацii можливостей технологii в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 демонстрацii стаСФ момент, коли вiдкриваються кришки цих системних блокiв, а пiд ними - порожньо. Поряд ж коштуСФ звичайний непримiтний системний блок (для наочностi пофарбований у цi ж 4 кольори - в смужку), який лише i виконуСФ всю описану вище роботу - пiд управлiнням Intel VT з апаратною пiдтримкою i декiлькома одночасно працюють ОС. На недосвiдчених користувачiв така демонстрацiя надаСФ велике враження.

Другий, бiльш побутовоi демонстрацiй Intel VT зазвичай виступаСФ домашнiй мультимедiйний компютер, який одночасно обслуговуСФ декiлька незалежних користувачiв, таких як тато працюСФ з поштою, мама дивиться фiльм, а дитя - так, граСФ чи слухаСФ музику. Папа закiнчив i вимкнув свою систему (або система сина пiд час гри пiдвисла i пiшла на перезавантаження), але при цьому iншi користувачi продовжують роботу / розвага, як нi в чому не бувало. Нарештi, принципи вiртуалiзацii використовуються i в деяких профiльних рiшеннях для певних регiонiв ринку. Наприклад, в знаменитому китайському домашньом