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

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

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

кий компютер, на якому мають виконуватися тiльки лiцензiйнi операцiйнi системи виробництва Microsoft без СФдиного байти чужих змiн з боку любителiв халявного ПЗ. Вiрнiше сказати, запускати на цьому компютерi, при бажаннi (скажiмо, пiсля перепрошивання BIOS) можна буде, звичайно, все що завгодно, але при цьому в процесор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стить жучок; додали шпигунську PCI-плату, що збираСФ 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, то це ще один величезний плюс технологii AMD.

Втiм, справедливостi заради, треба вiдзначити, що в Intel розробляСФться (вже протягом декiлькох рокiв) власна технологiя апаратного безпеки пiд назвою LaGrande, яка вмiСФ дуже багато що i навiть бiльш готова до виходу на ринок, нiж Pacifica. Так що, цiлком можливо, що звязка Intel VT + LaGrande виявиться не менш функцiонально привабливою, нiж AMD Pacifica. А вже в умiннi Intel влаштувати грамотний i широкомасштабний маркетинг своiх продуктiв сумнiватися не доводиться.

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

РД й iншi особливостi, що дозволяють мiнiмiзувати кiлькiсть непотрiбних переключень вiд гостьовоi ОС до VMM i назад, переклавши вiдповiднi перевiрки на апаратне забезпечення. А якщо i доводиться все-таки перемикатися мiж гостьовiй ОС, VMM, та iншоi гостьовоi ОС - то, знову ж таки за контрастом з VT-x, це переключення вiдбуваСФться украй швидко, з дуже обмеженою необхiднiстю у збереженнi контексту i повною вiдсутнiстю необхiдностi скидання, примiром, буфера TLB, який зазвичай пiд час переходу мiж рiзними таблицями трансляцii доводиться повнiстю очищати. Природно, що набiр перехоплюваних подiй i можливостi фальсифiкацii усього й вся нiтрохи у Pacifica не вже, нiж у VT-x; проте настройка що перехоплювати, а що нi - набагато гнучкiша (у VT-x багато перехоплюСФться безумовно; в Pacifica можна вiдключити практично будь-який перехоплення). Навiть не знаСФмо, до чого причепитися, - навряд чи можна було придумати щось бiльше за функцiональнiстю, зручне у використаннi, i настiльки швидкодiюче.

Набiр iнструкцiй Pacifica настiльки ж простий i витончений, як i саме рiшення AMD:

  • Команда VMRUN перемикаСФ виконання на обрану вiртуальну машину.
  • З вiртуальноi машини управлiння повертаСФться або з перехоплення одного iз зазначеного в налаштуваннях вiртуальноi машини подiй, або при виклику спецiальноi iнструкцii VMMCALL (якщо остання дозволена налаштуваннями).
  • РЖнформацiя про вiртуальнiй машинi зберiгаСФться в спецiальнiй структурi даних VMCB (Virtual Machine Control Block) вiдомого формату. VMM працюСФ з даною структурою безпосередньо, вручну змiнюючи при необхiдностi вiдповiднi поля (на вiдмiну вiд VT-x, де формат аналогiчноi структури VMCS офiцiйно невiдомий i для роботи з VMCS використовуються спецiальнi iнструкцii VMREAD i VMWRITE). Про всяк випадок ще раз нагадаСФмо, що сама ця структура вiдносно невелика i описуСФ тiльки стан процесора вiртуальноi машини, а вiртуальну память i стан вiртуальних пристроiв цiСФi машини VMM повинна обслуговувати самостiйно.
  • Найбiльш необхiднi операцii з переключення контексту при переходах VMM до гостьовоi ОС i назад виконуються повнiстю автоматично. Проте, щоб не робити зайвих дiй, зберiгаСФться i завантажуСФться дiйсно тiльки найнеобхiднiше, i при необхiдностi будь-яких складних дiй або переми