СофтFeрра, или Сбылась мечта шизофреника
Архив1 апреля, обходя окрестности сервера www.vmware.com в поисках обновлений, я обнаружил вполне соответствующий духу дня пресс-релиз о том, что известная корпорация Microsoft заключила с известной пока несколько меньше компанией VMware соглашение о поставках предустановленных на продукцию VMware OEM-версий Windows 98 и 2000.
Эка невидаль, скажете вы, да мало ли у Microsoft OEM-партнеров?! Таких - мало, пока один, поскольку "железо", выпускаемое VMware, - самое мягкое в мире.
x86 под Х
Программный эмулятор x86-платформ VMware 2.0 реализован под Linux/X Window и под MS Windows NT/2000, а в качестве официально поддерживаемых виртуальной машиной "гостевых" (то есть устанавливаемых на сем "программном железе") софт-платформ перечислены FreeBSD, Linux, MS-DOS и Windows 3.1x/9x/NT/2000.
VMware позиционируется прежде всего как средство для разработчиков и инженеров служб поддержки: если обслуживаешь мультиплатформные приложения, очень неплохо иметь возможность запустить любую из десятка платформ в разных конфигурациях в течение нескольких секунд, не отрывая... мышки от коврика, в общем. В этих целях ее и используют в таких компаниях, как IBM и Network Associates, кстати. Обратная сторона такого позиционирования - цена продукта: сегодня он стоит триста баксов (студентам скидка), а бесплатная тестовая лицензия для полнофункционального использования выдается на месяц.
Но сфера полезности эмулятора не ограничивается исследовательскими лабораториями и службами поддержки, и сегодня я буду обсуждать пользовательскую перспективу этого пока недешевого продукта.
Ограничусь вариантом хозяина-Linux и гостя-Windows 9x. Он наиболее актуален для России: из-за мешанины в кодовых таблицах проблема унаследованных Windows-приложений и данных при миграции выросших из коротких штанишек предприятий на открытые системы стоит у нас гораздо острее, чем в latin1-ойкумене, и порождает порой немыслимые топологии локальных сетей (шизофрения как национальный третий путь?), TCO которых не возьмется просчитать и нобелевский лауреат по экономике. А то и тормозит эту миграцию на неопределенное время.
Если таких приложений немного, если они не слишком "прожорливые" в плане вычислительных ресурсов и используются не слишком часто, в транзитный период запуск Windows под эмулятором может быть привлекательной альтернативой (дешевой, а главное, локализующей "шизу" в рамках отдельных френ... фреймов, то есть) гетерогенной сети.
Установка VMware (по крайней мере, под Red Hat и ее потомством [1]) проходит без проблем.
Практикум
WMware позволяет создать неограниченное число виртуальных машин - описаний конфигурации, к которым могут присовокупляться образы виртуальных дисков. Задать новую конфигурацию проще всего с помощью Wizard'а. Указываем гостевую ОС (Windows 98), объем памяти (мегабайта так 32), "устанавливаем" в слот Primary-Master виртуальный диск (мегабайт на 300), обязательно "устанавливаем" виртуальный сетевой адаптер Host Only Networking [2], "устанавливаем" в слот CD-ROM - физический CD-ROM, и - все, поехали, виртуальная машина начального уровня создана.
Дальше все тривиально. "Включаете" машину, нажав соответствующую кнопку в окне VMware, и... машина запускается: загружается BIOS, тестируется память, полный вперед. Жмите F2 и говорите: грузись с CD-ROM.
После загрузки надлежит отформатировать виртуальный диск, а поскольку это именно диск ("винт", HDD, НЖМД), а не раздел, его следует предварительно разметить программой fdisk. Вы спросите: а нельзя ли вместо этого загрузиться с физического диска с уже установленной Windows? Можно, но последствия будут такими же, как при перетаскивании винчестера с одного физического фрейма на другой: аппаратный plug'n'play вкупе с программным отделают раздел Hardware в Реестре как бог черепаху, и только вскрытие покажет, кто из них был не прав. Дважды сертифицированный ордена Гейтса инженер Microsoft скажет, что на сей случай в Windows можно предварительно установить дополнительную аппаратную конфигурацию, но я в такие игры не играю: они рано или поздно заканчиваются тем, что при очередной загрузке неправильно выбираешь эту самую конфигурацию.
Установка Windows - она и есть установка Windows, хоть в Африке, хоть на VMware: не пройдет и часа [3], как вы получите переливающееся (пока что 256 цветами) детище Microsoft в половину натуральной величины [4].
Прежде чем выключить "питание" виртуальной машины, не забудьте отработать shutdown. Более привлекательным вариантом может быть принудительное усыпление машины: как и при аппаратном suspend'е, состояние рабочей среды сохранится и при последующем пробуждении восстановится.
Дальше можно смело ставить софт и осторожно добавлять устройства (см. врезку). Осторожно, поскольку иметь непосредственный [5] доступ к винчестеру (или его разделу) необходимо только разработчику. В пользовательской же перспективе нужен, как правило, доступ к каталогам и файлам, и концептуально правильным (а потому единственно верным) решением является: смонтировать нужные разделы под ОС-хозяином (даже если хозяин - Linux, а разделы - FAT), экспортировать соответствующие каталоги и обращаться к ним сетевыми средствами.
|
Организовать ли доступ к ним "чистыми" IP-средствами, или эмулировать Microsoft Network посредством Samba [6], или NFS, а то и Novell'овские сети - это вопрос испорченности пользователя. В большинстве реальных топологий FTP-доступа от "гостя" к "хозяину" хватит за глаза и за уши. Ну, можно еще почту наладить, письма себе - дорогому root'у домена - писать.
А еще можно - если балуетесь вебмастерингом и привыкли проверять новые разделы и возможности сайта на своем локальном Apache под Linux - запустить под "гостем" MS IE и посмотреть, как сайт выглядит еще и в этом браузере...
Эпилог
Напомню: с точки зрения архитектуры, Windows 9x - это, грубо говоря, исполняющая подсистема Win32, работающая поверх MS-DOS "без присмотра", в то время как Windows NT (и продолжающие NT-линейку Windows 200*) обладает собственным ядром, управляющим как Win32, так и исполняющей подсистемой POSIX (то есть, по сути дела, усеченной *nix).
Соответственно конвергенция платформ от Microsoft с миром большого софта до сих пор рассматривалась в двух залогах: 1) как возможное портирование Win32 под *nix (гипотетический проект MS Linux, которая могла бы включать - наряду с одной из популярных поставок [или вновь сформированной собственной поставкой] Linux - Win32 [а значит, позволять исполнять Windows-приложения], обсуждается досужими умами достаточно давно, чтобы в самой Microsoft его обдумали серьезно), и 2) как "дотягивание" NT'шной POSIX-подсистемы до пристойного уровня (вне зависимости от собственных желаний в Microsoft вынуждены предпринимать хотя бы видимость шагов в этом направлении из-за требований, предъявляемых рядом крупных контракторов, в том числе правительственных заказчиков в США).
Сейчас не все помнят, что Microsoft была в числе пионеров переноса Unix на персональные компьютеры и еще двадцать лет назад представила свой проприетарный клон Unix под названием Xenix для x86, который с треском провалился. Возможно, полученная тогда совсем юной еще компанией "психологическая травма" и объясняет определенную "юниксофобию" Microsoft, не изжитую до сих пор. Кстати, упомянутый в начале статьи релиз при ближайшем рассмотрении оказался датированным не первым апреля, а тривиальным 28 марта.
Даст ли заключение этого OEM-соглашения и массовая эксплуатация Windows на VMware какой-то терапевтический эффект, пока неизвестно.
1 (обратно к тексту) - Я использовал Linux-Mandrake 7.0 RE, любезно предоставленный IPlabs Linux Team (www.iplabs.ru) для другой цели. Кстати, полная четырехдисковая поставка "Мандрагоры" включает VMware, но первую версию.
2 (обратно к тексту) - Добавить его в готовую конфигурацию с установленной гостевой ОС может оказаться нетривиальным делом.
3 (обратно к тексту) - Впрочем, это зависит от производительности и загруженности "хозяина": BIOS покажет частоту процессора, соответствующую частоте реально установленного процессора, но на самом деле смело делите ее на 2 или на 3.
4 (обратно к тексту) - При желании можно развернуть экран гостевой ОС на весь экран монитора - если X зацеплен у вас на седьмую виртуальную консоль, VMware заберет себе восьмую.
5 (обратно к тексту) - Даже если вы хотите только читать физический раздел, файл устройства диска придется сделать доступным для RW, и документация предлагает "полагаться в защите от записи на внутренние механизмы VMware", каковые механизмы позволяют установить режим R или RW для каждого раздела. В принципе, открытие файла устройства диска на запись ничем особо страшным не грозит, но, если что не так с разбивкой диска, ядро запаникует по поводу обращения за пределы раздела и начнет гнать пургу на экран не виртуальной, а самой что ни на есть физической консоли, и "удавить" распоясавшийся процесс будет нелегко.
6 (обратно к тексту) - Сама по себе эта тенденция - разворачивать внутри одной отдельно взятой машины сети, тем более гетерогенные - проходит скорее по ведомству паранойи, чем шизофрении, ergo выходит за тематические рамки данной статьи.