понятие о виртуальной машине.pptx
- Количество слайдов: 22
Тема 2. Изучение виртуальной машины. Установка операционной системы. Настройка интерфейса
Знакомство с технологией виртуальных машин Понятие «виртуальная машина» появилось на свет несколько десятков лет назад, еще в конце 60 -х годов прошлого века. Вот только применялись тогда виртуальные машины не на персональных компьютерах, а на «больших» ЭВМ типа IBM/370 (или их советского аналога — ЕС ЭВМ), да и задачи у них были несколько иные: предоставить каждому из многочисленных пользователей свой, независимый «кусочек» ресурсов вычислительного монстра.
Зачем нужны виртуальные машины Сегодня виртуальные машины переживают второе рождение и предоставляют пользователям (и/или администраторам вычислительных систем) целый ряд преимуществ. К ним в частности относятся: ü возможность установки на одном компьютере нескольких ОС без необходимости соответствующего конфигурирования физических жестких дисков; ü работа с несколькими ОС одновременно с возможностью динамического переключения между ними без перезагрузки системы; ü сокращение времени изменения состава установленных ОС; ü изоляция реального оборудования от нежелательного влияния программного обеспечения, работающего в среде виртуальной машины; ü возможность моделирования вычислительной сети на единственном автономном компьютере.
Благодаря этим преимуществам существенно расширяется круг задач, которые пользователь может решать без перезагрузки системы и без опасения нанести ей какой-либо ущерб или полностью вывести ее из строя. Вот только некоторые примеры таких задач: запуск приложений, предназначенных для работы в среде конкретной ОС; освоение новой ОС; тестирование одного приложения под управлением различных ОС; установка и удаление оценочных или демонстрационных версий программ; тестирование потенциально опасных приложений, относительно которых имеется подозрение на вирусное заражение; управление правами доступа пользователей к данным и программам в пределах виртуальной машины.
Как работает виртуальная машина Терминология Виртуальная машина – это экземпляр виртуальной вычислительной среды ( «виртуального компьютера» ), созданный с помощью специального программного инструмента. Обычно такие инструменты позволяют создавать и запускать произвольное число виртуальных машин, ограниченное лишь физическими ресурсами реального компьютера. Собственно инструмент для создания виртуальной машины (его иногда называют приложением виртуальных машин) – это обычное приложение, которое устанавливают на конкретную реальную операционную систему, именуемую «хозяйской» или «хостовой» операционной системой (от англ. термина host – «главный» , «базовый» , «ведущий» ).
Как работает виртуальная машина Терминология Все задачи по управлению виртуальными машинами решает специальный модуль в составе приложения – монитор. Монитор играет роль посредника во всех взаимодействиях между виртуальными машинами и базовым оборудованием, поддерживая выполнение всех созданных машин на единой аппаратной платформе и обеспечивая их надежную изоляцию.
Пользователь не имеет непосредственного доступа к монитору. В большинстве существующих программных продуктов ему предоставляется лишь графический интерфейс для создания и настройки виртуальных машин – консоль (рисунок 1). Рисунок 1 - Консоль виртуальных машин VMware. Workstation 6
На виртуальную машину пользователь устанавливает, как и на реальный компьютер, необходимую ему операционную систему. Такая операционная система называется «гостевой» . Перечень поддерживаемых гостевых операционных систем является одной из наиболее важных характеристик виртуальной машины
Архитектура системы виртуальных машин В процессе использования виртуальной машины у пользователя может возникнуть иллюзия, что он работает с автономным компьютером, который имеет собственные процессор, оперативную память, видеосистему и определенный набор внешних устройств, включая флоппи-дисковод и устройства чтения CD/DVD. На самом деле виртуальная машина не имеет доступа к физическим ресурсам реального компьютера. Работа с ними возложена на упоминавшийся ранее монитор, а также на драйвер виртуальных машин.
Архитектура системы виртуальных машин В упрощенном виде архитектура системы, в которой используются виртуальные машины, выглядит следующим образом (рисунок 2): хостовая операционная система и монитор виртуальных машин разделяют между собой права на управление аппаратными компонентами компьютера; при этом хостовая операционная система занимается распределением ресурсов между собственными приложениями (включая и консоль виртуальных машин); монитор виртуальных машин контролирует распределение ресурсов между запущенными виртуальными машинами, создавая для них иллюзию непосредственного доступа к аппаратному уровню (этот механизм называют виртуализацией); гостевые операционные системы в пределах выделенных им ресурсов управляют работой запущенных под их правлением приложений.
Приведенная архитектура является весьма общей, но представленные сегодня на рынке системы виртуальных машин имеют и существенные различия, обусловленные в первую очередь механизмом виртуализации. Система виртуальных машин может быть построена на базе различных платформ и использовать разные технологии. Схема виртуализации зависит как от аппаратной платформы, так и от особенностей работы с хостовой операционной системой и поддерживаемых гостевых операционных систем. Некоторые архитектуры обеспечивают возможность виртуализации на аппаратном уровне, другие требуют дополнительных программных ухищрений.
Рисунок 2 - Архитектура системы виртуальных машин
Виды виртуальных машин Система виртуальных машин может быть построена на базе различных платформ и при помощи разных технологий. Используемая схема виртуализации зависит как от аппаратной платформы, так и от особенностей «взаимоотношений» хостовой ОС и поддерживаемых гостевых ОС. Некоторые архитектуры обеспечивают возможность виртуализации на аппаратном уровне, другие требуют применения дополнительных программных ухищрений. В настоящее время распространение получили три схемы виртуализации: эмуляция API гостевой ОС; полная эмуляция гостевой ОС; квазиэмуляциягостевой ОС.
Виртуальные машины с эмуляцией API гостевой ОС Обычно приложения работают в изолированном адресном пространстве и взаимодействуют с оборудованием при помощи интерфейса API (Application. Programming. Interface – интерфейс прикладного программирования), предоставляемого операционной системой. Если две ОС совместимы по своим интерфейсам API (например, Windows 98 и Windows. ME), то приложения, разработанные для одной из них, будут работать и под управлением другой. Если же две ОС несовместимы, необходимо обеспечивать перехват обращений приложений к API гостевой ОС и имитировать ее поведение средствами хостовой ОС. При таком подходе можно установить одну операционную систему и работать одновременно как с ее приложениями, так и с приложениями другой ОС.
Виртуальные машины с эмуляцией API гостевой ОС Поскольку весь код приложения исполняется без эмуляции, а эмулируются лишь вызовы API, такая схема виртуализации приводит к незначительной потере в производительности виртуальной машины. Однако в силу того, что многие приложения используют недокументированные функции API или обращаются к ОС в обход API, даже очень хорошие эмуляторы API имеют проблемы совместимости и позволяют запускать не более 70% от общего числа приложений. Кроме того, поддерживать эмуляцию API бурно развивающейся ОС (например, такой как Windows) очень нелегко, и большинство эмуляторов API так и остаются эмуляторами конкретной операционной системы.
Примеры продуктов, выполненных по технологии эмуляции API гостевой операционной системы: проект с открытым кодом Wine, позволяющий запускать DOS-, Win 16 - и Win 32 приложения под управлением ОС Linux и Unix; продукт Win 4 Lin компании Netraverse, позволяющий запускать ОС семейства Windows под управлением ОС Linux; проект с открытым кодом DOSEMU, позволяющий запускать DOS-приложения под управлением ОС Linux; проект с открытым кодом User. Mode. Linux (UML), позволяющий запускать несколько копий ОС Linux на одном компьютере (в настоящее время встроен в ядро Linux версии 2. 6); технология Virtuozzo, разработанная российской компанией SWsoft и позволяющая запускать несколько копий ОС Linux на одном компьютере.
Виртуальные машины с полной эмуляцией гостевой ОС Проекты, поддерживающие технологию полной эмуляции, работают по принципу интерпретации инструкций из системы команд гостевой операционной системы, при этом полностью эмулируется поведение как процессора, так и всех внешних устройств, то есть существует возможность эмулировать компьютер с архитектурой Intelx 86 на компьютерах с совершенно другой архитектурой, например на рабочих станциях Mac или серверах Sun с RISC-процессорами.
Виртуальные машины с полной эмуляцией гостевой ОС Основной недостаток полной эмуляции заключается в существенной потере производительности гостевой операционной системы, поэтому до недавнего времени виртуальные машины с полной эмуляцией чаще всего использовались в качестве низкоуровневых отладчиков для исследования и трассировки операционных систем. В настоящее время, благодаря значительному росту вычислительных мощностей, виртуальные машины с полной эмуляцией вполне конкурентоспособны. Наиболее яркий представитель этого вида виртуальных машин – продукт Virtual. PC фирмы Connectix (ныне купленной Microsoft).
В качестве других примеров проектов, выполненных по технологии полной эмуляции, можно назвать следующие: ü проект с открытым кодом Bochs, позволяющий запускать различные операционные системы Intelx 86 под Linux, Windows, Be. OS и Mac. OS; ü продукт Simics компании Virtutech, позволяющий запускать и отлаживать различные операционные системы Intelx 86 под управлением Windows и других операционных систем; ü проект Qemu – эмулятор различных архитектур на ПК.
Виртуальные машины с квазиэмуляцией гостевой ОС Технология квазиэмуляции гостевой операционной системы основана на том, что далеко не все гостевые операционные системы нуждаются в эмуляции средствами хостовой операционной системы. Многие из инструкций, необходимых для корректной работы «гостевых» приложений, могут быть непосредственно адресованы хостовой операционной системе. Исключение составляют инструкции для управления такими устройствами, как видеокарта, IDE-контроллер, таймер и некоторыми другими. В процессе работы виртуальной машины с квазиэмуляцией происходит выборочная эмуляция инструкций гостевой операционной системы. Очевидно, что производительность такой виртуальной машины должна быть выше, чем у виртуальной машины с полной эмуляцией. Тем не менее, при достигнутых уровнях производительности персональных компьютеров разница оказывается не столь ощутимой.
Примеры проектов, выполненных по технологии квазиэмуляции: технология Virtual. Platform, на базе которой компания VMware предлагает следующие продукты: VMware Workstation, VMware Server, VMware ESX Server, VMware Virtual. Center, VMware ACE и VMware Player; виртуальная машина Serenity. Virtual. Station (SVISTA) (бывшая two. OStwo), разработанная российской компанией Parallels по заказу немецкой компании Net. Sys. Gmb. H; проект с отрытым кодом Plex 86, позволяющий запускать различные операционные системы Intelx 86 под управлением Linux; проект с открытым кодом L 4 Ka, использующий микроядро; проект с открытым кодом Xen, позволяющий запускать модифицированные операционные системы Linux, Free. BSD, Net. BSD и Windows. XP под управлением Linux, Free. BSD, Net. BSD и при соблюдении некоторых условий обеспечивающий даже прирост производительности.
Сферы применения виртуальных машин Приведем небольшой перечень сфер применения виртуальных машин: защита информации и ограничение возможностей процессов – так называемая «песочница» ; исследования производительности программного обеспечения или новой компьютерной архитектуры; эмуляция различных архитектур; оптимизация использования ресурсов мейнфреймов и прочих мощных компьютеров; моделирование информационных систем с клиент-серверной архитектурой на одной ЭВМ (эмуляция компьютерной сети с помощью нескольких виртуальных машин); упрощение управления кластерами – виртуальные машины могут просто мигрировать с одной физической машины на другую во время работы.