По принципу матрешки…

Не знаю кто как, а я очень люблю экспериментировать на своем компьютере с разными операционками, драйверами и программными пакетами. Однако в таких случаях есть опасность получить в конечном итоге неработоспособную систему. Поэтому для такой деятельности я выделил отдельный раздел на винчестере с установленной WinXP. В случае фатальных сбоев можно просто восстановить систему из архива.
К сожалению, такой метод непригоден, если надо поставить другой тип операционки, например Linux или OS/2, так как в этих случаях придется перекраивать разделы. Выход был найден — VMware. После недели плотного изучения этого продукта, весьма довольный, я решил познакомить с ним читателей “Мегабайта”.

Итак, VMware — это виртуальный компьютер, работающий в среде Windows и Linux, в зависимости от используемой версии. Можно ставить любую 16- и 32-разрядную ОС, которая поддерживает семейство процессоров х86.
Можно сказать что это программная прослойка между оборудованием и операционными системами, эффективная работа которой достигается благодаря полному использованию возможностей процессора. VMware аппаратными средствами перехватывает обращения из виртуальной среды к портам ввода-вывода, через которые производится обмен данными с оборудова­нием, а также вызовы привилегированных команд процессора, требующих выполнения в ring-0. Пройдя через программу, эти запросы превращаются в вызовы подпрограмм внешней ОС. Причем можно создать столько виртуальных машин (ВМ), сколько физически потянет ваш реальный компьютер (ХМ — хост-машина). Следует помнить, что каждая ВМ отъедает определенное количество памяти и дискового пространства.

Работа с системой VMware состоит из нескольких этапов.
Создание виртуальной машины. Выбираем пункт “New virtual machine” и мастер настроек пошагово будет создавать конфигурацию нашей ВМ. Нет смысла подробно расписывать каждый пункт, выскажу лишь общие рекомендации и замечания.
Можно выбрать стандартную конфигурацию — так проще и быстрее. Когда машина будет создана, по нажатию правой кнопки мыши вы попадете в меню конфигурации, где можно изменить любой параметр.
Выбор гостевой ОС влияет на возможность загрузить ту или иную операционку.
Для начала стоит отказаться от создания ВМ с поддержкой сети. Вообще, инсталлятор VMware ставит на ХМ несколько виртуальных сетевых адаптеров, правильное конфигурирование которых очень непростое дело. В ненастроенном же состоянии они мешают службе удаленного доступа, поэтому их стоит вначале отключить совсем. О том, как настроить сеть в ВМ, я расскажу ниже.
Теперь с помощью пункта “Edit virtual machine settings” можно изменить и оптимизировать параметры. В частности, объем оперативки желательно поставить на уровне примерно 1/3 от объема памяти ХМ, иначе все будет здорово тормозить. Стоит заметить, что система работает как с физическими носителями, так и с виртуальными. Дисководами и CD-приводами можно назначить устройства ХМ или образы дисков в формате iso. С образами все работает гораздо веселее, поэтому если есть место на винчестере, лучше использовать их. И вообще, винчестер, floppy-дисководы и CD-ROM относятся к тем типам устройств, которые стандартизованы настолько, что в подавляющем большинстве случаев работают в любой гостевой ОС безо всякой настройки. Также к числу стандартизованных устройств можно отнести COM- , LPT- и PS/2-порты.
Замечу, что обращаться из виртуальной машины к физическим дискам следует крайне осторожно. Хотя VMware и использует в этом случае драйверы внешней ОС, работа с диском производится не на уровне файловой системы, а на уровне физических секторов, поскольку именно на этом уровне программа перехватывает обращения драйвера гостевой ОС к диску. Из этого вытекают следующие ограничения:
– гостевая ОС не будет получать уведомлений, когда файловая система изменяется внешней ОС;
– теоретически возможно (но мною не проверялось), что внешняя ОС получает уведомление, когда VMWare модифицирует данные на диске на нижнем уровне и файловая система должна быть перечитана;
– внешняя ОС должна блокировать обращения из VMware к критически важным файлам, но в случае с Windows XP это не происходит, потому что Windows производит блокировку таких файлов не на уровне секторов, а на уровне файловой системы (например, попробуйте открыть из VMware файл /mnt/windows/winnt/system32/config/system).
На практике в VMware существует еще одно ограничение: изменения в файлах, сделанные во внешней ОС после запуска гостевой, не видны в гостевой системе даже после перемонтирования соответствующей файловой системы. Данную проблему можно решить, открыв в Windows нужные папки в сетевой доступ (не забыв указать $ в конце сетевого имени и назначив максимально строгие права доступа!), а в гостевой ОС подключиться к ним через вир­туальную локальную сеть.
К слову сказать, VMware эмулирует компьютер на базе чипсета Intel BX. Ясно, что конфигурация не удовлетворяет современным требованиям, но позволяет работать с основным набором софта. Имеется возможность выбирать, какие драйверы и сервисы должны загружаться автоматически при старте ОС внутри VMware, а какие — при аппаратном старте. Однако остается еще одна проблема — проблема устройств, которые присутствуют и в физической конфигурации, и в среде VMware, но в обоих случаях имеют разный тип. Дело в том, что VMware не предоставляет запускаемой операционной системе прямого доступа ко всему физическому оборудованию, поскольку оно уже используется внешней системой и не может быть поделено. Вместо этого в среде программы присутствуют так называемые виртуальные устройства, то есть программные имитации устройств физических (см. таблицу 1 и рис. 1).

1

В качестве хост-машины использовался компьютер Celeron 900 / 256 / 40 с WinXP. В качестве гостевых ОС были выбраны Win­dows 98, Windows XP и ASP Linux (рис. 2).

2

Установка систем с загрузочных CD проблем не вызвала. Инсталляторы ничего не заподозрили, конфигурация оборудования была определена корректно. Win98 поставилась за 45 минут, XP — за 70, Linux — за час.
Затем были установлены офисный пакет и Photoshop. Офис чувствовал себя нормально, а вот Photoshop крайне тормозил, но это и понятно — 98 Мбайт оперативки для него явно мало даже на реальной машине. Все остальные программы работали “на ура”. Ради интереса я посмотрел, как идут игрушки. К сожалению (а может, и наоборот, к счастью), современные игрушки на систему поставить нельзя, так как эмулируемая видеокарта не имеет 3D-ускорителя. Старый добрый DooM 2 и Quake 2 забегали без вопросов.

nf,1

У читателя может возникнуть интересный вопрос — какую систему внутри какой запускать? Я не знаток Linux, но, рассуждая логически, пришел к выводу: схема “Linux внутри Windows”, подходит лучше по следующим причинам:
– Linux можно запустить без графического интерфейса;
– в Linux легче варьировать количество запускаемых сервисов, уменьшая таким образом размер ОЗУ и скорость процессора, требуемые для комфортной работы;
– Linux-приложения лучше приспособлены для запуска в среде с малым количеством ресурсов (хотя с этим можно поспорить);
– в Linux проще отключить использование тех или иных физических устройств, которые в виртуальной среде не нужны, отсутствуют или имеют другие параметры;
– важно, что, в отличие от Windows, для Linux все перечисленное может быть выполнено в момент загрузки полностью (или почти) автоматически.
У Windows имеются некоторые преимущества в качестве внешней ОС:
– в отличие от Linux, в котором при инсталляции VMware требуется компилировать драйверы устройств, если только конкретный дистрибутив и конкретная версия ядра не поддерживаются, при инсталляции под Windows такой необходимости нет;
– VMware требует, чтобы внешняя ОС работала в графическом режиме.
Таким образом, текстовый интерфейс внутри быстрой графической системы (Linux в VMWare в Windows) по сравнению с графическим — внутри медленной (Windows в VMWare в Linux) оказывается проще, компактнее и быстрее.

Работа в сетевом режиме
Как я уже писал, при инсталляции VMWare добавляет во внешнюю ОС несколько логических сетевых интерфейсов, не имеющих привязки ни к какой физической сетевой карте. Эти интерфейсы предназначены для связи с гостевыми ОС. Как упоминалось, в гостевой среде VMWare имитирует сетевую карту AMD 79xxx. Сеть TCP/IP между гостевой и внешней ОС (далее — гостевая сеть) может иметь один из трех типов:
– изолированная, то есть гостевая ОС видна только из внешней и видит только внешнюю;
– защищенная, то есть гостевая ОС может обращаться в наружную сеть через NAT во внешней ОС, и при этом видна только из внешней ОС, но не из наружной сети;
– прозрачная, то есть через IP-мост (bridge) в гостевую сеть транслируются все IP-пакеты из наружной сети, а из гостевой сети — в наружную.
В первых двух режимах VMware предоставляет в гостевую сеть сервис DHCP, чтобы гостевая ОС могла автоматически загружать настройки TCP/IP. В третьем режиме гостевая система сможет пользоваться любым незанятым IP-адресом из наружной сети: внешняя ОС модифицирует свою ARP-таблицу, добавляя в нее IP-адрес виртуальной сетевой карты из гостевой системы. Благодаря этому гостевая система станет видна в настоящей сети.
VMware позволяет гибко манипулировать виртуальными сетями, создавая так называемые Custom-интерфейсы, добавляя больше одной сетевой карты в гостевую среду и так далее. На практике же подавляющему большинству пользователей будет достаточно одного из трех стандартных режимов.
Итак, следует признать, что описываемый программный продукт очень интересен, полезен и весьма прост в использовании. Его можно смело рекомендовать всем, кто хочет поэкспериментировать с программным обеспечением и защитить свою систему от неприятных сюрпризов.


Рекомендуем почитать: