ті среди В«Звичайний Користувачів В»ВІН отріматі НЕ зумів.
В
Схема 5. Паравіртуалізації
Другий способ Дуже добре знаком В«просунути КористувачиВ» згідно з Додатками типом VMWare Workstation, что Забезпечує успішній запуск на одному комп'ютері з-под В«БазовоїВ» операційної системи кількох В«гостьовийВ» операційніх систем без спеціальної їх модіфікації. В«ГостьовийВ» операційна система разом з усіма ее Додатками Фактично становится одним В«ЗвичайнийВ» додатком В«батьківськогоВ» операційної системи, з-под Якої вона запущена. Ідея тут Дуже проста: вікорістовуючі віртуальну пам'ять, Ми можемо зімітуваті віртуальний комп'ютер практично будь-якої складності: так что В«гостьовийВ» операційній Системі просто В«ПідсовуєтьсяВ» Віртуальна машина, яка Дуже схожа на В«фізічну" x86-машину. «óстьВ» пріймає В«обманкуВ» за Справжній комп'юте р - и Цілком успішно почінає на Цій віртуальній машіні, імітованої В«батьківськогоВ» ОС, працювати. Зверніть УВАГА, на ті, Що це НЕ підхід, аналогічній В«віртуальній машіні JavaВ» або емулятор стародавнього Sinclair, коли програма-емулятор віртуальної машини В«ВручнуВ» розбірає код Додатках и В«вручнуВ» ж Виконує шкірно его інструкцію. Гостьовий операційна система и ВСІ запущені в ее рамках програми Працюють на фізічніх ресурсах комп'ютера практично так само, як це Робить звичайне запущених на ньом додаток, а В«віртуалізується додатокВ» Тільки Забезпечує контроль над ним - тонюсінька прошарок кодом, підтрімана стандартними апаратними ресурсами комп'ютера. Давайте розберемо трошки детальніше, як таке віявляється можливіть. p> У нас є якісь апаратні ресурси, Які треба імітуваті. У архітектурі x86 їх, загаль-то, Всього три:
В· Регістрі процесора (Включаючі регістрі службового призначення). p> В· Псуй ВСТУП-Виведення (что Використовують для обміну інформацією з періферією). p> В· Оперативна пам'ять. p> Зх пункту 3 всі зрозуміло й так - пам'ять у нас Віртуальна, так что зімітуваті шматок ФІЗИЧНОЇ пам'яті В«батьківськогоВ» операційній Системі не стають особлівої праці. Псуй ВСТУП-Виведення - горішок трошки важче, альо оскількі Сучасні процесори дозволяють просто забороніті їх Використання конкретних програм, то вдається обдуріті гостьовий операційну систему, Заборона їй використовуват псуй ВСТУП-Виведення, перехоплюючі что вінікають при СПРОБА звернення до ціх портів помилки и імітуючі В«правильнихВ» реакцію віртуального комп'ютера на відповідну інструкцію. Оброблювачеві помилки неважко з'ясувати, что Цю Помилка віклікало, и в разі помилки звернення до порту вводу-виводу - В«ВручнуВ» віконаті Потрібні Операції. Проконтролюваті Зміни регістрів Неможливо, альо, на щастя, зазвічай цього й Не нужно. p> Альо є кілька непріємніх вінятків. Вісь, пріміром, вже згадуваній Регистр CR3, керуючий таблицею трансляції оператівної пам'яті. Власне, знаючи «³ртуальнеВ» Значення CR3, В«базовоюВ» операційній Системі неважко зімітуваті власне таблицю трансляції: Достатньо пов'язані з цієї табліці области віртуальної пам'яті помітіті помощью P-прапора, отріматі таким чином перехоплення всех звернень до цієї табліці, та сінхронізуваті Реальних таблицю трансляції з віртуальною, якові гостьовий операційна система пріймає за реальні (техніка В«Тіньовіх таблицю трансляціїВ», Shadow Page Table). Альо при цьом, на шкода, нужно якось обманюваті гостьовий операційну систему, В«підсовуючіВ» їй «³ртуальний CR3В» вместо реального, а коштів відповідного апаратного контролю звичайний x86-процесор НЕ надає.
В
Схема 6. Віртуалізація з гостьовий ОС. br/>
Ще одна проблема з тієї ж Серії - внутрішній Регистр процесора, что відповідає за «гвень прівілеївВ» потокового запущених Додатках. Процесори вікорістовує его, щоб перехоплюваті СПРОБА звернення В«ЗвичайнийВ» Додатків до В«НебезпечнаВ», В«НедозволеніВ» інструкцій и областях пам'яті; прізначається цею рівень прівілеїв операційною системою. Таких рівнів Всього Чотири; про Додатки Із завданні рівнем прівілеїв говорять, что смороду Працюють у відповідному кільці. Чім менше чисельного Значення даного параметра, тим больше можна відповіднім Додатків. У кільці 0 (Ring 0), пріміром, працює операційна система і (зазвічай) драйвера операційної системи; в кільці 3 (Ring 3) - В«звічайніВ» корістувальніцькі Додатки. Так від: довіряті В«гостьовийВ» операційній Системі Нульовий кільце НЕ можна - інакше Неможливо буде перехоплюваті деякі его Дії, оскількі в Нульовий кільці В«дозволено всеВ» и багатая перевіркі безпеки просто НЕ Працюють. Альо оскількі гостьовий операційна система, природно, за замовчуванням пріпускає, что ее нужно запускаті самє в Нульовий кільці, а перевіріті цею факт особлівої праці НЕ представляет, то ЦІЛКОМ ПРИРОДНО, что при спробі ее запуску в будь-якому Іншому кільці додаток-віртуалізатор доб'ється Хіба что ПОВІДОМЛЕННЯ про помилки. Тому, строго Кажучи, повноцінну імітацію В«ФізічногоВ» комп'ютера за помощью апаратни...