Операционная система Linux, приобретая все большее число сторонников, уже начинает наступление на настольные ПК [1]. Существует, однако, большое препятствие на пути ее распространения — привычка большинства пользователей ПК работать с Microsoft Office. Пакет этот, несмотря на то, что его часто ругают, пользуется популярностью. Как же быть приверженцам Linux?

Можно, конечно, сказать, что существуют полнофункциональные офисные пакеты, которые работают под Linux, например, Sun StarOffice. Однако, вот беда, StarOffice не понимает форматов файлов Microsoft Office. Обещают, что скоро выйдет пакет Koffice, который вроде должен работать с этими форматами, но этого еще надо дождаться, да и не будут в Microsoft сидеть сложа руки — в следующей версии снова изменят формат файлов, им не впервой. Можно установить две операционные системы в разные разделы диска и перезагружаться в Windows, когда возникнет необходимость поработать с файлами Microsoft Office [2]. Но до чего же это неудобно! Столь же неудобны и различные программы-перекодировщики, преобразующие файлы DOC в HTML или другой открытый формат, понятный для программ под Linux.

Итак, сообщество приверженцев Linux поставлено перед проблемой. И сообщество эту проблему решает, причем даже несколькими способами. Основная идея проста: создать эмулятор, работающий под Linux и позволяющий запускать Windows-программы. Однако пути реализации этой идеи выбираются разные. Насколько мне известно, наибольших успехов в создании эмуляторов к сегодняшнему дню добились две компании: VMWare, создавшая систему виртуальных машин VMWare, и Netraverse со своим Win4Lin [3]. Оба этих продукта фактически позволяют запускать на компьютере вторую операционную систему, одновременно с уже работающей базовой ОС Linux, под управлением которой продолжает работать физический компьютер. Поскольку на русском языке пока очень мало публикаций на тему виртуальных машин [3-5], я решился написать эту статью по виртуальным машинам VMWare.

«Виртуальный компьютер»

Рис. 1. Windows NT 4.0, запущенная на виртуальном компьютере с базовой операционной системой Linux

Виртуальный компьютер — специальная программа, запускаемая в ОС Linux и моделирующая физический компьютер Intel x86. Монитором виртуального компьютера является окно графической оболочки X Window, в которое производится вывод информации. На рис. 1 показано, как выглядит Windows NT 4.0, работающая на виртуальном компьютере, запущенном из Linux.

Стоит сказать, что отдельная версия системы виртуальных машин разработана VMWare и для того случая, когда базовой ОС является Windows NT/Windows 2000, так что можно и Linux запускать в окне графической оболочки Windows.

Виртуальный компьютер «строится» из следующего набора виртуальных устройств:

  • виртуальные жесткие диски IDE и SCSI, виртуальный дисковод CD-ROM;
  • стандартный дисковод гибких дисков;
  • контроллер жестких IDE-дисков Intel 82371 PCI Bus Master, поддерживающий два первичных (primary) и два вторичных (secondary) IDE-диска;
  • адаптер SCSI-дисков, совместимый с BusLogic BT-958;
  • стандартный графический PCI-адаптер, стандартная 101/102-клавишная клавиатура, PS/2-совместимая мышь;
  • сетевая плата AMD PCNET Family Ethernet adapter (PCI-ISA);
  • последовательные порты COM1-COM4, параллельные порты LPT1-LPT2;
  • звуковая плата, совместимая с Sound Blaster 16.

Этот набор виртуальных устройств отличается от набора реального компьютера, на котором запускается виртуальная машина (естественно, за исключением некоторых устройств, например, процессора и клавиатуры), и не зависит от последнего. Если операционная система устанавливается непосредственно внутри виртуального компьютера, то в процессе установки все эти устройства определяются корректно. При «включении питания» виртуального компьютера (что делается с помощью специальной кнопки «Power On/Off» в меню эмулятора), видно, как BIOS осуществляет тестирование «аппаратной части» и даже, как и на физическом компьютере, можно войти в программу Setup, чтобы задать или изменить настройки BIOS. На виртуальный компьютер можно установить любую операционную систему и работать с ней обычным образом.

Естественно, что две ОС, одновременно работающие на одном физическом компьютере, так или иначе конкурируют за реальные ресурсы базового компьютера, а поэтому требования к нему достаточно высоки. Компания-разработчик формулирует эти требования следующим образом:

  • Pentium II/266 МГц или выше;
  • оперативная память емкостью как минимум 64 Mбайт;
  • видеоадаптер, поддерживаемый сервером XFree86 (его наличие позволит воспользоваться всеми возможностями полноэкранного режима);
  • ОС Linux с ядром 2.0.32 или выше в качестве базовой системы, библиотека glibc версии от glibc2 до glibc6 (с glibc1 не работает); для SMP-компьютеров ядро должно быть версии 2.2.0 или выше;
  • X-сервер, причем рекомендуется XFree86-3.3.4 или выше.

Установка системы виртуальных машин

Для установки необходимо скачать программное обеспечение с сайта VMWare, а также получить лицензию на его использование. Можно, конечно, лицензию купить (стоимость ее около 300 долл.), однако, можно пользоваться и временной (30-дневной) лицензией, тем более, компания пока что позволяет без ограничений обновлять ее. Неудобство, конечно, но терпимое. После регистрации вы получаете сообщение, что лицензия отправлена по почте, и в ожидании запускаете перекачку файла vmware-x.y.z-nnn.i386.rpm (где x.y.z — номер версии, а nnn — номер выпуска). После этого надо выполнить приведенную ниже последовательность действий.

1. Для установки системы виртуальных машин надо иметь права root, поэтому запускаем терминальное окно и выполняем команду su.

2. Производим установку rpm-пакета:

rpm -Uhv vmware-x.y.z-nnn.i386.rpm

(где vmware-x.y.z-nnn.i386.rpm — имя файла, загруженного с сайта).

3. Запускаем конфигурационный скрипт.

/usr/bin/vmware-config.pl

Этот скрипт можно будет в дальнейшем использовать для того чтобы заново сконфигурировать VWWare всякий раз, когда проиcходит замена или обновление ядра. Переустанавливать VMWare при этом нет необходимости. При выполнении скрипта на экран выводится несколько вопросов; ответы на некоторые из них можно найти в [4, 5].

Отмечу два момента. Первый момент касается используемого ядра. К сожалению, в ядре версии 2.2.16 имеется какая-то особенность, препятствующая нормальной работе системы виртуальных машин, поэтому придется поменять версию на более позднюю. Однако если установить новое ядро не из исходных текстов, а из rpm-пакета (при инсталляции Linux из дистрибутива Red Hat и его клонов тоже происходит установка ядра из такого пакета), то в системе может не оказаться файлов заголовков ядра.

Один из вопросов, задаваемых скриптом, касается местонахождения файлов заголовков, соответствующих запущенной версии ядра. Необходимые файлы можно установить (переключившись во второй терминал) из пакета kernel-headers-x.y.z.i386.rpm (соответствующей установленному ядру) и указать правильный путь к ним (этот путь можно узнать, внимательно просмотрев вывод команды rpm -qpl kernel-headers-x.y.z.i386.rpm).

4. После завершения работы скрипта можно покинуть shell, запущенный от имени root.

На этом установка собственно системы виртуальных машин завершена, однако, надо еще установить лицензию, создать собственно виртуальный компьютер, установить на нем операционную систему и пакет VMWare Tools.

Установка лицензии на использование VMWare. Лицензия высылается в виде текстового файла, присоединенного к сообщению. Для ее установки необходимо перейти в домашний каталог, создать в нем подкаталог с именем .vmware, и скопировать полученный файл лицензии в этот подкаталог. Убедитесь, что имя файла начинается с подстроки «license». Если предполагается запускать виртуальный компьютер от имени различных пользователей, следует выполнить установку лицензии (одной и той же) в домашние каталоги каждого из них. Теперь можно уже запустить систему виртуальных машин командой vmware (исполняемый файл vmware находится в каталоге /usr/bin/vmware, так что должен запускаться без указания полного пути) и создать в ней собственно виртуальный компьютер (или несколько).

Рис. 2. Окно редактора конфигурации

Для создания виртуального компьютера проще всего воспользоваться мастером конфигурации. Однако гораздо нагляднее этот процесс происходит при использовании так называемого «редактора конфигурации» (рис. 2), который запускается посредством выбора пункта «Configuration Editor» в меню «Settings» системы VMWare. Первым делом подключим IDE-диск, щелкнув по значку + рядом с надписью «IDE Devices». После того, как появятся 4 дополнительных строки, соответствующих четырем каналам контроллера жестких дисков, щелкните по строке с надписью «P-M. Not installed». Эта строка обозначает жесткий диск на первом канале (Primary Master) и утверждает, что таковой не установлен.

Надо иметь в виду, что нельзя устанавливать второй диск (Slave), если не установлен первый диск (Master) на соответствующем канале контроллера (P-S не устанавливают до P-M, а S-S, соответственно, до S-M). Если не соблюсти это правило, то виртуальная машина не сможет загружаться с заданного таким образом диска. Обычно используют первую позицию, P-M (primary master), для подключения жесткого диска и третью позицию, S-M (secondary master), для диска CD-ROM. Возле надписи «Device Type» находится список выбора типа диска: виртуальный диск, плоский диск (plain disk), реальный диск (raw disk) и CD-ROM. Виртуальный диск (virtual disk) — это файл в файловой системе базового компьютера, который для ОС виртуальной машины выглядит как реальный физический диск. Этот файл может располагаться как на диске базового компьютера, так и на удаленной файловой системе. Если создается виртуальная машина с виртуальным жестким диском, то можно установить на нее новую ОС без переразбиения физического диска и даже без перезагрузки базового компьютера. «Плоский диск» подобен виртуальному, но может иметь размеры более 2 Гбайт. Он компонуется из нескольких файлов — экстентов (extent), размером не более 2 Гбайт. В отличие от виртуальных дисков, при создании плоского диска, все отводимое под такой диск пространство сразу занимается и заполняется нулями. «Реальный диск» — это жесткий диск или раздел жесткого диска базового компьютера, к которому получает прямой доступ виртуальная машина. При подключении такого диска становится возможным загрузить в виртуальной машине операционную систему, ранее установленную в один из разделов базового компьютера (при условии, что этот раздел находится на локальном диске IDE или SCSI).

Рис. 3. Установка драйвера SVGA

После определения типа диска надо выбрать один из трех возможных режимов его работы: persistent, nonpersistent, undouble. В режиме «с записью» (persistent) все операции записи немедленно производятся на реальный диск (или в файл, моделирующий реальный диск). В режиме «без записи» (nonpersistent) записи на диск, осуществляемые виртуальным компьютером, выглядят как операции записи на реальный диск, но фактически запись данных на физический диск не производится, и данные теряются по завершении сеанса работы на виртуальном компьютере (когда «выключается питание» виртуального компьютера или производится перезагрузка ОС). В этом режиме VMWare только читает с реального диска, а операции записи в течение сессии производятся во временный файл (redo log file), который уничтожается при завершении сеанса. Все блоки данных, которые были модифицированы и записаны в файл .REDO, при повторном обращении к ним считываются уже из этого файла, а не с реального диска. По завершении сеанса файл уничтожается. Файл .REDO располагается в том же каталоге, где по умолчанию располагаются файлы виртуальных дисков, однако, его местоположение можно изменить, воспользовавшись пунктом «Misc» в меню редактора конфигурации. Такой режим удобен, когда требуется запускать виртуальный компьютер из одного и того же состояния, например, при тестировании разрабатываемого или для демонстраций нового ПО. В этом режиме могут работать все типы дисков. Режим «с отложенной записью» (undoable) очень похож на режим «без записи» в том смысле, что все операции записи на диск, осуществляемые виртуальным компьютером, фактически производятся во временный файл (.REDO) на реальном диске. Но при отключении питания виртуального компьютера, пользователю предлагается на выбор три возможности: записать все изменения на реальный диск; отказаться от изменений, возвращая диск к его исходному состоянию; запомнить изменения, чтобы в следующей сессии начать работу с того состояния, в котором закончена работа в предыдущем сеансе (сохранить файл .REDO). Режим полезен, когда надо поэкспериментировать с установкой новых программ или выполнением некоторых административных функций, что может вызвать проблемы в работе компьютера. Если сохранить файл .REDO, то при следующем запуске виртуальной машины будет предложено либо восстановить все изменения, сделанные в ходе предыдущего сеанса, либо отказаться от них, либо отключить виртуальную машину. Если вы только начинаете осваивать систему VMWare, то имеет смысл подключить виртуальный диск в режиме «с записью».

После установки типа диска и режима записи, введите в поле «Name» имя файла, которое будет использоваться для данного виртуального диска и укажите размер виртуального диска (если это просто виртуальный диск, то его объем не может быть больше 2 Гбайт). Первоначально виртуальный диск занимает на реальном не более 1 Мбайт, а размер файла возрастает по мере установки программного обеспечения на виртуальную машину. После задания всех параметров виртуального диска щелкните по экранной клавише «Install». Диски SCSI устанавливаются вполне аналогично дискам IDE.

Установка устройства CD-ROM еще проще, чем жесткого диска. Тут надо задать только один параметр — имя устройства. Можно еще определить, подключать ли CD-ROM автоматически при запуске виртуальной машины. Для подключения дисковода гибких дисков надо выбрать тип: устройство или файл и задать или выбрать имя устройства (например, /dev/fd0 or /dev/fd1), определив, будет ли дисковод подключаться автоматически. Необходимо иметь в виду, что физический флоппи-дисковод не может использоваться одновременно операционными системами двух (и более) виртуальных машин или виртуальным и базовым компьютерами. В процессе работы с виртуальной машиной можно в любой момент отключить дисковод, воспользовавшись пунктом «Devices» главного меню. И, наоборот, можно подключить дисковод через тот же пункт меню, освободив его предварительно в других виртуальных машинах и в базовом компьютере. На базовом компьютере для этого надо размонтировать диск (в Linux) или переключиться на какие-то каталоги других дисков во всех запущенных программах (если на базовом компьютере запущена Windows).

Следующим шагом по идее должна быть установка сетевой платы, но пока этот этап пропустим, поскольку, как и в реальном компьютере, подключиться к сети можно и позже, а объем статьи не позволяет охватить все вопросы сразу. То же самое можно сказать про подключение последовательных и параллельных портов и звуковой платы. А вот подключить мышь и выделить виртуальной машине оперативную память просто необходимо. Система VMware позволяет пользователям задавать как объем оперативной памяти, выделяемой каждому виртуальному компьютеру, так и общее количество памяти, зарезервированное для использования виртуальными машинами. Правильная настройка этих параметров очень важна, поскольку может существенно повлиять на производительность как виртуального компьютера, так и системы в целом. Количество памяти, выделяемое всем виртуальным машинам, задается через меню «Settings». При работе с редактором конфигурации можно определить только количество памяти, выделенной данной виртуальной машине. Для начала, пока у вас всего одна виртуальная машина, выделите ей половину оперативной памяти базового компьютера.

Остается только выбрать операционную систему и задать значения некоторых дополнительных параметров (пункт «Misc»). Для первого раза проще всего согласиться с тем вариантом, который задается по умолчанию. Единственный из этих дополнительных параметров, значение которого нужно ввести, это путь к файлу .REDO, и то только в том случае, когда необходим режим работы «с отложенной записью».

После создания виртуальной машины, необходимо сохранить ее конфигурацию в файле, для чего щелкнуть по экранной клавише «Save» и ввести имя конфигурационного файла.

Теперь, на созданный таким образом виртуальный компьютер, нужно установить ОС. Процедура установки обычная: вставляется загрузочный диск CD-ROM и запускается виртуальный компьютер. Сразу же после первого запуска ОС на виртуальной машине просто необходимо установить дополнительные компоненты ОС, которые называются VMware Tools и включают в себя ряд дополнительных драйверов, в частности, драйвер SVGA. Хотя система VMware способна работать и без него, однако, из графических режимов на виртуальной машине будет доступен только режим VGA (разрешение 640x480, 16 цветов). Если же установить драйвер SVGA из VMware Tools, то будут поддерживаться высокие разрешения дисплея и глубина цвета до 32 разрядов, причем повысится и быстродействие графической подсистемы.

Для установки VMware Tools после запуска ОС на виртуальном компьютере комбинацией [Ctrl-Alt-Esc] управление передается базовой ОС и выбирается пункт меню «Settings/VMware Tools Install» программы VMWare. Специальное сообщение должно уведомить о том, что конфигурация виртуальной машины временно изменена для установки VMware Tools. Изменение конфигурации виртуальной машины заключается в том, что вместо диска A: подключается образ дискеты, содержащий необходимые для установки VMWare Tools файлы. Запустите с этой виртуальной дискеты программу VMwareTools.exe из подкаталога, соответствующего установленной ОС. В процессе инсталляции программа установки предупреждает, что будет запущена утилита изменения установок видеоадаптера (с этим нужно согласиться), после чего остается только нажать клавишу «Finish». После того, как откроется окно свойств экрана, доберитесь до вкладки «Адаптер», щелкните по кнопке «Изменить» и выберите вариант «Установить с диска».

Первый сеанс работы на виртуальном компьютере

Рис. 4. Окно выбора конфигурации

Откройте окно терминала, введите команду vmware &. Вид появляющегося окна представлен на рис. 4.

Поскольку пока создан только один виртуальный компьютер, то достаточно подсветить строку с именем единственного конфигурационного файла, а затем надо «включить питание» клавишей «Power On» главного окна VMWare. Дальше все будет происходить так, как и при загрузке выбранной ОС на обычном компьютере. В частности, если есть желание посмотреть или изменить установки BIOS виртуального компьютера, надо успеть вовремя нажать клавишу F2, чтобы попасть в меню BIOS.

Первое, о чем надо помнить при работе с виртуальной машиной, — способ выхода из окна виртуальной машины комбинацией клавиш [Ctrl-Alt-Esc]. Это особенно полезно при работе в полноэкранном режиме виртуальной машины. В этот режим можно переключиться с помощью кнопки «Full Screen» на панели VMWare; в этом случае создается полная иллюзия того, что физический компьютер работает под управлением Windows, и только «волшебная» комбинация клавиш [Ctrl-Alt-Esc] позволяет вернуться к реальности.

Следующим этапом работы на «новом компьютере» будет установка необходимого ПО внутри виртуальной машины, которая осуществляется самым обычным образом. Я установил на своем виртуальном компьютере Microsoft Office и еще ряд программ, с которыми привык работать.

Немного о быстродействии

Поскольку система VMWare является эмулятором, естественно возникает мысль о том, что прикладные программы будут на ней работать медленнее, чем на физическом компьютере, однако, опыт показывает, что если дополнительное замедление и есть, то оно так невелико, что практически незаметно. Более того, я провел серию тестов с помощью программы Sandra SiSoft, результаты которых меня просто поразили. Некоторые тесты показывают, что быстродействие виртуального компьютера с Windows NT 4.0 по некоторым параметрам выше, чем быстродействие базового компьютера, работающего под той же ОС непосредственно. Конечно, быстродействие существенно зависит от ресурсов базового компьютера. Я начинал осваивать VMWare на компьютере с оперативной памятью на 64 Мбайт, да еще с 233-мегагерцевым процессором, и все в общем-то работало, но замедление работы ОС на виртуальной машине было очень заметно. Сейчас я использую компьютер с процессором Pentium III/733 МГц и 128 Мбайт оперативной памяти. Память я поделил между двумя ОС поровну и замедления в быстродействии уже незаметно. Именно объем оперативной памяти является самым критичным параметром для использования системы виртуальных машин. Судя по моему опыту, 64 Мбайт физической памяти все же маловато, а при 128 уже можно работать достаточно комфортно.

***

В статье не нашли отражения ответы на многие вопросы, связанные с установкой, конфигурированием и работой системы виртуальных машин, в частности процедуры доступа из виртуального компьютера к физическим дискам и обмена информацией по сети. Если вас заинтересовала система виртуальных машин, — установите ее и экспериментируйте. Она стоит того, чтобы посвятить ей часть своего времени.

Литература

1. В. Иванченко, А. Панишев. Пингвин против империи.
2. Виктор Костромин, Linux вместе с Windows.
3. Choong Ng. VMware Express 2.0 and Win4Lin 2.0: A Comparison Review
4. В.А. Костромин, Система виртуальных машин фирмы VMWare.
5. А.А. Ерижоков. Использование VMWare 2.0.
 

Виктор Костромин (linux-ve.chat.ru) — независимый эксперт.


Особенности работы с виртуальными машинами

Копирование и вставка. Если на виртуальной машине установлен пакет VMWare Tools, имеется возможность осуществлять операции копирования и вставки между приложениями, запущенными в виртуальной машине и на базовом компьютере, а также между двумя виртуальными машинами.

Приостановка и мгновенное восстановление состояния виртуальных машин. В любой момент работы с виртуальной машиной можно приостановить ее работу и сохранить текущее состояние, а впоследствии продолжить работу с точки останова, причем все открытые приложения и документы будут снова открыты и готовы к дальнейшей работе. Сохранять состояние виртуальной машины можно либо на диске, либо в оперативной памяти. Скорость сохранения и восстановления состояния виртуальных машин зависит от того, как много изменений было сделано в последнем сеансе работы. В общем случае первое сохранение длится дольше, чем последующие. Для сохранения состояния виртуальной машины требуется:

1. Вернутся в режим работы в окне ([Ctrl-Alt-Esc]).

2. Щелкнуть по клавише «Suspend» на панели VMWare.

3. Выйти из системы VMWare через пункт меню «File / Exit».

Для возврата в состояние до приостановки:

1. Запустить VMWare и выбрать ту виртуальную машину, работу которой приостановили.

2. Щелкнуть по клавише «Resume» на панели VMWare.

Выключение виртуальной машины. Как и на реальных компьютерах, перед выключением питания виртуальной машины необходимо выполнить процедуру остановки запущенной на ней ОС. После того, как ОС выгрузится (окно VMWare становится черным) щелкните по клавише «Power off» на панели VMWare. После этого можно закрыть VMWare, воспользовавшись пунктом меню «File / Exit».

Использование прямого доступа к памяти. Windows 95 OSR2 и более поздние версии ОС обладают возможностью использования прямого доступа к памяти (Direct Memory Access — DMA) при обращении к IDE-дискам. Однако эта возможность не часто используется по умолчанию, хотя ее применение в виртуальном компьютере может дать существенный прирост производительности. Для того чтобы задействовать режим DMA в Windows на виртуальном компьютере запустите «Панель управления» и выберите пункт «Система»; в появившемся окне «Свойства: Система» выберите вкладку «Устройства», найдите пункт «Дисковые накопители» и раскройте список, щелкнув по значку «+». Затем последовательно для каждого подключенного IDE-диска поставьте отметку (галочку) рядом с надписью «DMA», после чего перезапустите ОС.

Не забудьте задействовать режим DMA в базовой операционной системе Linux. Для этого можно воспользоваться командой

/sbin/hdparm -d 1 /dev/hda

для каждого из IDE-дисков. В результате этих усилий VMWare и все запускаемые в виртуальном компьютере приложения будут работать быстрее.