...
...

Innotek VirtualBox: в ряду виртуальных машин прибыло!

Еще не так давно сама идея создания виртуальной машины казалась полной утопией. Казалось бы: это ж как можно эмулировать реальную машину в виде простой программы?! Да не просто эмулировать, а заставить вполне реальную операционную систему нормально работать на таком псевдожелезе! Оказалось не только можно, но даже нужно. Сегодня исследования в направлении виртуальных машин уже давно никого не удивляют и приносят пользу простым пользователям ПК на практике.

До недавнего времени обществу были широко известны лишь два продукта, предназначенных для эмуляции виртуального железа на реальном ПК: Virtual PC от Microsoft и серия продуктов VMVare от одноименного производителя софта. Оба давно известны в сообществе компьютерных энтузиастов, оба имеют свои достоинства и недостатки: первый стабилен в работе, но мало изменился с времен основания и позволяет эмулировать слишком уж слабое по нынешним меркам железо; второй лишен части недостатков первого, но слишком сложен в настройке для простых пользователей ПК. Однако время не стоит на месте, и сегодня ситуация изменилась. На поле вышел совершенно новый игрок — производитель софта: компания Innotek. Если быть точным, Innotek — это даже не совсем компания в обычном понимании этого слова. Это, по своей сути, некое open source сообщество, занимающееся коллективной разработкой виртуальной машины под названием VirtualBox, и принять участие в этом интересном деле сегодня может практически любой программист.
Главное — иметь желание и исходники программы (благо последние распространяются на бесплатной основе). Но давайте поговорим обо всем поподробнее.

Итак, на рынке наконец-то появился совершенно новый продукт от Innotek — программа VirtualBox (www.virtualbox.org). Текущий релиз программы — 1.4.0. Основное предназначение сей замечательной софтины — эмуляция виртуальной машины на реальном ПК. Зачем? Давайте разберемся. Во-первых, программы подобного рода сегодня широко используются специалистами для тестирования разрабатываемого софта и приложений. Согласитесь, рядовому программисту весьма удобно иметь под рукой среду для тестирования своего продукта. Связка "виртуальная машина + реальная ОС" вполне способна заменить реально существующий компьютер с предустановленной операционной системой. Этим сегодня и пользуется на практике большинство разработчиков. Во-вторых, для простого пользователя наличие виртуальной машины открывает дополнительные горизонты в области безопасной работы и пробного тестирования программ. Сегодня можно выйти в интернет на виртуальной машине и не бояться подцепить виртуальную "заразу" даже без наличия антивирусного обеспечения. Такой небезопасный серфинг никак не может повлиять на работу основной ОС, а вот гостевой операционной системе действительно придется несладко. При первых признаках недуга гостевой ОС достаточно "убить" оную простым удалением нескольких файлов собственно виртуальной машины, немедленно заменив их резервной копией вполне работоспособной ОС (благо операция по замене длится несколько минут). Подобным образом решаются проблемы при тестировании шароварного софта, да и вообще любых пользовательских программ. Больше никаких изменений системного реестра основной ОС, никаких раздражающих напоминаний и системных сбоев, вызванных кривыми руками стороннего разработчика софта. Проще говоря, влияние особенностей стороннего софта на основную операционную систему с помощью виртуальной машины можно свести к минимуму.

Возможности Virtual Box. Теория. Описываемая программа позволяет полноценно эмулировать x86-совместимый персональный компьютер. В качестве хост- системы для Virtual Box могут выступать Windows XP и Windows Vista. На виртуальную машину можно установить большое число гостевых операционных систем, в том числе все семейство Windows (начиная с Windows 3.x и заканчивая Vista), Linux на основе ядра версий 2.4 и 2.6, OpenBSD, полуось (OS/2), Solaris, L4 и, конечно же, архаичную MS DOS. VirtualBox имеет стандартный набор функций виртуальной машины: эмулируется x86-совместимый процессор, материнская плата с полным набором начинки, в т.ч. IDE-контроллер Intel 82371, видеоплата с возможностью (внимание !!!)

задействования до 128 Мб видеопамяти (подобного еще не было ни в одной версии конкурентных программ!), звуковая карта Intel 8282801AA AC'97, сетевой адаптер AMD PCNET (с возможностью эмуляции до четырех адаптеров в пределах одной машины). Также имеется возможность создания образов жестких дисков собственного формата *.VDI (все как обычно: жесткий диск в виде отдельного файла фиксированного размера или динамический — на выбор пользователя), есть возможность подключения реальных оптических дисков или ISO-образов, а также floppy-дисководов основной машины. А теперь основное отличие VirtualBox от Virtual PC — появилась возможность подключения USB-устройств (согласитесь, куда сегодня без этого?!). Для справки: Virtual PC для своих нужд умеет резервировать лишь параллельные порты реальной машины (к таковому, например, можно подключить принтер или модем для безопасного выхода в Интернет). Однако в инструкции по пользованию Virtual PC инженеры Microsoft честно предупреждают — отсутствие поддержки USB-устройств в их продукте обусловлено тем, что возможность чистого использования виртуальной машиной того или иного USB-устройства практически невозможна. Это значит, что переключение USB-устройства на виртуальную машину возможно только после его обнаружения основной ОС. Таким образом, обмен данными через USB-порт будет, по сути, общим для гостевой и основной операционных систем. А это означает только одно: совместное использование ресурсов может привести к уязвимости хост-операционной системы (к примеру, в случае общего использования USB-модема для выхода в интернет). Некоторым образом спасает ситуацию наличие USB-фильтров устройств, включенных разработчиками Innotek в состав своего продукта. С точки зрения автора этих строк факт отказа корпорации Microsoft от поддержки в своем продукте USB-устройств не радует конечного пользователя и не оправдывает разработчика несмотря ни на какие обстоятельства (USB-порты вполне могут использоваться и в мирных целях — например, для подключения внешних периферийных устройств или дисков). На сегодняшний день мировая тенденция такова, что поддержке USB в виртуальных машинах в любом случае быть (и это касается не только USB!) хотя бы уже потому, что на дворе третье тысячелетие. Разработчики из Innotek, к счастью, это понимают.

Интерфейс программы. Удобство использования. Давайте познакомимся с VirtualBox поближе. Интерфейс программы прост и понятен. Меню после инсталляции уже изначально русскоязычно, причем качество перевода действительно не раздражает — все корректно и правильно (возможны и другие языковые варианты). Вообще-то, если сравнивать интерфейс и удобство пользования VirtualBox со сторонними разработками, то получается любопытнейший факт: в WMVare в плане удобства все было достаточно запутано, в Virtual PC — понятно и просто, а в VirtualBox все суперпонятно и суперудобно (проще бывает только в детском саду:)).

Итак, давайте познакомимся поближе с основным рабочим окном эмулятора. Возглавляют меню основного окна VirtualBox три свитка: Файл, Машина и Справка. Свиток Файл содержит пункты Менеджер виртуальных дисков (без комментариев) и Настройки (основные настройки программы: местоположение файлов виртуальных дисков и файлов машин, язык оформления меню и выбор хост-клавиши меню (по умолчанию стоит правый Shift — эта клавиша переключает устройства ввода и другое оборудование между реальной и виртуальной машинами). Пункт меню Машина создает, сохраняет, запускает и останавливает виртуальную машину (все функции продублированы удобными кнопками на лицевой панели программы). Кроме того, в этом меню находится еще один очень нужный пользователю пункт меню Свойства — именно здесь находятся основные настройки всех типов дисков, настройки аудио и видео, настройки сети и расшаренных папок, настройки USB-оборудования и сервера удаленного рабочего стола. Но о настройках мы поговорим несколько позже — при создании виртуальной машины. Основное окно программы состоит из двух частей: проводника, в котором отображаются все созданные пользователем виртуальные машины, а также показано их состояние (левая часть), и меню, состоящее из трех закладок (правая часть). Закладка Детали отображает текущие настройки и свойства выбранного в данный момент образа виртуальной машины. Закладка Снимки позволяет делать снимки рабочего стола запущенной гостевой ОС. Закладка Описание выступает здесь в роли справочной службы. Следует отметить, что все пункты меню программы подробно разъясняются по ходу работы в нижней части рабочего окна при простом наведении мышки на конкретный пункт меню — проще и понятнее некуда. С настройками справится даже ребенок.

Создаем виртуальную машину. Методика создания и настройки новой виртуальной машины проста. Рассмотрим кратко — в детали вдаваться не станем. Во- первых, выбираем клавишу Создать в основном меню. Откроется пошаговый мастер создания машины. следуем его инструкциям: выбираем тип устанавливаемой ОС, создаем новый виртуальный жесткий диск, указываем нужное количество оперативной памяти. Далее выбираем в основном меню VirtualBox вышеуказанный пункт Свойства и настраиваем эмулируемое железо: выбираем размер видеопамяти (возможно, до 128 Мб), подключаем виртуальный жесткий диск (если нужно), floppy-дисковод, CD/DVD-привод (выбирается из реально существующих) или ISO-образ диска. Затем настраиваем аудиоадаптер (в меню обязательно выбираем Windows DirectSound — в противном случае звука в нашей виртуальной машине не будет), настраиваем сеть и включаем USB-контроллер (позже можете самостоятельно поэкспериментировать с фильтрами USB-устройств). Далее назначаем расшаренные папки (общие для виртуальной и реальной машины) и, если нужно, активируем сервер удаленного рабочего стола (позволяет удаленным клиентам соединяться и использовать виртуальную машину с помощью стандартного RDP-клиента).

Итак, машина создана. Дело за малым — осталось установить гостевую операционную систему. Процесс установки ОС на виртуальную машину, по сути, ничем не отличается от установки на реальный ПК. Сперва форматируем виртуальный жесткий диск и создаем основной раздел, делаем его загрузочным (проще всего с помощью обычной загрузочной дискеты для Windows 98 — для этого используются стандартные DOS-команды FDISK, Format X: (где X — виртуальный жесткий диск), SYS X: и т.д.). Далее все как в реальной жизни: вставляем загрузочный диск с нужной ОС в оптический привод и перезагружаем виртуальную машину. Внимание! В меню основного окна настроек VirtualBox Общие -> Дополнительно обязательно включите опцию IO APIC и установите нужный порядок загрузки гостевой ОС с конкретного носителя информации. По умолчанию стоит Floppy Disk -> CD/DVD -> Виртуальный жесткий диск. К сожалению, загрузка с USB-устройства невозможна, зато возможна загрузка по сети. После этапа форматирования жесткого диска пункт Floppy в загрузке можно вообще деактивировать. Таким образом, сразу после перезагрузки с оптического диска сразу же должна запуститься программа- инсталлятор нужной вам операционной системы. Остается лишь следовать мудрым наставлениям инсталлятора, дождаться окончания установки и активировать вашу копию ОС. Из личного опыта замечу, что по каким-то непонятным автору причинам инсталлятор Windows 98 после запуска постоянно подвисал и так и не смог установить одноименную операционную систему на вновь созданный виртуальный жесткий диск (загрузочный СD-диск был в порядке — чувствуется недоработка авторов и некоторая сырость продукта. У конкурентных программ подобных проблем автором замечено не было). После повторного воссоздания нового виртуального жесткого диска несколько иного заданного размера попытка установки Windows 98 на машину успешно удалась. С инсталляцией Windows XP у автора проблем не возникло. После установки операционной системы на виртуальную машину необходимо установить обновление (вспомните: нечто подобное было и в продукте от Microsoft). Для этого запускаем вновь созданную виртуальную ОС и выбираем в основном меню Устройства -> Установить дополнения гостевой ОС. Дожидаемся установки всех дополнений и перезагружаем виртуальную машину. Больше нет необходимости вручную переключаться между окнами виртуальной и реальной машин — указатель мыши захватывается окном гостевой ОС автоматически. Далее устанавливаем нужный софт, выставляем нужное разрешение виртуального экрана (возможен полноэкранный режим) и пользуемся машиной в свое удовольствие.

Возможности Virtual Box. Практика. Теперь перейдем к практической части тестирования описываемой программы. В качестве основной и гостевой ОС автором были выбраны и установлены Windows XP Professional SP2. В целом работа VirtualBox особых нареканий не вызывает, но сыроватость разработки чувствуется во всем: в требовательности к производительности реального железа, в медленной по сравнению с конкурентными эмуляторами скорости загрузки, в мелких глюках и проблемах по определению реального компьютерного железа (особенно при подключении к виртуальной машине USB- устройств). Но не будем забегать вперед. Обо всем по порядку.

Как известно, все познается в сравнении. Вот мы и будем сегодня сравнивать Innotec VirtualBox с основным конкурентом — Microsoft VirtualPC 2007. Скорость загрузки ОС. Этот параметр, как известно, зависит от нескольких факторов: с одной точки зрения, скорость загрузки той или иной операционной системы зависит от типа самой загружаемой ОС (разные ОС требуют разного времени загрузки). С другой точки зрения скорость загрузки будет зависеть и от реально используемого компьютерного железа. В нашем случае первым фактором можно пренебречь, поскольку тип предустановленных гостевых ОС на обоих типах эмуляторов не отличается. Однако второй фактор амбивалентен: если тестирование эмуляторов проводится в пределах одного ПК, т.е. на одном реальном железе, то эмулируемое программными средствами виртуальное железо будет сильно отличаться. Насколько? Вот это мы и проверим. Сначала перечислим тип используемого в тестировании железа и особенности настройки обеих виртуальных машин. Касательно железа: автором умышленно была выбрана тестовая платформа низшего ценового диапазона для улучшения наглядности разности в показываемых машинами результатах. Вот конфигурация тестового ПК: Athlon XP 2000+, материнская плата Epox на чипсете VIA КТ600, 512 Мб RAM, звук — интегрированный кодек АС'97 Realtek ALC 655, сеть — VIA LAN 6103, видео — GF MX 440 128 Мб, SATA жесткий диск Maxtor DiamondMAX STM 3160812 AS. В качестве настроек эмуляторов были выбраны следующие: используемая RAM — 256 Мб, объем видеоRAM в тесте на скорость загрузки ОС и тесте объема занимаемой памяти ПК при запущенной виртуальной машине для обоих эмуляторов был выбран 8 Мб (для создания равноценных условий). В остальных тестах видео RAM виртуальной машины на основе VirtualPC был равен 8 Мб, а для VirtualBox — 64 Мб. Сеть и звук были активированы. Разрешение обеих машин было выбрано 600х800. Итак, результаты. Время запуска Windows XP для Innotec VirtualBox составило 47 сек. Скорость загрузки той же операционной системы для Microsoft VirtualPC была на 5 сек. меньше, т.е. составила 42 сек. Здесь явно лидирует продукт от Microsoft. Вероятно, в победный результат внесла свою лепту более высокая скорость работы дисковой подсистемы от Microsoft, а также более оптимизированный программный код. Второй тест — тест занимаемой программой системной памяти ПК (в чистом виде, виртуальная машина не запущена).При холостом запуске VirtualBox занимает около 15 Мб оперативной памяти, а VirtualPC — всего лишь около 7 Мб. Как видим, программная оболочка от Microsoft ровно в два раза компактнее своего нового конкурента.

Следующий тест — объем занимаемой системной памяти ПК запущенной и работающей виртуальной машины. Также проверим объем информации, вносимый программами в системный кэш. Как ни странно, но и здесь лидирует Microsoft VirtualPC. Windows XP, запущенная на этой машине, занимает около 259 Мб ОЗУ компьютера, в системный кэш вносится лишь 5 Мб дополнительной информации. Для Innotek VirtualBox показатель занимаемой оперативной памяти составил 336 Мб, в кэш было внесено меньше мегабайта дополнительной информации. Следовательно, VirtualBox с системным кэшем напрямую практически не работает.

И, наконец, последний тест, посвященный эффективности дисковой подсистемы виртуальной машины Innotec. Давайте проверим, там ли кроется корень зла, где мы предполагали ранее. Если наши предположения подтвердятся, то причина постоянного подтормаживания VirtualBox будет раскрыта. В этом тесте с помощью бенчмарка утилиты HD Tune мы проверим сразу несколько важнейших показателей, касающихся работы виртуальных жестких дисков обеих виртуальных машин: минимальную, максимальную и среднюю скорость доступа; время доступа; пиковую скорость доступа и процент отнимаемой вычислительной мощности у центрального процессора машины. Итак, смотрим. Результаты теста просто поражают (см. прилагаемые скриншоты). Абсолютно по всем показателям с огромным отрывом побеждает виртуальная машина от Microsoft. Максимальная скорость доступа диска VirtualBox меньше на 33 Мб/с, пиковая скорость меньше на 51 Мб/с! Дальше еще хуже: среднее время доступа диска VirtualBox составляет целых 5,3 мс против 1,9 мс диска Virtual PC. К тому же, жесткий диск машины Innotec во время теста отнимает у виртуального ПК целых 74,8% производительности против 49,8% у Virtual PC (отрыв почти в два раза!).

Теперь давайте посмотрим на тестовые кривые, отображаемые HD Tune на своем дисплее в обоих случаях. Неравномерность кривой диска VirtualBox просто поражает — рядом с ней кривая конкурентного диска кажется просто эталоном. Без комментариев — думаю, все и так понятно: большинство проблем новой виртуальной машины связано с крайне низкой производительностью ее жесткого диска. Несколько слов касательно тестирования работы эмулируемого видеоадаптера. При обычной работе пользователя в операционной системе виртуальной машины увеличение объема видеоRAM помогает мало (именно поэтому инженеры из Microsoft и не торопятся оснащать свое детище больше чем 8 Мб видеоRAM). Видео в VirtualBox воспроизводится штатным плейером Windows достаточно неплохо, иногда с притормаживаниями, артефактами. Его качество сильно зависит от размера изображения и разрешения картинки. Со звуком в основном все в порядке, хотя при перегрузке виртуальной машины приложениями начинают проявляться искажения в виде подергиваний. Для сравнения: в VirtualPC от Microsoft видео и звук проигрываются чище и практически без артефактов при меньшем количестве видеоRAM. Если вы когда-либо решите использовать видеоадаптер VirtualBox для игр, то смею вас заверить: можете сразу же отказаться от этой идеи. Его мощности пока хватает разве что на штатный "Солитер". К тому же, низкая скорость работы дисковой подсистемы и частые системные подвисания сводят на нет все игровые свойства виртуальной машины от Innotec. Попытка запуска в VirtualBox таких известных игр, как Far Cry и Need for Speed Hot Pursuit (а они без проблем заводятся даже на относительно слабом железе), заканчивалась очередным зависанием виртуальной машины либо оповещением о системной ошибке. Теперь поговорим о прочих особенностях работы виртуальной машины от Innotek. Заодно можно похвалить или пожурить разработчиков программы, высказать несколько пожеланий. Эмулятор имеет некоторые особенности подключения дисков. Так, если вы желаете во время работы виртуальной машины поменять диск в оптическом приводе, то сначала нужно отключить привод в меню программы. Затем следует поменять диск в носителе, а уж затем — вновь подключить привод через меню. Зачастую это не совсем удобно, но другого выхода просто нет — такова задумка авторов программы. Подобным образом можно менять дискеты в дисководе.

Теперь поговорим о главной изюминке продукта — возможности работы с USB-устройствами. USB-устройства могут быть подключены к запущенной и работающей виртуальной машине только после обнаружения их основной ОС. Для переключения устройства на гостевую операционную систему пользователь должен попасть в меню Устройства -> Устройства USB, выбрать нужное устройство из списка и попытаться его подключить. При этом устройство должно появиться в проводнике гостевой ОС и исчезнуть в проводнике основной (по крайней мере, так было на тестовом ПК). Я не зря употребил словосочетание "попытаться подключить", поскольку контроллер эмулятора, к моему разочарованию, позволяет подключать далеко не все устройства с последовательным интерфейсом. Так, на примере автора Windows XP, установленная в качестве гостевой ОС, опознавала и нормально работала с флэш- накопителем Kingston, кардридером NEODrive, но наотрез отказалась подключать сотовый телефон Sony Ericsson K750, цифровой фотоаппарат Canon PowerShot A430 и устройство Bluetooth. Также далеко не с первого раза операционной системой был распознан внешний жесткий диск Maxtor, подключенный к компьютеру по USB-интерфейсу. При подключении этого диска несколько раз происходили системные сбои, и машина переставала реагировать на внешние действия оператора. Однако после первичного распознавания диск стал восприниматься ОС, как говорится, на ура. Одним словом, сыростью в VirtualBox пахнет отовсюду — авторам стоит еще над многим поработать. К сожалению, текущая версия VirtualBox не поддерживает режим прямого копирования ресурсов из основной ОС на диски гостевой и обратно (режим Drag'n'Drop). Также не поддерживается копирование посредством меню Копировать -> Вставить. Хотелось бы видеть эти функции в следующих релизах продукта. Пришла пора подводить итоги.

Итог: К сожалению, текущая версия VirtualBox работает не совсем стабильно, есть масса нюансов, но начало разработчиками уже положено — а это главное. Видеоадаптер от Innotec получил большое количество видеопамяти, но из-за сырости продукта она оказалась в большинстве случаев невостребованной. Радует возможность работы с USB-устройствами, но и здесь кроется масса подводных камней. Меж тем хочется искренне поблагодарить всех разработчиков VirtualBox за появление нового оpеn source продукта для эмуляции ПК и высказать надежду на дальнейшее успешное развитие этого замечательного продукта. Хочется надеяться, что в будущем эмулятор прибавит в стабильности и скорости работы, а пока будем наслаждаться тем, что есть.

Goldman, Goldman2@mail.ru

© Компьютерная газета

полезные ссылки
Корпусные камеры видеонаблюдения