Виртуальные машины и средства их создания
Часть 1. Microsoft Virtual PC 2004
Как работают виртуальные машины
Зачем нужны виртуальные машины
Понятие «виртуальные машины» существует не один десяток лет и пришло к нам из эпохи расцвета мэйнфреймов. В те времена виртуальные машины представляли собой отдельные рабочие пространства, отличающиеся индивидуальными настройками, и позволяли в той или иной степени персонализировать рабочие среды многочисленных пользователей, совместно эксплуатирующих один и тот же мэйнфрейм.
егодня, в эпоху персональных компьютеров и иных устройств индивидуального применения, проблема персонализации рабочего пространства уже не стоит столь остро. Однако технология виртуальных машин, пережившая второе рождение в конце 90-х годов, применяется сегодня довольно активно — в последнее время средства создания виртуальных машин являются одним из часто используемых инструментов в лабораториях и отделах тестирования программного обеспечения, в компаниях, специализирующихся на разработке приложений, в исследовательских отделах компаний-разработчиков, а также в учебных центрах.
Как работают виртуальные машины
ля функционирования современных виртуальных машин требуется средство управления виртуальными машинами, являющееся Windows-, Linux- или UNIX-приложением (собственно, этим средствам и посвящен настоящий мини-обзор), функционирующим на реальном компьютере, называемом хостом. Сама виртуальная машина представляет собой образ файловой системы, формирующийся при установке какой-либо операционной системы (в общем случае отличной от той, под управлением которой функционирует средство управления виртуальными машинами) и хранящийся в виде файла или расположенный в выделенном разделе жесткого диска. С помощью средства управления виртуальными машинами можно загрузить в выделенное адресное пространство образ операционной системы виртуальной машины (такая операционная система носит название Guest Operation System — гостевая операционная система, в отличие от исходной операционной системы, носящей название Host Operation System — операционная система хоста). После этого операционная система виртуальной машины будет способна взаимодействовать с аппаратным обеспечением компьютера (например, с видеоадаптером, звуковой картой, клавиатурой, мышью, сетевыми адаптерами). Таким способом можно, например, при работающей операционной системе Wnidows XP загрузить операционную систему Linux в выделенное для нее адресное пространство и переключаться между обеими операционными системами, не занимаясь перезагрузкой компьютера. Кроме того, в ряде случаев можно использовать буфер обмена для обмена данными между этими операционными системами или осуществлять сетевое взаимодействие между ними, как если бы это были два разных компьютера. Можно одновременно загрузить и более одной виртуальной машины — лишь бы для этого было достаточно оперативной памяти (ее, естественно, должно быть много, ведь в оперативной памяти при загрузке виртуальной машины оказывается еще одна операционная система).
Зачем нужны виртуальные машины
аиболее часто виртуальные машины применяются разработчиками программного обеспечения, влияющего на настройки операционных систем, например инсталляционных приложений. Поскольку любой тестовый запуск инсталляционного приложения может внести изменения в настройки операционной системы (реестр, файлы конфигурации, переменные окружения, пиктограммы на рабочем столе и т.д.), желательно, чтобы эти изменения были легко обратимы. Тестирование инсталляционного приложения на виртуальной машине вместо реальной, как минимум, не нарушит работоспособности реальной операционной системы, а виртуальную машину всегда можно восстановить с резервной копии. Кроме того, создать «чистую» версию операционной системы (то есть без установленных приложений) для тестирования подобных и других приложений в виде виртуальной машины намного проще, нежели в виде реального компьютера.
Еще один типичный пример применения виртуальных машин — тестирование приложений под управлением разных операционных систем (например, Windows 2000, Windows XP и Windows 98 различных языковых версий). Подобное тестирование обычно производится при разработке коробочных продуктов и в проектах, предполагающих наличие у заказчика парка действующих рабочих станций и серверов, приобретенных в различные годы.
Помимо указанных случаев существует несколько чуть менее распространенных примеров применения виртуальных машин: использование продукта, неработоспособного на имеющейся платформе (например, написанного много лет назад DOS-приложения); тестирование работоспособности самих операционных систем или сетевых служб; документирование продуктов, предназначенных для платформы, отличной от той, что используется для подготовки документации; демонстрация продуктов для различных платформ и их взаимодействия на одном компьютере; подготовка учебных классов к занятиям путем копирования на рабочие станции виртуальных машин с настроенным программным обеспечением; техническая поддержка многоплатформенных продуктов.
Рассмотрев, что представляет собой современная технология виртуальных машин и где она применяется, перейдем к рассказу о наиболее распространенных средствах управления ими. Сегодня на рынке указанной категории средств лидируют две компании: Microsoft (после приобретения ею компании Connectix) и VMware, Inc.
Microsoft Virtual PC 2004
редство управления виртуальными машинами Microsoft Virtual PC основано на технологиях, разработанных компанией Connectix. Один из первых продуктов Connectix был предназначен для выполнения Windows-приложений на компьютерах под управлением Mac OS, а Windows-версия этого продукта появилась в 2001 году. Компания Connectix была приобретена корпорацией Microsoft в 2003 году, и вскоре после этого была выпущена версия Virtual PC 2004.
Microsoft Virtual PC предназначен главным образом для работы с различными версиями Windows. Сам продукт выполняется под управлением Windows XP Professional, Windows 2000 Professional или Windows XP Tablet PC Edition, а операционные системы для виртуальных машин, полностью поддерживаемые данным продуктом, включают Windows 95, Windows 98, Windows Me, Windows NT 4.0 Workstation, Windows 2000 Professional, Windows XP, MS-DOS, OS/2 Warp Version 4 Fix Pack 15, OS/2 Warp Convenience Pack 1, OS/2 Warp Convenience Pack 2 (рис. 1 и 2).
Рис. 1. Средство управления виртуальными машинам
Рис. 2. Тестирование приложения, выполняющегося под управлением различных операционных систем, с помощью Virtual PC
При необходимости Virtual PC позволяет создавать виртуальные машины и с серверными версиями Windows, а также с некоторыми другими операционными системами, такими как Red Hat Linux, Novell NetWare и др.
Технические требования для Microsoft Virtual PC невысоки: процессор AMD Athlon/Duron, Intel Celeron или Pentium II/III/4 с тактовой частотой от 400 МГц, CD-ROM, монитор с разрешением 800Ѕ600. Однако сами по себе виртуальные машины могут быть весьма требовательны к ресурсам — это зависит от операционных систем, которые загружаются в виртуальные машины (см. таблицу). При этом следует иметь в виду, что для определения реальной потребности в оперативной и дисковой памяти следует просуммировать требования, предъявляемые к ним исходной операционной системой и операционными системами всех виртуальных машин, которые предполагается запускать одновременно.
Из технических особенностей Microsoft Virtual PC следует отметить разнообразные способы эмуляции сетевого взаимодействия, начиная с ее отсутствия и заканчивая интеграцией в локальную сеть, в которую включен хост (эмулируется до четырех виртуальных сетевых адаптеров), а также поддержка эмуляции сетевого взаимодействия с другими виртуальными машинами как с отдельными компьютерами и трансляции адресов NAT. Microsoft Virtual PC поддерживает до 4 Гбайт оперативной памяти, обмен данными между виртуальными машинами и операционной системой хоста с помощью буфера обмена и операций drag-and-drop, синхронизацию времени. В качестве виртуальных жестких дисков данный продукт позволяет использовать файлы как фиксированного, так и плавающего размера, а также реальные жесткие диски или их разделы. Отметим, что при наличии на жестком диске нескольких операционных систем, установленных в разных разделах, Virtual PC позволяет загрузить неактивную операционную систему в качестве гостевой.
Минимальные требования различных операционных систем для их выполнения под управлением виртуальных машин
Из иных особенностей работы с дисками следует обратить внимание на средства коллективной работы с одним и тем же образом жесткого диска с сохранением изменений отдельно для каждого пользователя, а также на возможность отмены всех изменений, сделанных пользователем в данном сеансе работы (последняя функция особенно полезна при тестировании инсталляционных приложений). Отметим также, что предусмотрено сохранение состояния виртуальной машины — в этом случае при ее повторном старте операционная система окажется уже загруженной, а приложения — запущенными.
Из параметров, доступных для конфигурации, следует назвать долю процессорного времени, потребляемую виртуальной машиной, средства сетевого доступа, конфигурацию дисководов, цветовое разрешение, правила захвата мыши при щелчке в окне виртуальной машины, а также правила безопасности, позволяющие заблокировать те или иные возможности манипуляции виртуальными машинами для пользователей, не имеющих административных прав (рис. 3).
Рис. 3. Средства конфигурирования виртуальной машины
Ознакомительную версию Virtual PC 2004 и дополнительную информацию об этом продукте можно найти по адресу http://www.microsoft.com/windowsxp/virtualpc/.
В следующем номере мы расскажем о продуктах компании VMware — еще одного лидера рынка средств управления виртуальными машинами.