Свой среди чужихАвтор: Илья Данилов Опубликовано: 29.09.2008 Источник: SoftKey.info Загадочным когда-то термином "средство виртуализации" сейчас уже никого не удивишь. Пионером в этой области многие называют VMware, выпустившую первую версию VMWare Workstation в 1999 году.
Виртуальная машина - это способ запустить чужую операционную систему внутри вашей основной. Зачем это надо? Причин может быть много. Например, вы всю сознательную жизнь были поклонником Windows, но купили iPhone и захотели попробовать в деле MacOS; вы планируете начать использовать новую программу, но решили подстраховаться и проверить ее в отдельном независимом окружении; вам важно знать, правильно ли установится дистрибутив вашей программы на все версии Windows, начиная с NT4; наконец, есть некая программа, у которой нет аналога для вашей операционной системы, а запускать и пользоваться - ну очень надо.
Когда-то из такой ситуации был единственный выход: при помощи специальной утилиты Partition magic высвободить место на жестком диске, создать там новый раздел и установить туда очередную ОС, настроив специальный менеджер загрузки. В итоге после включения компьютера появляется возможность выбрать, какую именно ОС загружать. Этот метод не лишен недостатков, в том числе из-за эгоистического поведения инсталляторов Windows, ведущих себя в отношении неизвестных им типов разделов крайне недружественно.
В настоящий момент практически каждый разработчик операционных систем имеет свое средство виртуализации (иногда появившееся в процессе поглощения небольшой фирмы-разработчика вместе с продуктом). Softkey.info уже рассказывал об особенностях Parallels Workstation. Сегодня мы разберем VirtualBox - детище фирмы Innotek, которое недавно приобрела компания Sun Microsystems.
Начнем с главного – это бесплатное ПО с открытыми исходными текстами, изучение которых сильно поднимет профессиональный уровень начинающего системного программиста. Дистрибутивный файл занимает всего 20 мегабайт, но не пугайтесь - это самая настоящая, полнофункциональная виртуальная машина. Вооружитесь диском с дистрибутивом ОС, которую надо подвергнуть виртуализации, и смело запускайте VirtualBox.
Все начинается с кнопки "Создать". Хоть машина и называется виртуальной, для работы ей потребуются самые натуральные ресурсы - в первую очередь оперативная память. VirtualBox запрашивает необходимый фрагмент у "хоста" (обычно так называют основную ОС) и отдает его в распоряжение "гостя" (ОС, которая устанавливается в виртуальной машине).

Вторым по значимости выступает виртуальный жесткий диск: как правило, он существует в виде файла-образа на реальном винчестере. При инициализации необходимо указать размер виртуального диска, который, к сожалению, в процессе работы изменить уже невозможно. К счастью, файлы образов можно делать динамически расширяемыми: их размер вначале составляет порядка 10% от емкости и растет по мере увеличения использованного пространства в гостевой ОС. За рациональное использование свободного места придется расплатиться незначительным понижением скорости за счет фрагментации образа и операций по динамическому приращению его размера.

Таким образом, три настройки являются обязательными: тип устанавливаемой ОС, размер памяти, файл образа жесткого диска. Для остальных параметров можно произвести тонкую настройку через "Свойства".
Перво-наперво надо определить, каким образом виртуальная машина эмулирует привод CD/DVD: это может быть как прямой доступ к реальному устройству, так и использование файла-образа в формате .iso. Довольно удобно скачать образ инсталляционного диска и сразу подключить его к виртуальной машине – минуя бесполезный процесс прожига болванки, попутно драматически повысив скорость чтения.

Разделение сетевой карты происходит за счет создания виртуального сетевого адаптера, который эмулирует для гостевой ОС VirtualBox. Можно выбрать из нескольких вариантов, среди которых пара модификаций популярной карты Intel PRO 1000. Далее необходимо задать способ подключения виртуальной сетевой карты: в большинстве случаев подходит NAT. Просто укажите во время установки гостевой ОС в качестве способа получения IP-адреса DHCP, и все заработает. Всего виртуальная машина поддерживает эмуляцию до четырех сетевых карт, каждую из которых можно сконфигурировать отдельно, вплоть до задания собственного MAC-адреса.

Наконец, для проигрывания звука эмулируется звуковая карта - AC97 или SoundBlaster 16, перенаправляющая звуковой поток "гостя" в звуковую систему "хоста".
Теперь можно вставлять CD/DVD или монтировать образ дистрибутивного диска - и нажимать "Старт". Только не промахнитесь с размером жесткого диска виртуальной машины - иначе придется все начинать сначала. Вот так может выглядеть рабочий стол при достаточном размере оперативной памяти на вашей рабочей станции:
 | | На рабочем столе Windows Vista запущены три виртуальные машины - Windows 2000, Windows XP и GNU/Linux Debian |
Очень скоро вы обратите внимание на одну неприятную деталь: курсор мыши в окне виртуальной машины неподвижен, пока не щелкнуть на ее окне. Но после этого он оказывается "захвачен" и не может покинуть пределов ее окна, пока не будет нажата специальная клавиша (по умолчанию - правый Ctrl). Эта проблема решается установкой в виртуальную машину так называемых дополнений гостевой ОС - после этого мышиный курсор можно свободно таскать по всему десктопу: виртуальная машина сама захватывает и отпускает его, когда он проходит границу ее окна. Попутно повышается скорость отрисовки графики, а буфер копирования "гостя" и "хоста" становится общим.
Возможностей общей Clipboard сначала кажется вполне достаточно, но рано или поздно встает вопрос о полноценном перемещении файлов между "гостем" и "хостом": все-таки файловые системы у них независимы, хоть и находятся на одном физическом диске. Вариантов много: самый изощренный – создать на "хосте" ftp-сервер и подключаться к нему из гостевой ОС. Самый простой - создать общую папку:

Возможность организации общих папок также появляется после установки дополнений гостевой ОС. Сначала надо определить подкаталог в файловой системе "хоста", через который будет осуществляться обмен, а также имя общего ресурса. В гостевой системе Windows для доступа надо использовать сетевое подключение \vboxsvrимя_ресурса, а в Linux - монтирование командой mount -t vboxsf имя_ресурса.
На практике этот метод оказался слегка нестабильным – часто размер созданных файлов в файловой системе "хоста" и "гостя" значительно отличался в сторону увеличения, лишнее место заполняли нули. Проблема устранилась с выходом новой версии VirtualBox, но сначала мне пришлось использовать другой способ, требующий наличия USB-накопителя типа Mass Storage. Подключите его к компьютеру и отправляйтесь на закладку USB в свойствах виртуальной машины:

Принцип прост: надо создать фильтр, по которому VirtualBox будет определять, что подключенное USB-устройство должно быть полностью захвачено виртуальной машиной. Вручную заполнить поля фильтра проблематично: обычно пользователь понятия не имеет ни об ID продукта своего флеш-накопителя, ни тем более о его серийном номере. Хотя всю эту информацию можно извлечь из реестра, гораздо проще воспользоваться автофильтром: VirtualBox сам подставит параметры подсоединенного в данный момент устройства. Вам остается только выбрать, какого именно.
Замечу, что в этой схеме существует одна тонкость. Настройка фильтра USB возможна только при остановленной виртуальной машине, что создает определенные неудобства: чтобы прочитать данные, записанные "гостем" на накопитель, надо выключить виртуальную машину - и только после этого накопитель станет снова доступен "хосту". Чтобы избежать лишних телодвижений, необходимо добавить в фильтр значение в поле "Порт", по умолчанию пустое. Это приведет к тому, что VirtualBox будет "захватывать" описанный фильтром USB-накопитель не в любом разъеме USB, а только в одном определенном. Иными словами: вставили в него накопитель – сделали его доступным "гостю", вынули и переставили в соседний разъем – с ним работает "хост".
Конечно, список возможностей VirtualBox на этом не исчерпывается. Подобно CD/DVD, можно захватывать или эмулировать дисковод, использовать COM-порт (например, в режиме для отладки ядра внутри виртуальной машины), выполнять операции через командную строку и встроенный веб-сервер, подключаться к виртуальной машине через вполне стандартный RDP. В довершение всего выпускается VirtualBox SDK, позволяющий программам сторонних разработчиков манипулировать виртуальными машинами через основной API VirtualBox.
Немного о том, чего не умеет VrtualBox. В первую очередь "хост" должен иметь процессор семейства x86 - совместимы большинство современных решений от Intel и AMD. Пользователям PowerPC/MacOS придется использовать Microsoft Virtual PC for Mac или Parallels Desktop for Mac.
В качестве гостевых ОС пока не поддерживаются 64-битные. Это значит, что попытка установить в VirtualBox Windows XP/Vista x64 не будет иметь успеха.
Подведем итог: бесплатное решение, которое спонсирует Sun Microsystems, работает стабильно, не требует много места на жестком диске и во многом не уступает своим платным аналогам. VirtualBox постоянно совершенствуется: в начале сентября текущего года состоялся первый публичный релиз 2.0.0 с поддержкой 64-битных гостевых систем, "родного" GUI для MacOS Leopard и асинхронного ввода-вывода SATA на уровне NCQ. Не забывают разработчики и о "старичках": добавлена интеграция буфера обмена для OS/2. Будем надеяться, что до конца года нестабильный 2.0 заменит текущую стабильную ветку 1.6.
В заключение советую не терять бдительности. Запуская и сравнивая различные ОС в виртуальной "песочнице" VirtualBox, можно незаметно растратить последние остатки свободного места на жестком диске!
|