Для чего нужны виртуальные машины? Виртуальная машина VirtualBox – что это такое и зачем она нужна? Что такое носок и виртуальная машина

Виртуальная машина (Virtual Machine) - это программная среда, которая эмулирует аппаратную составляющую компьютера со всеми его компонентами. По существу, виртуальная машина - это отдельный виртуальный компьютер, на который можно будет устанавливать операционные системы, программы, драйверы и т. п., которые потом можно будет запускать изолированно от основной операционной системы, установленной на данном компьютере.

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

Например, на вашем компьютере установлена операционная система Windows 7, а вы хотите попробовать в работе другую операционную систему: Windows 8.1, или Windows 10. Вы пока не готовы сразу перейти на более новую операционную систему, поэтому установив Windows 10 на виртуальную машину, вы можете подробно ознакомиться с ее работой и возможностями, получить необходимые навыки.

Параллельно вы можете установить в виртуальную машину другие операционные системы: различные дистрибутивы Linux, Mac OS X и т. д. Одновременно вы можете использовать на своем компьютере, например, на основной системе Windows 10, а на виртуальной машине Windows 7, Ubuntu, и Mac OS X.

Наиболее популярные программы для создания виртуальных машин (ВМ) для обычных пользователей (есть большой корпоративный сегмент систем виртуализации): Oracle VirtualBox (бесплатная), VMware (бесплатный для личного пользования VMware Player, платная VMware Workstation), Parallels (для компьютеров с Mac OS X), Windows Virtual PC (в Windows 7, начиная с редакции Pro, поддерживается бесплатная установка виртуальной среды Windows XP Mode), Hyper-V (работает в x64 битных версиях Windows, начиная с Windows 8) и другие.

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

Использование виртуальных машин

Виртуальные машины (ВМ), в основном, применяют для следующих целей:

  • установка другой операционной системы для изучения, или работы
  • тестирование незнакомых программ без риска для основной операционной системы
  • использование программ, которые не могут работать на вашем компьютере
  • настройка локальной сети
  • безопасный запуск подозрительных приложений
  • одновременная установка на компьютер нескольких операционных систем

Например, на моем компьютере в разное время, были установлены в виртуальной среде следующие операционные системы: Windows XP, Windows 7, Windows 8.1, Windows 10, Mac OS X, Linux Mint, Android.

Работа в операционной системе, установленной в виртуальной машине, ничем не отличается от работы в обычной системе, установленной на компьютере. Это обычная ОС, запущенная в виртуальной среде. Вы можете делать все, что хотите, не боясь «убить» Windows, или другую систему. Если в результате ваших действий ОС станет неработоспособной, то вы можете просто удалить эту операционную систему, взамен установив другую.

Во многих виртуальных машинах весть возможность для создания снимка системы, поэтому вы без труда можете восстановить «убитую» ОС.

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

На этом изображении вы можете увидеть, что на моем компьютере установлена Windows 10, а в окне виртуальной машины (я специально уменьшил окно программы виртуализации) запущена операционная система Windows 8.1. Таким образом, на моем компьютере в этот момент работали одновременно две разные операционные системы, независимо друг от друга.

Операционная система, установленная в виртуальной машине, будет работать изолированно от основной операционной системы, установленной на вашем компьютере. Вы можете делать что угодно, с установленной на виртуальной машине Windows (или другой операционной системой). Основная система, установленная на вашем компьютере, не будет затронута работой в виртуальной машине, или другими производимыми изменениями в операционной системе, установленной на виртуальной машине.

Вы можете тестировать незнакомые программы на виртуальной машине, перед установкой их на реальную систему. ОС Windows, или другую операционную систему (если она не бесплатная), необходимо будет активировать.

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

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

Вы можете безопасно посещать подозрительные сайты, рискуя только гостевой системой, установленной в ВМ.

На этом изображении, на виртуальной машине VMware Workstation запущена операционная система Mac OS X, в окне которой открыт браузер Safari. В VMware Workstation гостевая система может быть раскрыта на весь экран монитора вашего компьютера.

При использовании виртуальной машины, наряду с достоинствами, есть и некоторые недостатки. Основная проблема: на маломощных компьютерах работа в гостевой системе, установленной на виртуальной машине, может замедляться (зависать, тормозить). Это вызвано тем, что в это время ресурсы вашего компьютера одновременно потребляют две операционные системы: основная, установленная на вашем компьютере, и гостевая, установленная в виртуальной машине.

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

Если вы желаете попробовать работу другой операционной системы Windows на своем компьютере, а из-за малой мощности компьютера, работа в виртуальной машине будет затруднена, то вы можете установить другую систему на виртуальный жесткий диск (VHD). Подробнее об этом можно прочитать . При таком варианте, вы будете по очереди запускать операционные системы на своем компьютере.

Работая с виртуальной машиной, вы можете без проблем удалить оттуда любую операционную систему без каких-либо последствий для своего компьютера, а также удалить со своего компьютера программу - виртуальную машину.

Заключение

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

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

Это безопасно, это интересно, более того - это даже полезно для развития. Программа VirtualBox – пожалуй, единственный широко известный представитель софта, который предоставляет упомянутые возможности.

Она бесплатна, проста и понятна в работе даже для начинающих пользователей. Как с помощью VirtualBox установить виртуальную операционную систему Windows? Этот вопрос и рассмотрим ниже.

Шаг 1. Создаем виртуальный компьютер

Со скачиванием и установкой VirtualBox вряд ли возникнут какие-либо проблемы, ее можно свободно скачать с официального сайта разработчика , а устанавливается она стандартно.

Запущенная программа откроется с окном приветствия, где необходимо нажать команду - «Создать».

Появившееся окно предоставит вам выбор поддерживаемых программой операционных систем. Выбираем необходимую, ее версию, задаем имя виртуальному компьютеру. Жмем «Вперед».


Указываем какую систему создаем:

Корректная работа Windows XP будет обеспечена и объемом в 512 Мб оперативной памяти, а вот для Windows 7 лучше выделить 800-900 Мб.

Заходить в красную секцию шкалы, тем самым отдавая виртуальному компьютеру больше половины аппаратного потенциала физического компьютера, нельзя. Жмем «Вперед».

В следующем окошке выбора жесткого диска выберите опцию создания нового жесткого диска.

В следующем окошке новичкам лучше выбрать формат хранения - фиксированный диск, поскольку он работает немного быстрее, чем динамический. Жмем «Вперед».

Эта цифра также будет отобрана у памяти физического жесткого диска, потому необходимо подобрать оптимальный объем, которого хватит и для целей работы виртуального компьютера, и это не будет в ущерб физической памяти.

Для Windows XP можно выделить 5 Гб, а для Windows 7 – порядка 15 Гб. Здесь же, с помощью кнопки обзора, виднеющейся в конце первой строки, выбираем директорию физического компьютера, куда будет помещен жесткий диск виртуального.

Выбирать лучше место на несистемном диске. Команда «Создать» запустит процесс создания жесткого диска виртуального компьютера, после чего можно будет полюбоваться параметрами новосозданного виртуального компьютера.

Шаг 2. Устанавливаем операционную систему на виртуальный компьютер

Виртуальный компьютер создан, и на него можно установить операционную систему. Нажимаем команду «Запустить».


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

В отдельном окне VirtualBox откроется знакомое меню установки Windows. Дальнейшие шаги ничем не отличаются от процесса установки Windows на физический компьютер.

После окончания установки отдельное окно Virtual Box отобразит только что установленную операционную систему, с которой можно индивидуально работать в рамках этого окна.

Зачем, спросите Вы, нужны такого рода программные продукты? Сейчас попытаемся разобраться в этом, а также научимся устанавливать и настраивать виртуальные машины с помощью программы VirtualBox .

Что такое виртуальная машина и зачем она нужна?

Виртуальная машина (Virtual Machine ) – программа, эмулирующая аппаратное обеспечение компьютера, т.е. это некий виртуальный компьютер, на который можно устанавливать операционную систему и все сопутствующее программное обеспечение, при этом никаких изменений в Вашей основной операционной системе не будет.

А зачем же нам нужна эта самая виртуальная машина? Лично я нашел в этом две, но очень значимые причины:

  • Всем же когда-нибудь хотелось увидеть, как выглядят другие операционные системы такие как: Linux, Solaris, да и просто другие версии Windows. Но сносить свою систему не охота, так как вдруг Вам новая ОС не понравится и придется переставлять заново. Поэтому есть такое решение как виртуальная машина, с помощью которой Вы легко можете устанавливать в ней другие ОС, а соответственно и протестировать их, без переустановки своей системы.
  • Подойдет для тех, кто уже овладел основами компьютера и хочет знать больше, например, как настраивается компьютерная сеть? как настраиваются различные службы сервера и так далее, на помощь Вам придет все та же самая виртуальная машина, с помощью которой Вы можете установить несколько операционных систем (причем разных!) и так сказать проводить опыты, без вреда своей операционной системе. Это отлично помогает в освоение компьютерных технологий, так как виртуальная машина помогает практиковаться, если конечно у Вас дома есть несколько компьютеров (3-4), то это другой разговор.

Теперь перейдем к самим виртуальным машинам. Для домашнего использования я отдаю предпочтения VirtualBox , но, конечно же, программ бывает много таких как: Virtual PC или продукты компании VMware, которые, кстати, подойдут для использования на работе (тем, кто работает сисадминами ), например, для создания нескольких серверов на одном компьютере, тем самым Вы сэкономите достаточно много средств на компьютерном железе. VirtualBox является бесплатной, и доступна для скачивания, на официальном сайте virtualbox.org

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

Теперь перейдем к установке и настройке VirtualBox. Сама установка программы абсолютно стандартная и Вы ее можете установить без проблем, поэтому я этот процесс описывать не буду.

После того как Вы установили программу, запустите ее и увидите следующие окно.

В поле «Имя» введите имя Вашей ОС, например Linux Ubuntu, а в поле «ТИП ОС» выберите ту операционную систему, которую будете устанавливать (у меня, например, это Linux версии Ubuntu ) с помощью выпадающего списка и жмите «Далее ». В следующем окне (рисунок ниже ) необходимо указать, сколько будет оперативной памяти на нашем новом компьютере, т.е. виртуальной машине, необходимо переместить ползунок в зелененькую часть, рекомендую оставлять по умолчанию, не обязательно задавать много.

Выбираем «Создать новый жесткий диск », так как у нас, его еще нету (я имею в виду виртуального ) и ставим галочку «Загрузочный жесткий диск ». Жмем «Далее» и запустится мастер создания нового виртуального диска, и в этом окне жмем «Далее ». В следующем окне, Вам предложат выбрать, каким будет Ваш новый жесткий диск, «Динамически расширяемым », т.е. с увеличением объема данных на нем размер будет увеличиваться или «Фиксированного размера », т.е. постоянный размер, рекомендую выбирать «Динамически расширяемым ». Жмем «Далее », появится следующее окно.

Здесь указываем, где будет храниться файл нашего виртуального жесткого диска, рекомендую хранить его не на диске C, также здесь задаем размер нашего диска я, например, указал 8 гигабайт. Жмем «Далее », затем подтверждаем создание нового жесткого диска и жмем «Готово ». Осталось только подтвердить создание виртуальной машины.

Мы с Вами проверяем наши параметры создания виртуальной машины и жмем готово.

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

Можете выбрать тот привод, в котором вставлен диск с ОС, а можете нажать на выбор «Образа », с которого можно будет загрузиться, т.е. например ISO, я выбираю образ и нажимаю соответствующую кнопочку, в итоге у Вас запускается «Менеджер виртуальных носителей ».

Жмите кнопку добавить и выбирайте свой образ, после того как Вы выбрали образ, жмите кнопку «Выбрать ». И уже в поле носитель у Вас появилось название Вашего образа, жмите «Далее » затем готово. И наконец-то пойдет загрузка Вашего образа, т.е. установка ОС. Не забудьте после установки операционной системы демонтировать образ диска, чтобы Ваша ОС уже грузилась с Вашего жесткого диска, т.е. виртуального жесткого диска. Это можно сделать, зайдя в настройки виртуальной машины, а конкретно в меню «Носители ». Выберете в окне «Носители информации » свой образ и в поле «Привод » поставьте «Пусто ». Вот в принципе и все, что я хотел рассказать о виртуальной машине VirtualBox.

Вот небольшая видео-инструкция, в которой я рассказываю о том, как установить программу VirtualBox на операционную систему Windows 10.

Какая на твой взгляд самая лучшая виртуальная машина ?

Я не буду выдумывать велосипед и пересказывать других. Лучше я вам предложу прочитать статью из журнала Linux Format. В которой эксперты сделали сравнительный обзор пяти популярных виртуальных машин в надежде найти ту самую.., самую лучшую виртуальную машину. Кстати, тем кто отрекся и смог убежать из плена Windows очень рекомендую .

  • Что такое виртуальная машина
  • Зачем нужна виртуальная машина
  • Как мы тестировали Виртуальные Машины
  • Производительность
  • Функциональность
  • Совместимость и снапшоты
  • Интеграция с рабочим столом
  • Графическое ускорение
  • Вердикт

Что такое виртуальная машина

Если простым языком, без занудства, то виртуальная машина — это операционная система в операционной системе.

Зачем мне нужна виртуальная машина

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

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

Сперва мы взяли двуядерный компьютер (из-за бюджетных ограничений) со свежим Arc Linux. Кроме проприетарной VMware (версия 7.1.0 Рlауег и 30-дневный пробный период Workstation 11), мы использовали официальные пакеты Arch, которые очень близко следуют релизам разработчиков. На каждой машине было 2 ГБ системной ОЗУ и 128 МБ видеопамяти (при необходимости - 256 МБ).

Мы тестировали каждого кандидата на разных гостевых ОС: Mint 17.1 и Kubuntu 15.04 beta, а также разных версиях не-Linux ОС под названием Windows. Для оценки производительности мы скомпилировали основное ядро Mint, запустили сравнительный тест JavaScript SunSpider и сыграли в разные игры из нашей библиотеки Steam. Чтобы протестировать реальные варианты, мы запустили их на 8-ядерной машине с 16 ГБ ОЗУ и 4-ГБ Nvidia GTX, но потом нас заставили ее вернуть.

Технология виртуализации фундаментально изменила компьютерный ландшафт. Мы бы опозорились, заявив, что это - новое изобретение (ранние мейнфреймы использовали ее как сред ст во предоставления ресурсов), но десятилетней давности инновации CPU означают, что почти родной производительности вы добьетесь разве что с кодом x86. А ныне нам удается впихнуть десятки машин (легко копируемых и восстанавливаемых) в один корпус, и работа дата-центров стала гораздо эффективнее. Можно и имитировать другую архитектуру, скажем, ARM, что удобно для разработчиков встраиваемых систем.

Это также благо и для обычных пользователей: знакомство с новой ОС теперь не обязано быть столь затратным по времени упражнением в постоянном страхе угробить свою систему. Даже если вы просто хотите протестировать новую программу, это намного безопаснее сделать в виртуальной машине вместо того, чтобы рисковать своей текущей настройкой. Поддержка виртуализации внутри ядра (через KVM) и эмулятор Qemu означает, что пользователям Linux больше незачем прибегать к проприетарным инструментам.

В былые дни VirtualBox от Sun (некогда принадлежавшая Innotek, а теперь Oracle) был единственной реальной опцией. Но времена изменились, так что давайте рассмотрим и другие приложения виртуализации.

И VMware, и VirtualBox используют зависимые от ядра модули, которые загружаются, чтобы сотворять свои чудеса. VMware понадобится их скомпилировать, для чего придется установить пакеты заголовков ядра и всю начинку компилятора. Потом вы получите скрипт init для загрузки указанных модулей, хотя для пользователей Systemd он будет бесполезен. Если это ваш случай, вы, возможно, пожелаете создать собственный файл init, вместо того, чтобы все время запускать этот скрипт как root (или видеть всё те же сообщения об ошибках). На момент написания статьи ядра серии 3.19 требовали подлатать исходники VMware, но, надеюсь, к моменту выхода журнала это уже будет исправлено. Пакеты VirtualBox в большинстве дистрибутивов имеются, и если у вас стандартное ядро, можете уже ни о чем не волноваться.

Virt-Manager требует, чтобы до его запуска в вашей системе был запущен сервис libvirtd, о чем вас уведомит любезное сообщение, и если вы используете полнофункциональную среду рабочего стола, то она сама сделает это за вас; вам останется только ввести пароль root.

И VirtualBox, и VMware Workstation достаточно просты, если только вы не вздумаете отвлекаться на каждую опцию. А вот в VMware Player опций не так уж и много, и вы очень быстро настроите и запустите свою машину. Но если вы полны решимости задействовать все эти опции по максимуму, придется установить гостевые дополнения.

Гостевые дополнения Linux для VirtualBox намного проще в установке (CD запустится автоматически), чем дополнительные «инструменты» для VMware, требующие копирования программ с воображаемого CD, изменения разрешений и затем запуска скрипта. Неужто на дворе 1999 год? Зато, проделав все это, вы будете вознаграждены улучшением графики и рядом добавочных функций, которые мы обсудим дальше.

Простейшим в использовании из нашей подборки является Boxes, пусть даже это обусловлено предоставлением всего только голого минимума функций Qemu / libvirt. VMware Player и VirtualBox идут вторыми, а следом - их платный соперник (номинально они труднее, в силу большего количества опций). Virt-Manager не особенно сложен в использовании, но в нем вполне достаточно от лабиринта настроек Qemu, чтобы ошеломить новичка. Помимо этого, механизм для управления хранением у него довольно-таки запутанный, особенно если вы собираетесь хранить свой виртуальный диск в нестандартном месте: тогда вам сначала надо добавить требуемую директорию в качестве «пула хранения». Однако все необходимые экзотические модули предоставит ваш собственный дистрибутив, а в таком случае почему бы и не рискнуть.

Производительность

Медленную или проворную ВМ они для вас создадут?

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

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

Здесь мы не берем в расчет 3D-производительность - это было бы не совсем честно, и для нее есть собственная категория через страницу. Однако для повседневных задач с использованием Terminal вы вряд ли заметите особую разницу между нашими кандидатами. Эксперименты с компиляцией ядра показали, что VirtualBox солидно отстает в соревновании. Сравнительный тест JavaScript SunSpider подтвердил этот вывод: обе задачи выполнились на 20 % медленнее, чем у остальных. Ввод/вывод (I/O) диска (особенно если диск у вас SSD) и сетевой трафик у всех наших кандидатов отличались быстротой. В конечном итоге VMware обеспечила себе перевес благодаря поддержке более новых процессоров Intel.

Функциональность

Что способен предложить каждый кандидат?

Все наши кандидаты предназначаются для разных сценариев использования, и поэтому у каждого имеются свои собственные, индивидуальные преимущества. Конечно, наличие некоторых стандартных функций безусловно подразумевается: к таковым, например, принято относить способность создать моментальные снимки, поддержку расширений процессоров Intel VT-x и AMD-V и гибкую настройку виртуального оборудования. Всё это предлагается всеми, однако некоторые приложения способны на более героические подвиги.

Здесь следует сделать оговорку, что Gnome Boxes и Virt-Manager являются всего-навсего интерфейсами к Qemu (через уровень абстракции libvirt). А Qemu по существу является эмулятором процессора, который способен обеспечивать виртуализацию через KVM, но тем не менее представляет собой целый мир.

Итак, займемся рассмотрением наших кандидатов по отдельности.

Gnome Boxes ★★

При вызове из командной строки Qemu поддерживает массу опций, большая часть которых в Gnome Boxes отсутствует: его целью (реализованной) является простота и понятность внешнего вида и работы. Через его удобный интерфейс мастера можно настроить виртуальную машину буквально тремя щелчками - направьте только его на соответствующий ISO. Boxes абстрагирует разницу между виртуальной и удаленной машиной, и вы можете соединяться и с той, и с другой через протоколы VNC, SPICE (который позволяет аудио работать через сеть) или OVirt.

Gnome Boxes

Boxes не предлагает особых возможностей управления вашей виртуальной машиной через сеть, но, по крайней мере, предоставляет всё колдовство NAT, необходимое, чтобы обеспечить общение вашей виртуальной машины с миром. Остальные кандидаты с успехом настраивают NAT, сетевые мосты или сети host-only, и все это в определенных обстоятельствах бывает весьма удобно.

Virt-Manager ★★★★

Virt-Manager (он же Virtual Machine Manager) предлагает значительно больше функций Qemu (но опять-таки не все). Он, похоже, переборщил со своим списком поддерживаемых операционных систем x86, в частности, из семейства Linux.


Virt-Manager

Если оставить это в стороне, Virt-Manager относительно легко позволяет настроить машину любой сложности - можно добавлять любое оборудование, в том числе несколько сетевых интерфейсов. Помимо ВМ KVM, Virt-Man-ager умеет задействовать поддержку Qemu/ libvirt для гостей Xen и контейнеров LXC. Опционально он также может опрашивать гостевые ресурсы и, таким образом, обеспечивать очень симпатичные графики (вроде тех, что в разделе Производительность на стр. 25, на что требуется около 30 секунд после запуска Windows 10). Кроме того, Virt-Manager использует недавно добавленную в Qemu поддержку USB 3.0.

Совместимость и снапшоты

Можно ли перемещать виртуальные машины между реальными?

Иногда бывает нужно переместить ВМ между гипервизорами. Все наши программы могут импортировать машины, хранящиеся в формате Open Virtual Appliance (OVA), который является просто tar-архивом с образом диска VMDK (VMware), и данные о виртуальном оборудовании. VirtualBox разрешает экспорт в этот формат, но имеет еще и свой - Virtual Disk Image (VDI), а также справляется со всеми остальными.

Команду qemu-img можно применять для конвертирования форматов. Особо отметим его любимый формат QCOW2, позволяющий хранить многочисленные моментальные снимки системы внутри, с помощью отличного приема Copy On Write (COW).

Boxes, Virt-Manager, VirtualBox и VMware Workstation поддерживают моментальные снимки системы, сохраняя разные состояния своей ВМ. VMware Player позволяет иметь только один моментальный снимок для каждой машины в дополнение к ее текущему состоянию. Так что глубокое регрессионное тестирование исключается.

VirtualBox и VMware Workstation способны также «клонировать» ВМ, и это эффективный метод создания моментальных снимков системы: данные записываются на соответствующий клон, только если его состояние отличается от состояния родителя. VMware позволяет монтировать гостевой образ VMDK на хост, что тоже бывает удобно, хотя такой же трюк можно проделать посредством конвертирования в образ диска raw и использования стандартных инструментов Linux и арифметики, чтобы рассчитать смещение разделов.

VirtualBox ★★★★

Будучи изначально клиентом виртуализации рабочего стола, VirtualBox до сих пор, вероятно, основной инструмент для многих. У этой программы четкая структура, что упрощает настройку виртуальной машины, и множество полезных опций. Помимо ограничения количества ядер CPU, к которым имеет доступ гостевая ОС, VirtualBox позволяет указать предельный уровень использования CPU гостем в процентах. VirtualBox также поддерживает запись видео, так что за вечер вы сможете записать руководство по Windows для своего канала YouTube.


VirtualBox

Он может импортировать любые виртуальные диски, но предлагает только поддержку хост-контроллера USB 2.0, да и то только если вы установите проприетарный пакет расширений Oracle. Опции с распределенным доступом буфера обмена и drag-and-drop (в одном или в обоих направлениях, как пожелаете) весьма удобны. В VirtualBox имеются удобные индикаторы для сетевого и дискового I/O и для использования CPU.

Кстати, в статье « » мы подробно рассказывали о том, как установить и правильно настроить виртуальную машину VirtualBox.

VMware Player ★★★

Свободное предложение от VMware прошло долгий путь с момента своего появления в 2008 году. Самое примечательное, что это уже не плейер: он более чем способен создать для вас качественную виртуальную машину.


VMware Player

Помимо поддержки ряда сетевых конфигураций (NAT, bridged, host-only и т.д.), он предлагает очень симпатичные опции формирования сетевого трафика, что весьма удобно, если вы тестируете последнюю версию, скажем, клиента DDoS или смотрите, сколько вредоносных программ можно навесить на свою виртуальную машину Windows XP, пока она не лопнет. VMware также поддерживает устройства USB 3.0, а установка гостевых инструментов позволит использовать блестящую графику, буфер обмена с распределенным доступом и директории с распределенным доступом. Player несколько уступает, когда речь идет о моментальных снимках (он позволяет сделать только один), но мы раскритиковали его в предыдущем разделе.

VMware Workstation ★★★★★

Имеется несвободная версия VMware Player (VMware Player Pro), но мы решили, что для данного Сравнения будет уместнее взять вместо нее более высококачественную Workstation. В этом приложении предусмотрено множество дополнительных функций для разработчиков, в том числе возможность группировать виртуальные машины в своего рода виртуальную фалангу, чтобы вам удавалось одним щелчком заставить их вступить в действие одновременно.

VMware Workstation также предлагает поддержку новых команд современных процессоров Intel, а также позволяет настраивать машины с виртуальными CPU, в количестве до 16 и 64 ГБ ОЗУ. Однако программа Workstation в большой степени нацелена на интеграцию с остальным (довольно увесистым) пакетом VMware, и поэтому будет выглядеть уместнее прочих в среде предприятия.

Интеграция с рабочим столом

Будут ли они конфликтовать с вашей цветовой схемой?

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

VirtualBox использует Qt4, что особенно бесит на рабочем столе Arch Linux на основе Qt, где повсюду используется Qt5, но это лишь нечто вроде нишевого недостатка. Boxes идеально сочетается с Gnome 3, чего и следовало ожидать; Virt-Manager и VMware используют GTK3 и тоже идеально с ним сочетаются.

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

Особо выделяются режимы Unity в VMware (нет, это не способ сделать все убунтовидным) and Seamless в Virtual-Box - оба отображают окна приложений напрямую из гостя на рабочем столе хоста. Это очень хорошо для Linux-ВМ (исключая потенциальную путаницу между окнами гостя и хоста), однако попытка запустить
предпросмотр не слишком удалась; Windows 7 с включенным интерфейсом Aero тоже оказалась не самым приятным опытом.

Все наши кандидаты поддерживают запуск гостя в полноэкранном режиме, и их можно настроить на смену разрешения при изменении размера окна. Для выхода из данного сценария предусмотрены подходящие горячие клавиши. Возможность drag-and-drop на машинах VMware очень удобна, поэтому VMware и побеждает в этой категории.

Графическое ускорение

Можно ли избежать проблем программного рендеринга?

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

Но если требуется 3D-ускорение, надо брать VMware или VirtualBox. Как только вы справитесь с установкой гостевых дополнений (включая уводящий в сторону вопрос VirtualBox, с двойным отрицанием, который пытается отвратить вас от его экспериментальной поддержки WDDM, нужной, например, для интерфейса Windows 7 Aero), вам удастся насладиться 3D-ускорением в VirtualBox и в двух клиентах VMware.


Бум-бум, серебряный молот Максвелла опустился на, э-ээ, улей. Он погиб вскоре после того, как был сделан этот скриншот в Don’t Starve.

VirtualBox позволяет выделять виртуальной видеокарте до 256 МБ системного ОЗУ, а VMware - до 2 ГБ. Обратите внимание, что эти гигабайты не берутся у вашей реальной видеокарты, так что зачастую вы не увидите особых улучшений свыше 256 MБ. VirtualBox также обеспечивает 2D-ускорение для гостевых Windows, что должно способствовать ускорению рендеринга видео, увеличению экрана и коррекции цвета, хотя во многом это зависит от конфигурации хоста - на быструю машину эта настройка не особо повлияет. Виртуальная машина Windows, вероятно, не запустит Battlefield 4 [Поле битвы] или Middle-earth: Shadow of Mordor [Среднеземье: Тень Мордора] (получается, нам сильно повезло, что они портированы в Linux), когда все доведено до 11, но более старые или менее требовательные игры пойдут отлично: мы добрый час угрохали на популярную инди-игру Don’t Starve [Не зачахни], начисто позабыв про наше Сравнение.

На VMware все работало лучше, чем на VirtualBox, но, возможно, дело тут было в более выигрышной конфигурации - на Arch Linux мы использовали самый свежий проприетарный драйвер Nvidia, что могло обусловить перевес одного над другим.

Вердикт

Виртуализация - тема для Сравнений давняя и сложная. Желая запускать 3D-игры, вы даже не взглянете на Gnome Boxes или Virt-Manager, и если только вы не добьетесь в VirtualBox лучших результатов, чем мы, вы выберете своим гипервизором VMware. Но опять же, эта технология отнюдь не такая зрелая, как работающий в родном формате DirectX 11. Возможно, с играми вам даже больше повезет в Wine [Ред.: - Или нет.] при каких-нибудь экспериментальных заплатках производительности. Мы вообще-то не в восторге от лицензий VMware, особенно от той, которая заставляет вас платить после 30-дневного пробного периода, однако для некоторых функции уровня предприятия в Workstation будут истинным благом. В частности, если использовав vCenter Converter из VMware, вы виртуализуете машину одним щелчком - идеально, если требуется протестировать что-то новое на своей текущей системе.

Мы не охватили массу инструментов командной строки, которые идут со всеми нашими кандидатами, но они есть, вместе с более чем обильной документацией. Вы можете применять их в своих скриптах, когда пуститесь во все тяжкие виртуализации, выдвинув целую рать виртуальных машин из безопасной среды командной строки. Возможно, хакеры предпочтут работать с Qemu напрямую, а ищущим простое бесплатное решение с открытым кодом счастье составит Gnome Boxes.


Пузыри выглядят неплохо, если не видеть усилий, затраченных на их рендеринг.

Но в победители выходит только один (ничья - редкое исключение), и на сей раз это Virt-Manager - ну не могли же мы позволить выиграть VMware. Virt-Manager позволяет взнуздать большую часть мощи Qemu, не прибегая к пространным заклинаниям из командной строки. Виртуальные машины можно ставить на паузу, перенастраивать, перемещать и клонировать - и все это без особых хлопот. Единственное, чего ему не хватает - это поддержки графическо -го ускорения, но как знать, возможно, она и появится. VMware Player и Gnome Boxes делят второе место, поскольку они оба набрали высокие баллы за свою простоту, и нам нравится значок Boxes, на котором изображен тессеракт (или гиперкуб, или куб в кубе - как вам будет угодно).

Virt-Manager ★★★★
Всем бы менеджерам так хорошо работать.

VirtualBox ★★
Некогда единственное решение, а теперь на обочине.

VMware Player ★★★
Быстрый и удобный, да вот лицензия подвела.

VMware Workstation ★★
Быстрый и полнофункциональный, но не бесплатный.

Boxes ★★★
Простейший способ установить и настроить ВМ.

Понятие «виртуальная машина» появилось на свет несколько десятков лет назад, еще в конце 60-х годов прошлого века. Вот только применялись тогда виртуальные машины не на персональных компьютерах, а на «больших» ЭВМ типа IBM/370 (или их советского аналога - ЕС ЭВМ), да и задачи у них были несколько иные: предоставить каждому из многочисленных пользователей свой, независимый «кусочек» ресурсов вычислительного монстра.

Зачем нужны виртуальные машины

Сегодня виртуальные машины переживают второе рождение. Один из «отцов» современного поколения виртуальных машин, профессор Розенблюм , объясняет их возрождение двумя основными причинами:

■ появлением большого числа разных операционных систем (ОС), предъявляющих специфические требования к параметрам используемых аппаратных компонентов компьютера;

■ большими затратами на администрирование и сложностью обслуживания компьютеров, на которых установлено несколько различных операционных систем (в том числе в плане обеспечения требуемой надежности и безопасности работы).

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

Такой подход предоставляет пользователям (и/или администраторам вычислительных систем) целый ряд преимуществ. К ним в частности относятся:

■ возможность установки на одном компьютере нескольких ОС без необходимости соответствующего конфигурирования физических жестких дисков;

■ работа с несколькими ОС одновременно с возможностью динамического переключения между ними без перезагрузки системы (рис. 1.1);

■ сокращение времени изменения состава установленных ОС;

■ изоляция реального оборудования от нежелательного влияния программного обеспечения, работающего в среде виртуальной машины;

■ возможность моделирования вычислительной сети на единственном автономном компьютере.

Рис. 1.1. Несколько виртуальных машин на одном рабочем столе


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

■ освоение новой ОС;

■ запуск приложений, предназначенных для работы в среде конкретной ОС;

■ тестирование одного приложения под управлением различных ОС;

■ установка и удаление оценочных или демонстрационных версий программ;

■ тестирование потенциально опасных приложений, относительно которых имеется подозрение на вирусное заражение;

■ управление правами доступа пользователей к данным и программам в пределах виртуальной машины.

Читатель, вероятно, и сам без труда дополнит приведенный перечень двумя-тремя ситуациями, когда наличие на компьютере виртуальной машины оказалось бы весьма кстати.

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

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

На веб-сайтах разработчиков виртуальных машин можно найти многочисленные примеры использования технологии таких машин различными известными компаниями. Так, виртуальные машины VMware используются компанией Symantec для тестирования сетевых антивирусных пакетов; программисты популярной поисковой системы Google применяют виртуальные машины VMware для оценки эффективности работы Google с разными веб-браузерами и на разных платформах.

Как работает виртуальная машина

Начнем с уточнения терминов.

Терминология

С точки зрения пользователя,виртуальная машина (ВМ) - это конкретный экземпляр некой виртуальной вычислительной среды («виртуального компьютера»), созданный с помощью специального программного инструмента. Обычно такие инструменты позволяют создавать и запускать произвольное число виртуальных машин, ограничиваемое лишь физическими ресурсами реального компьютера.

Собственно инструмент для создания ВМ (его иногда называют приложением виртуальных машин, или ПВМ ) - это обычное приложение, устанавливаемое, как и любое другое, на конкретную реальную операционную систему. Эта реальная ОС именуется «хозяйской», или хостовой, ОС (от англ. термина host - «главный», «базовый», «ведущий»).

Все задачи по управлению виртуальными машинами решает специальный модуль в составе приложения ВМ - монитор виртуальных машин (МВМ). Монитор играет роль посредника во всех взаимодействиях между виртуальными машинами и базовым оборудованием, поддерживая выполнение всех созданных ВМ на единой аппаратной платформе и обеспечивая их надежную изоляцию. Пользователь не имеет непосредственного доступа к МВМ. В большинстве программных продуктов ему предоставляется лишь графический интерфейс для создания и настройки виртуальных машин (рис. 1.2). Этот интерфейс обычно называют консолью виртуальных машин.

Рис. 1.2. Пример консоли виртуальных машин


«Внутри» виртуальной машины пользователь устанавливает, как и на реальном компьютере, нужную ему операционную систему. Такая ОС, принадлежащая конкретной ВМ, называется гостевой (guest OS). Перечень поддерживаемых гостевых ОС является одной из наиболее важных характеристик виртуальной машины. Наиболее мощные из современных виртуальных машин (представленные в данной книге) обеспечивают поддержку около десятка популярных версий операционных систем из семейств Windows, Linux и MacOS.

Виртуальная машина изнутри

Когда виртуальная машина создана и запущена, у пользователя может возникнуть полная иллюзия того, что он работает с автономным компьютером, имеющим собственные процессор, оперативную память, видеосистему и (как правило) «стандартный» набор внешних устройств, включая флоппи-дисковод и устройство чтения CD/DVD.

На самом деле виртуальная машина не имеет доступа к физическим ресурсам реального компьютера. Работа с ними возложена на упоминавшийся ранее МВМ, а также на еще одну служебную программу - драйвер виртуальных машин.

В упрощенном виде архитектура системы, в которой используются виртуальные машины, выглядит следующим образом (рис. 1.3):

■ хостовая ОС и монитор виртуальных машин разделяют между собой права на управление аппаратными компонентами компьютера; при этом хостовая ОС занимается распределением ресурсов между собственными приложениями (включая и консоль ВМ);

■ монитор ВМ контролирует распределение ресурсов между запущенными виртуальными машинами, создавая для них иллюзию непосредственного доступа к аппаратному уровню (этот механизм называют виртуализацией );

■ гостевые ОС в пределах выделенных им ресурсов управляют работой «своих» приложений.


Рис. 1.3. Архитектура системы виртуальных машин


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

Виды виртуальных машин

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

В настоящее время распространение получили три схемы виртуализации:

■ эмуляция API гостевой ОС;

■ полная эмуляция гостевой ОС;

■ квазиэмуляция гостевой ОС.

Виртуальные машины с эмуляцией API гостевой ОС

Обычно приложения работают в изолированном адресном пространстве и взаимодействуют с оборудованием при помощи интерфейса API (Application Programming Interface - интерфейс прикладного программирования), предоставляемого операционной системой. Если две операционные системы совместимы по своим интерфейсам API (например, Windows 98 и Windows ME), то приложения, разработанные для одной из них, будут работать и на другой. Если две операционные системы несовместимы по своим интерфейсам API (например, Windows 2000 и Linux), то необходимо обеспечить перехват обращений приложений к API гостевой ОС и сымитировать ее поведение средствами хостовой ОС. При таком подходе можно установить одну операционную систему и работать одновременно как с ее приложениями, так и с приложениями другой операционной системы.

Поскольку весь код приложения исполняется без эмуляции, а эмулируются лишь вызовы API, такая схема виртуализации приводит к незначительной потере в производительности виртуальной машины. Однако из-за того, что многие приложения используют недокументированные функции API или обращаются к операционной системе в обход API, даже очень хорошие эмуляторы API имеют проблемы совместимости и позволяют запускать не более 70% от общего числа приложений. Кроме того, поддерживать эмуляцию API бурно развивающейся операционной системы (например, такой как Windows) очень нелегко, и большинство эмуляторов API так и остаются эмуляторами какой-то конкретной версии операционной системы. Так, в Windows NT/2000 до сих пор встроен эмулятор для приложений OS/2 версии 1.x. Но самый большой недостаток ВМ с эмуляцией API гостевой ОС - это ее ориентация на конкретную операционную систему.

Примеры продуктов, выполненных но технологии эмуляции API гостевой ОС:

■ проект с открытым кодом Wine (Wine Is Not an Emulator, «Wine - это не эмулятор»), позволяющий запускать DOS-, Win16- и Win32-приложения под управлением операционной системы Linux и Unix;

■ продукт Win4Lin компании Netraverse, позволяющий запускать операционные системы семейства Windows под управлением операционной системы Linux;

■ проект с открытым кодом DOSEMU, позволяющий запускать DOS-приложения под управлением операционной системы Linux;

■ проект с открытым кодом User Mode Linux (UML), позволяющий запускать несколько копий операционной системы Linux на одном компьютере (в настоящее время встроен и ядро Linux версии 2.6);

■ технология Virtuozzo, разработанная российской компанией SWsoft и позволяющая запускать несколько копий операционной системы Linux на одном компьютере.

Виртуальные машины с полной эмуляцией гостевой ОС

Проекты, поддерживающие технологию полной эмуляции, работают по принципу интерпретации инструкций из системы команд гостевой ОС. Поскольку при этом полностью эмулируется поведение как процессора, так и всех внешних устройств, то существует возможность эмулировать компьютер с архитектурой Intel х86 на компьютерах с совершенно другой архитектурой, например на рабочих станциях Mac или на серверах Sun с RISC-процессорами. Главный недостаток полной эмуляции заключается в существенной потере производительности гостевой операционной системы (скорость работы «гостевых» приложений может упасть в 100-1000 раз). Поэтому до недавнего времени ВМ с полной эмуляцией чаще всего использовались в качестве низкоуровневых отладчиков для исследования и трассировки операционных систем. Однако благодаря значительному росту вычислительных мощностей даже «настольных» компьютеров ВМ с полной эмуляцией стали сегодня вполне конкурентоспособными. Наиболее яркий представитель этого вида ВМ - продукт Virtual PC фирмы Connectix (ныне купленной Microsoft), который подробно описан в главе 2 книги. В качестве других примеров проектов, выполненных по технологии полной эмуляции, можно назвать следующие:

■ проект с открытым кодом Bochs, позволяющий запускать различные операционные системы Intel х86 под Linux, Windows, BeOS и Mac OS;

■ продукт Simics компании Virtutech, позволяющий запускать и отлаживать различные операционные системы Intel х86 под управлением Windows и других операционных систем;

■ проект Qemu - эмулятор различных архитектур на PC,

Виртуальные машины с квазиэмуляцией гостевой ОС

Технология квазиэмуляции гостевой ОС основана на том, что далеко не все инструкции гостевой ОС нуждаются в эмуляции средствами хостовой операционной системы. Многие из инструкций, необходимых для корректной работы «гостевых» приложений, могут быть непосредственно адресованы хостовой ОС. Исключение составляют инструкции для управления такими устройствами, как видеокарта, IDE-контроллер, таймер, и некоторыми другими.

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

Примеры проектов, выполненных по технологии квазиэмуляции:

■ технология Virtual Platform, на базе которой компания VMware предлагает четыре продукта: VMware Workstation для Windows NT/2000/XP, VMware Workstation для Linux, VMware GSX Server (group server) и VMware LSX Server (enterprise server);

■ виртуальная машина Serenity Virtual Station (SVISTA) (бывшая twoOStwo), разработанная российской компанией Параллели (Parallels) по заказу немецкой компании NetSys GmbH ;

■ проект с открытым кодом Рlеx86, позволяющий запускать различные операционные системы Intel х86 под управлением Linux.

■ проект с открытым кодом L4Ka, использующий микроядро;

■ проект с открытым кодом Xen, позволяющий запускать модифицированные ОС Linux, FreeBSD, NetBSD и Windows ХР под управлением Linux, FreeBSD, NetBSD и при соблюдении некоторых условий обеспечивающий даже прирост производительности.

В последующих главах книги рассмотрены наиболее популярные на сегодняшний день представители различных видов виртуальных машин: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт - Parallels Workstation, созданный в компании Parallels. Причем описание всех конкурирующих программ построено по одной и той же схеме, чтобы читателю проще было сравнить их между собой и сделать обоснованный выбор.

Примечания:

Мендель Розенблюм (mendel@cs .stanford.edu) - профессор информатики Стэнфордского университета, один из основателей и главный научный сотрудник компании VMware. Работе с виртуальной машиной этой компании, VMware Workstation, посвящена глава 3 книги.

В настоящее время компания Parallels разделилась на две самостоятельные компании. Первая из них, сохранившая прежнее название, продвигает свой продукт под торговой маркой Parallels; вторая, получившая название Serenity Systems International (http://www.serenityvirtual.com), наоборот, использует прежнее наименование продукта - SVISTА - и его логотип; оба варианта виртуальных машин могут работать на ОС Windows NT/2000/XP и Linux.

Установка драйверов