эмуляция
27 коммент.
Установка
Всё описанное далее разворачивалось на Debian GNU/Linux. Пакет VirtualBox_1.3.6_Debian_sarge_i386.deb при установке потянул за собой libxalan18 и libxerces25 суммарным объёмом на 7 Мб. К тому же потребовал заголовков ядра - при установке собирается ускоряющий модуль.

Установка прошла гладко, при этом была создана новая группа vboxusers.
Creating group 'vboxusers'. VM users must be member of that group!Собственно, после этого следует добавить своего пользователя в эту группу:
sudo gpasswd -a beast vboxusersПерелогиниваемся в систему - вот и всё. Теперь, если посмотреть вывод lsmod, можно увидеть там модуль нового эмулятора.
vboxdrv 28420 0Кстати, несколько забегая вперёд, если у вас при этом загружен kqemu, то ничего страшного не произойдёт: оба эмулятора могут работать вместе одновременно, в любых режимах и с любыми ОС внутри. Соседствуют мирно, работают без нареканий на общее благо простого линуксоида.
Несколько слов о VirtualBox
Как говорится на официальном сайте, VirtualBox основан на QEMU и использует некоторые его наработки. При этом поддерживаются возможности новых процессоров, обладающих аппаратной виртуализацией - но это не мешает использовать эмулятор и на обычных процессорах.
VirtualBox в работе
Довольно умных фраз о тонкостях виртуализации: самое время запалить что-нибудь интересное внутри этого ящика. Запускаем его, набирая в консольке
VirtualBoxи перед нами должно появиться графическое окошко. Интерфейс его очевиден - кнопки с простыми названиями типа New и Start в пояснениях не нуждаются. Поэтому сходу создаём новую виртуальную машину:

Программа будет выдавать окошки, в которых графическим способом придётся задавать параметры будущей виртуальной машины. Сначала это развлекает, но потом, кстати, начинает утомлять: если мне надо быстренько запалить Кноппикс, приходится тыкать по всем кнопкам сначала - в QEMU и bash_history всё куда быстрее...
Одна вещь в VirtualBox радует: это динамически задаваемый размер виртуального жёсткого диска. Задаём начальный размер, и он будет увеличиваться по мере надобности.

Все настройки сделаны, теперь жмём Start и пробуем установить внутри, например, свой любимый дистрибутив.

Особенности работы с VirtualBox
Тем, кто долго работал с QEMU, многое в VirtualBox будет понятно, но есть и существенные отличия. Если ткнуть в "экран" виртуальной машины, клавиатура и мышь подключаются к гостевой ОС. При этом для выхода из режима гостевой ОС нужно нажать на правый CTRL, а не на ALT+SHIFT по привычке. Кроме того, для перехода на другую раскладку в гостевой ОС нажимаем комбинацию клавиш хост-системы. Мелочь, а неприятно оказаться отрезанным от своей родной системы - и справку не откроешь...
Кроме того, есть глюки с полноэкранным режимом: однажды не удалось переключиться обратно после того, как в полноэкранном режиме я попытался сделать скриншота в гимпе из хост-системы. В QEMU это проходит без вопросов, а тут не смог переключиться обратно - пришлось сбрасывать иксы.
В полноэкранном режиме VirtualBox не переключает экран в более низкое разрение, как при использовании SDL, а просто выводит на чёрном поле экран гостевой ОС, как mplayer с видеовыводом x11. При этом графический интерфейс гостьОС начинает ощутимо тормозить.
Есть у VirtualBox и консольный интерфейс, использующий SDL - как QEMU. Но синтаксис команд, несколько скудно описанный в справочнике, довольно замороченный. И быструю справку по нему не получить: только в графическом режиме.
Загрузка и выгрузка ядерного модуля эмулятора
Если VirtualBox используется на машине, работающей в режиме 24/7, то наличие в памяти ядерного модуля может быть нежелательным
sudo rmmod vboxdrvто загрузка модуля имеет особенности.
Для загрузки и приведения в рабочее состояние модуля для VirtualBox нужно не только загрузить его, но и дать полные права файлу-устройству:
sudo modprobe vboxdrvиначе будете получать при запуске эмулятора следующую ошибку:
sudo chmod 777 /dev/vboxdrv
/dev/vboxdrv not writable for some reason. If you recently added the currentПосле этого ядерный модуль заработает в штатном режиме. Опять-таки, в отличие от QEMU, нельзя запустить VirtualBox без ускорителя.
user to the vboxusers group then you have to logout and re-login to take the
change effect.
Скорость эмуляции VirtualBox
Эмулятор очень шустрый, особенно при операциях с графикой: графический интерфейс гостьОС совершенно не тормозит в оконном режиме. Скорость работы как с Linux (на примере Кноппикса), так и со Windows XP примерно такая же, как и в QEMU. Только графика отзывчивее. Кроме того, при работе эмулятора происходит постоянная загрузка процессора под 100% - новый QEMU в этом плане куда экономнее.
Точность эмуляции VirtualBox
Скорость - это хорошо, но хотелось бы ещё и точности эмуляции. Под этим подразумевается сходное поведение гостьОС внутри эмулятора и на реальном железе.
Linux (Кноппикс и Дебиан) и BSD-системы (Frenzy) работали нормально, быстро и без глюков. C Windows нужно быть готовым к нештатным ситуациям: например, отмонтирование и выброс CD-ROM в эмуляторе приводит к мгновенной перезагрузке Windows внутри эмулятора.
Попытка запуска внутри VirtualBox BeOS и Haiku приводит к одному результату: эти ОС вываливаются в kernel panic. Хотя Haiku в QEMU идёт без проблем.
Выводы
Некоторое время использования VirtualBox позволяет поделиться следующими впечатлениями.
Что понравилось
- удобен для новичков и всех, кто не часто пользуется виртуальными машинами;
- хорошая поддержка USB;
- задел на будущее - есть поддержка аппаратной виртуализации;
- отличная работа с графикой: графические интерфейсы гостьОС не тормозят, работать можно с комфортом.
Что НЕ понравилось
- глюки полноэкранного режима - определённо следует дорабатывать;
- консольный режим не проработан: нельзя получить быструю справку по ключам эмулятора, нельзя указать много параметров (как в QEMU);
- не может работать без модуля виртуализации - не всегда хочется, чтобы в памяти болтался сомнительного содержания ядерный модуль;
- документация - только в хелпе графического интерфейса, никаких манов;
- довольно посредственная точность эмуляции, особенно экзотических и альтернативных ОС.