Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Виртуальные машины и их возможности

Содержание:

Введение

Системы виртуальных машин позволяют запускать в одной информационной среде несколько различных операционных систем (ОС) одновременно. Более того, в зависимости от технологий виртуализации можно оперативно переходить от работы в одной системе к работе в другой без необходимости перезапуска компьютера. Работа гостевой (виртуальной) операционной системы максимально приближена к работе реальной ОС и в некоторых случаях ничем от нее не отличается.

Преимущества, которые дает такой подход несложно вообразить. К ним относятся:

1. возможность установки на один компьютер нескольких ОС без необходимости конфигурирования (разбиения на разделы и форматирования) физических жестких дисков;

2. работа с нескольких операционных систем одновременно с возможностью быстрого переключения между ними;

3. возможность изоляции реального оборудования от нежелательного влияния программного обеспечения (ПО), работающего в виртуальной машине;

4. моделирование сложных вычислительных систем (связанных сетевых операционных систем) на одном компьютере.

Технологии виртуальных машин и принципы работы.

В настоящее время существует множество виртуальных машин и систем виртуализации, таких как WMware, Microsoft Virual PC, QEMU, OpenVZ, UML, Virtual BOX.

В настоящее время существует множество схем виртуализации, таких как динамическая рекомпиляция, аппаратная виртуализации. Остановимся на трех наиболее распространенных и перспективных технологиях более подробно:

1. эмуляция API гостевой операционной системы;

2. полная виртуализация;

3. паравиртуализация.

Обзор технологии виртуальных машин

Обычно приложения работают в изолированном адресном пространстве и взаимодействуют с оборудованием при помощи API, предоставляемым операционной системой. Если две операционные системы совместимы по своим АРI (например, Windows 98 и Windows 2000), то приложения, разработанные для одной из них, будут работать и на другой. Если две операционные системы несовместимы по своим API (например, Windows 2000 и Linux), то существует способ перехватить обращения приложений к АРI и сымитировать поведение одной операционной системы средствами другой операционной системы. При таком подходе можно поставить одну операционную систему и работать одновременно как с ее приложениями, так и с приложениями другой операционной системы. Поскольку весь код приложения исполняется без эмуляции и лишь вызовы API эмулируются, потеря в производительности незначительная. Но из-за того, что многие приложения используют недокументированные функции API или обращаются к операционной системе в обход API, даже очень хорошие эмуляторы API имеют проблемы совместимости и позволяют запустить не более 70% от общего числа приложений. Кроме того, поддерживать эмуляцию API бурно развивающейся операционной системы (например, такой как Windows) очень нелегко, и большинство эмуляторов АРI так и остаются эмуляторами какой-то конкретной версии операционной системы.

Самый большой минус способа эмуляции API - это его строгая ориентация на конкретную операционную систему. Для того, чтобы запустить в нем приложения другой операционной системы, необходимо все переписывать с нуля.

Примеры продуктов использующих эмуляция API операционной системы:

· проект WINE, позволяющий запускать приложения DOS, Win16 и Win32 под операционными системами Unix/Linux;

· проект с открытым кодом User Mode Linux (UМL), позволяющий запускать несколько копий операционной системы Linux на одном компьютере (встроен в ядро Linux версий 2.6);

· технология, используемая во FreeBSD для запуска приложений Linux. Преимущество такого метода эмуляции, скорость работы. Недостаток, отсутствуют возможности многоплатформенного использования.

Полная виртуализация

Проекты, выполненные по технологии полной виртуализации работают как интерпретаторы. Они последовательно выбирают код гостевой операционной системы и эмулируют поведение каждой отдельно взятой инструкции. Поскольку при этом полностью эмулируется поведение как процессора, так и всех внешних устройств виртуального Intel х86 компьютера, то существует возможность запускать эмулятор на компьютерах с совершенно другой архитектурой, например, на рабочих станциях Mаc или на RISC'овых серверах Sun.

Самый серьезный недостаток этого подхода заключается в катастрофической потере производительности гостевой операционной системы. Скорость работы гостевых приложений может упасть очень значительно, что означает практическую невозможность нормальной работы с гостевой операционной системой внутри эмулятора. Тем не менее, существуют некоторые технологии, такие как динамическая трансляция, позволяющие увеличить скорость полной эмуляции. Полные эмуляторы чаще всего используются в качестве низкоуровневых отладчиков для исследования и трассировки операционных систем.

Преимущество полной виртуализации - отличная совместимость и возможность многоплатформенного использования. Основным недостатком является медленная скорость работы гостевых операционных систем.

Паравиртуализация

Паравиртуализация - еще один способ, который имеет некоторые сходства с полной виртуализацией. Этот метод использует гипервизор для разделения доступа к основным аппаратным средствам, но объединяет код, касающийся виртуализации, в непосредственно операционную систему. Этот подход устраняет потребность в любой перекомпиляции или перехватывании, потому что сами операционные системы кооперируются в процессе виртуализации.

Паравиртуализация требует, чтобы гостевая операционная система была изменена для гипервизора, и это является недостатком метода. Но зато паравиртуализация предлагает производительность почти как у реальной не виртуализированной системы. Как и при полной виртуализации, одновременно могут поддерживаться многочисленные различные операционные системы.

Преимущество такого метода виртуализации - отличная совместимость и возможность многоплатформенного использования при сохранении хорошей скорости работы. Недостатком является необходимость модифицирования гостевой операционной системы для гипервизора.

Примеры Полной виртуализация и паравиртуализация

Примеры проектов, выполненных по технологии полной эмуляции:

· проект с открытым кодом Bochs, позволяющий запускать различные операционные системы Intel х86 под Linux, Windows, BeOS и Мас OS;

· продукт Virtual PC фирмы Microsoft позволяющий запускать различные x86-ОС на PC и Mac;

· проект Qemu - самый быстрый эмулятор различных архитектур на PC. При использовании модуля Accelerator практически сравнивается по производительности с виртуальными машинами.

Примеры проектов, выполненных по технологии полной паравиртуализации: виртуальный операционный программный эмуляция

· продукт Xen - «паравиртуальный» монитор виртуальных машин (VMM), или гипервизор. Xen способен поддерживать одновременную работу большого числа виртуальных машин на одной физической, при этом не тратя значительных вычислительных ресурсов;

· продукт Microsoft Hyper-V представляет - решение для виртуализации серверов в корпоративных средах.

Принцип работы виртуальных машин

Система виртуальных машин может быть построена на базе различных аппаратных платформ при помощи разных технологий. Схема виртуализации может отличаться в зависимости, как от используемой платформы, так и от выбора определенной операционной системы. Однако существующие ОС напрямую работают с процессором и внешними устройствами. Для работы с такими операционными системами, наш гипервизор должен уметь отлавливать обращения к системным ресурсам и эмулировать их поведение.

Основные аппаратные ресурсы, которые нужно имитировать это:

1. регистры процессора (включая регистры служебного назначения);

2. порты ввода-вывода (использующиеся для обмена информацией с периферией);

3. оперативная память.

Операционная система, управляющая реальным оборудованием и предоставляющая функции для доступа к нему, называется «хостовой операционной системой». Хостовая операционная система загружается самостоятельно и не требует виртуальной машины для своей работы. Операционные системы, работающие в виртуальных машинах, называются «гостевыми операционными системами». На одном физическом компьютере может быть запущена одна хостовая и много гостевых операционных систем.

Общая системная архитектура виртуальной машины построена на взаимодействии трех основных компонентов:

· приложение виртуальной машины;

· драйвер виртуальных машин;

· монитор виртуальной машины.

Разновидности виртуальных машин

Существует множество разновидностей виртуальных функционирующих по различным схемам виртуализации, предназначенных для решения широкого круга задач. На корпоративном уровне используются такие гипервизоры как Microsoft Hiper-V Server, Xen, VMvare-ESX. Для запуска устаревших DOS приложений под windows и *nix существуют такие эмуляторы как DOSbox или DOSEMU. Для полноценной виртуализации операционных систем для наиболее распространенных платформ существуют такие решения как:

· Parallels;

· VirtualBox;

· Microsoft VirtualPC;

· VMware Workstation/Server.

Дальнейший обзор технологий виртуализации будет построен на описании следующих трех виртуальных машин:

VMware Server;

Microsoft VirtualPC;

VirtualBOX

Заключение

Постоянно растущий интерес к компьютерным технологиям виртуализации в текущее время не случаен. Вычислительная мощь нынешних процессоров быстро растет, и вопрос даже не в том, на что эту мощь расходовать, а в том, что современная «мода» на двуядерные и многоядерные системы, проникшая уже и в персональные компьютеры (ноутбуки и десктопы), как нельзя лучше позволяет реализовать потенциал идей виртуализации операционных систем и приложений, выводя удобство пользования компьютером на новый качественный уровень. Технологии виртуализации становятся одним из ключевых компонентов в новых и будущих процессорах Intel и AMD, в операционных системах от Microsoft и других компаний.Пример таких технологий: Intel Virtualization Techology for x86 (Intel-VT) и AMD «Pacifica». Такие аппаратные разработки значительно ускоряют системы виртуальных машин и упрощают задачи виртуализации.

Список литературы

1. http://www.securitylab.ru/

2. Гультяев А.К., Виртуальные машины: несколько компьютеров в одном А.К. Гультяев: Издательский дом «Питер», 2008

3. http://www.citforum.ru/