VMWare или все виндовсы под линуксом ходят

15 марта вышел программый продукт,которые всколыхнул всех пользователей linux и windows , которые в силу каких-то обстоятельств вынуждены держать на своей машине одну из версий других операционных систем (например для некоторых программ, которые либо существуют в серсии только в версии для этих операционных систем, либо функциональность этих версий недостаточна для продуктивной работы), имя этому продукту – VMWare. Эту программу сделала молодая компания VMWare (www.vmware.com), которая раньше никому не была известна. В чем именно суть этой программы ? Эта программа представляет собой диспетчер виртуальных машин, работающий под управлением хост-системы (WindowsNT(скоро) или Linux). Он может создавать до 254 виртуальных машин (конечно, если хост-система выдержит) под своим управлением, и при этом каждая виртуальная машина получает в свое распоряжение свой биос, свою память, свою сетевую карточку и считает, что она работает в системе совсем одна.

Что дает эта система среднему пользователю Linux или WindowsNT ? То, что для запуска Windows или какой-либо другой операционной системы не надо перезагружаться в нее, а достаточно запустить VMWare, указать ему параметры виртуальной машины, указать VMWare, откуда загружать операционную систему и получить в свое распоряжение полностью работоспособную систему, но работающую в окне хост-системы. На данный момент VMWare существует только в версии для Linux, но его создатели уже дописывают версию для WindowsNT. Какие операционные системы он позволяет запускать ? DOS, Windows 3.1, 3.11, 95, 98, NT, Linux. Это те, о которых официально заявлено на сайте фирмы производителя, но на самом деле в специализированных эхоконференциях и списках рассылки поступают сообщения от энтузианистов, которые запустили под диспетчером SCO Unix,Interactive Unix, FreeBSD, Novell Netware, Windows 2000 .. пока сопротивляются Solaris и BSDI, но говорят, что скоро запустят и их.

Идея, лежащая в основе диспетчера, проста до безобразия. Запускать программы, предварительно навешав обработчиков на доступ до определенных областей памяти и портов. При срабатывании обработчиков обрабатывать для виртуальной машины соответствующие вызовы самостоятельно. Идея витала в воздухе, но большинству программистов, которые брались за нее, либо не хватало опыта и знаний, либо усидчивости или времени и денег. В итоге было создано множество диспетчеров и эмуляторов, возможности которых либо были ограничены, либо они работали под определенной операционной системой. VMWare разом преодолела все эти ограничения. Как она работает ? VMWare состоит из трех частей – Virtual Platform Application,VP Monitor и VP Driver. VPMonitor работает на самом низком уровне,обеспечивая по возможности работу сразу с железом, VP Application представляет собой прикладную программу базовой ОС (биос, загрузчик и прочее), VP Driver занимается их взаимодействием. Виртуализацией CPU занимается непосредственно VPMonitor, поэотму потери тут минимальные.

Теперь немного о самой виртуальной машине. Для операционной системы, запущенной в ней, она выглядит как обычный компьютер с Phoenix-BIOS, с тем процессором, который есть на хост-машине (MMX поддерживается), с тем количеством памяти, которое пользователь отвел машине из доступных ему объемов (до 2х ГБайт), с сетевой картой AMD PCINet (до 4х штук в каждой виртуальной машине) и с видеокартой VGA (причем после установки дополнительных программ в виртуальную windows, последней становятся доступны все видеорежимы и разрешения, которые доступны в хост-системе).

В качестве жестких дисков для виртуальной машины могут выступать как и уже имеющиеся разделы на существующих жестких дисках (к сожалению, эта опция работает пока только для IDE-дисковводов) , так и созданные VMWare образы дисков, которые располагаются в виде обычных файлов. Виртуальная машина легко обманывается – она может считать, что в ее распоряжении есть несколько физических дисков, хотя сами образы дисков могут лежать на общем сервере и ими могут пользоваться несколько виртуальных машин одновременно (конечно, в режиме «только для чтения»). Причем для виртуальной машины безразлично, откуда для нее берутся диски – она может загрузиться как и с существующего раздела, так и с образа диска. Это очень удобно для тех пользователей которые по каким-либо причинам вынуждены часто переустанавливать операционную систему. Например, в тех учебных заведениях, где студенты имеют доступ в компьютерные классы с установленной Windows, лаборантам приходиться раз-два в день переустанавливать Windows на каких-либо компьютерах, потому что вместо того, чтобы заниматься делом, почти каждый студент считает делом своей чести залезть куда-нибудь внутрь Windows и показать соседям, что он крут до неимоверности. Ведь поставить Windows NT не везде позволяют условия проведения учебного процесса или еще что. Вот и бегают лаборанты и выполняют доведенные своей многократностью до автоматизма действия по восстановлению системы. В этом и во многих других случаях, когда работоспособность системы необходимо восстановить в кратчайший срок, и помогут образы дисков – просто скопировать один файл гораздо быстрее, чем отвечать на кучу вопросов (конечно, в дистрибутиве windows есть скрипты, которые облегчают автоматическую установку, но они рассчитаны на установку только MS продуктов). Конечно хост-систему тоже можно довести до неработоспособного состояния, но сделать это простому студенту гораздо тяжелее, а при нормальной настройке хост-системы почти невозможно. Забавный (и полезный) штрих – можно сказать системе отменять все изменения на виртуальных дисках после выхода из данной виртуальной машины.

Сетевые настройки у виртуальной машины могут быть в одном из 3х вариантов: no network, bridged, host-only. В режиме no network для виртуальной машины сеть вообще не доступна (например, по соображениям безопасности),в режиме bridged виртуальной машине через виртуальную сетевую карту доступна сеть в всем обьеме, доступном хост-машине, host-only режим разрешает виртуальной машине доступ только на хост-машину (хотя если на хост-машине установлен какой-либо прокси-сервер, то будет доступно то, что разрешит прокси-сервер). Но учтите, что настройки сети у виртуальных машин свои и полностью не зависят от настроек сети хост-машины (у хост машины вообще не может быть сетевой карты, но виртуальные машины смогут связываться между собой все равно). То есть, ни адреса, ни протоколы не ограничиваются хост-машиной (например, у хост-машины может быть поднят только протокол tcp/ip, а у виртуальной машины tcp/ip,ipx и netbeui).

Таким образом, виртуальные машины полностью независимы в дисковом и сетевом отношении. Что еще используется одновременно ? Ну монитор, клавиатура и мышь переключаются между виртуальными машинами так же легко, как Вы обычно переключаетесь между окнами. Звуковая карточка ? Здесь есть ложка дегтя – звук может использоваться всеми виртуальными машинами, но не одновременно. (То есть если в одной виртуальной машине играет звук, то другая будет считать, что она проиграла какой-либо звук, хотя пользователь ничего не услышит). Что еще ? На данный момент VMWare существует в бета-версии, поэтому в ней нет MIDI (ну и джойстика соответственно), нет поддержки USB, 3D акселераторы также не поддерживаются, и есть некоторые ограничения в поддержке DirectX/DirectDraw, но они настолько малы, что их практически не замечаются.

Вы не верите ? Сходите на http://cce.nextreme.com/vmware/, там лежит куча скриншотов, на которых показывается запущенная под линуксом windows во всех положениях и разные программы под нее.

Вы считаете, что для нормальной работы в windows и linux одновременно необходима монстрообразная машина ? Вовсе нет ! Хотя на сайте vmware советуют PII/300/64 и выше, но достаточно Р/133 с 48 мегабайтами памяти. Причем из-за отличной работы всех модулей VMWare чисто процессорные задачи (паковка-распаковка, обсчет чего-либо) выполняется на практически полной скорости процессора, притормаживаясь на видео и дисковых операциях. Хотя автором после непродолжительной работы с диспетчером и операционными системами под его управлением было замечено, что 16ти разрядные программы выполняются гораздо медленней, чем 32х разрядные. Ведь VPMonitor’у необходимо некоторое время, чтобы переключить процессор из 32х разрядного режима работы в 16ти разрядный. Что это означает на практике ? А что, что на моем компьютере (Р150(up to 188)/64) хваленая 32х разрядная Windows9* загружала процессор хост-машины на все 100%, и что-то более-менее серьезное под обоими операционными системами сделать было нельзя (в windows все тестирующие программы показывали скорость процессора на уровне Р100, а скорость обмена с дисками составляла 100-200 КБайт/с). Я уж было решил, что и в самом деле нужен маленький монстрик для нормальной работы, но вовремя задумался и решил для очистки совести поставить рядом WindowsNT. Скорость увеличилась раз в 10, а что хост-система, что WindowsNT работали спокойно, без особых напряжений, по всем тестам скорость процессора возросла до Р150, а скорость обмена с диском увелисилась до приемлимых 3-4 МБайт/с. (вот что значит истинная 32х разрядность, без лживых рекламных заявлений !) Для продолжения попытки добить диспетчер, я запустил в окне виртуальной WindowsNT Quake в режиме 320х200 без всяких акселераций и прочего – получил 15 fps, что в такой драконовской конфигурации очень даже неплохо. В конце концов я установил в вритуальной машине MicrosoftWord 7.0, в WindowsNT установил сетевой принтер, и вся эта связка заработала и исправно работает до сих пор. Большего от поделок Микрософта мне и не надо.

Если Вы заинтересовались, то скачать VMWare можно либо с www.vmware.com, либо с указанных там зеркал. В версии для linux 3 файла, каждый примерно по 2 мегабайта. Чтобы Вам не тянуть лишнее, кратко опишу их функции : vmware.tar.gz – именно сам диспетчер. vmware-tools.ex (именно так, без последней буквы e!) – это набор утилит, который устанавливается в виртуальную windows и обеспечивает последней доступ до всех видео-режимов, которые поддерживает хост-система, копирование текстовых блоков между виртуальными машинами и многое другое. vmware-tools.tar.gz – в этом архиве содержится X-Server для тех машин, где не установлен X-Window, но есть видеокарта с поддержкой графики и охота там запустить VMWare.


Вячеслав Калошин
multik@istu.edu
http://linux.irk.ru