Чуть менее года назад мы довольно подробно рассматривали организацию многовариантной загрузки ПК (см. «Мир ПК», №7/05). Как тогда было замечено, нынешний ассортимент операционных систем далеко не всегда позволяет сделать однозначный выбор в пользу какой-либо из них. Можно, конечно, устроить на своем компьютере «зоОСад», но, когда 99% работы ведется в одной ОС, а из другой нужна всего-то пара программ, частые перезагрузки быстро надоедают. Куда удобнее в этом случае воспользоваться технологиями виртуализации — одновременного запуска нескольких ОС.

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

В начале этого года в продаже появились процессоры Pentium D с ядром Presler и поддержкой виртуализации на аппаратном уровне. Вслед за компанией Intel о такой возможности объявила и AMD (технология Pacifica).

Ниже мы рассмотрим, какие плюсы дает поддержка виртуализации на уровне ЦПУ. А пока вернемся к «программным ухищрениям».

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

Рис. 1. «Гостевая» Damn Small Linux в среде Windows XP

Первая в данном случае работает на правах обычного приложения: ее можно использовать в полноэкранном, оконном режимах, «сворачивать» и т.д. Пример работы такой системы показан на рис. 1.

В зависимости от того, для какой аппаратной платформы разработана «гостевая» ОС, используются разные способы ее запуска. Если речь идет об одинаковых архитектурах (скажем, о Windows и x86-й Linux ), все, что нам требуется, — это программно распределить ресурсы ПК между данными системами. То есть «чистая» виртуализация. Рассмотрим ее подробнее.

Поскольку, как уже говорилось, аппаратная поддержка виртуализации только начинает приходить на ПК, для одновременного запуска различных ОС пока необходим «посредник» — программа, способная перехватывать конфликтные инструкции ЦП, обращения к устройствам и «переводить» их на язык «хостовой» системы. Допустим, в качестве последней установлена Linux, для которой стандартным обращением к звуковой плате будет запись в файл /dev/dsp. Понятно, что запускаемая в параллель с ним Windows даже не подозревает о существовании этого файла, поскольку общается со звуковой платой по своим законам. Однако стоит программе-«переводчику» перехватить обращение «гостевой» системы к звуковой плате и переадресовать его к вышеупомянутому файлу, как «гостевая» ОС (в нашем случае Windows) обретет звук, будучи уверенной, что именно она и управляет звуковым устройством.

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

Иная картина получается, если платформы архитектурно различны (скажем, Mac OS для Power PC и та же Windows). В этом случае запускать «гостевую» ОС придется в эмуляторе. То есть сначала моделировать x86-й компьютер (если «гостем» является Windows), а затем уже запускать последнюю. Пользователи «Маков» давно уже привыкли к подобному ПО (см. «Мир ПК», №3/05).

По понятным причинам эмуляторы работают в несколько раз медленнее, нежели «оригиналы», но зато гарантируют максимальную совместимость с последними. (Подробнее об эмуляторах — в разделе QEMU.) Однако что бы вам ни требовалось, виртуальная ли машина или эмулятор, такие решения, безотносительно к платформе, способны существенно облегчить жизнь. Во-первых, это здорово помогает в работе. Во-вторых, они (решения) позволяют безболезненно познакомиться с существующими альтернативами. В-третьих, ни для кого не секрет, что разрекламированная небезызвестной компанией «обратная совместимость ПО» частенько оказывается фикцией. У любого пользователя со стажем лет за десять скапливается приличный багаж из программ, оказавшихся несовместимыми с новыми версиями Windows. Хорошо, если это безнадежно устаревшее прикладное ПО, а если это информационная база, энциклопедия, игра, наконец?

VMware

Когда речь заходит о виртуализации, название этой компании всегда вспоминается первым. Еще бы, не так давно конкурентов у VMware Inc. просто не было. Созданная в 1998 г. профессором М. Розенблюмом и его супругой фирма выпустила первую виртуальную машину (ВМ) для x86, работавшую в среде ОС Linux. Сегодня в ее ассортименте присутствуют разнообразные ВМ для Windows и Linux, а также бесплатное приложение VMware player для тех же ОС.

Рассмотрим создание и настройку виртуальной машины в ознакомительной версии VMware Workstation 5.5 (март 2006 г.). Возможности ее впечатляют. Вот лишь некоторые из них:

  • поддержка в качестве "гостевых" ОС всей линейки Windows, от 3.11 до тестовых сборок Vista, а также Linux, BSD, Solaris и 64-разрядных версий всего перечисленного;
  • одновременный запуск нескольких "гостевых" ОС и переключение между ними посредством закладок наподобие современных браузеров;
  • обмен данными между "хостовой" и "гостевой" ОС с помощью буфера обмена и перетаскивания файлов;
  • объединение "гостевых" ОС в сеть и организация их доступа к внешней сети через NAT-роутер или физическую сетевую карту;
  • "горячее" подключение и отключение USB-устройств;
  • экспериментальная поддержка аппаратного ускорения Direct3D для "гостевых" Windows 2000 и XP.
Рис. 2. VMware: мастер установки новой ОС

Благодаря продуманному интерфейсу обилие настроек VMware Workstation не вызывает никакой путаницы. При создании новой виртуальной машины требуется лишь указать тип «гостевой» ОС и задать базовые параметры с помощью пошагового «мастера» (рис. 2).

«Золотое правило»: не указывайте ничего впрок. Если «гостевой» системе не требуется доступ к сети, стоит отказаться от него и сэкономить ресурсы ПК. Впрочем, к производительности и так нет никаких претензий. Единственный критичный ресурс — память, нехватка которой может привести к ощутимому торможению. Из остальных параметров стоит повнимательнее отнестись к настройке образа жесткого диска. Динамически увеличивающийся сэкономит пространство, но работать будет несколько медленнее.

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

Рис. 3. Установка «гостевой» Windows XP в ArchLinux

Драйверы виртуальной видеоплаты для Windows 9x или 2000 и XP поставляются в комплекте с программой, драйвер для Linux и вовсе входит в большинство дистрибутивов данной ОС. Для остального оборудования: звуковых плат и сетевых карт, устройств для шины USB и прочего — производится установка «родных» драйверов для нужной ОС.

Если требуется постоянный обмен данными между «гостевой» и «хостовой» ОС, можно создать папки обмена (share folders), доступные для обеих систем. В остальных же случаях «гостевая» ОС надежно изолирована от дисковой системы ПК и никакие сбои или вирусы не способны повредить пользовательскую информацию.

Рис. 4. Работа «гостевой» Windows XP в ArchLinux

Кстати, защищенность — один из веских аргументов в пользу виртуальных машин. На рис. 4 показан безопасный веб-серфинг в «хостовой» ОС Linux синхронно с работой в словаре Alphalex в среде «гостевой» Windows XP, не имеющей доступа к сети.

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

Именно для таких целей и предназначен VMW-player. Программа может запускать виртуальные машины, созданные в VMware Workstation или VMW-Server, а версия для Windows работает еще и с форматами виртуальных машин фирмы Microsoft и Symantec LiveState Recovery. VMW-player отлично иллюстрирует новую концепцию компании: виртуальная машина уже не экзотика, а «документ», которым можно поделиться с коллегами, воспроизвести в любом месте с помощью бесплатного ПО.

В отличие от Workstation, VMW-player не позволяет изменять практически никаких параметров, кроме объема выделяемой памяти. Другое ограничение — нельзя запустить несколько виртуальных машин одновременно. Это компенсируется малым размером программы — всего 30 Мбайт в архиве — и простотой использования. Все, что требуется от пользователя, — это открыть файл виртуальной машины *.vmx и дождаться загрузки «гостевой» ОС.

Единственный минус данных решений в том, что VMW-player (по определению) не способен создавать *.vmx-файлы, а Workstation, которая делает это, требует некоторых финансовых вложений (если речь не идет об ознакомительной версии).

QEMU

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

Сильная сторона последних не только в переносимости на другие аппаратные платформы и большей совместимости с ПО, но и в модели распространения. Если требуемая ОС и программы для нее отлично себя чувствовали на Pentium II, а у вас сейчас AMD 64, вряд ли производительность окажется узким местом. А вот ограничения на бесплатное использование продукции все той же VMware запросто доставят массу неудобств.

В этой ситуации стоит обратить внимание на QEMU. Программа с открытым исходным текстом представляет собой весьма быстрый эмулятор x86, PPC, ARM, SPARC и доступна для множества ОС на платформах x86 и PowerPC. Поддерживается работа в сети, эмуляция Sound Blaster и PCI SVGA-адаптера, которые без труда распознаются большинством «гостевых» ОС.

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

Рис. 5. Интерфейс QEMU для Windows

Предположим, вы переписали из Интернета на пробу небольшой дистрибутив Damn Small Linux и хотите запустить его с помощью эмулятора. Нет ничего проще: перетаскиваете загруженный iso-файл (в нашем случае это dsl2.3.iso) в окно QEMU либо набираете его имя руками — и вперед (рис. 5)!

Запускать, разумеется, можно не только iso-файлы, но и программы с CD и флоппи-дисков. Кроме того, QEMU позволяет создать образ жесткого диска виртуального ПК и установить на него ту или иную ОС. Что и было сделано в нашем случае.

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

Кроме этого, QEMU можно использовать для запуска как «тяжелых» дистрибутивов Linux, так и Windows версий 2000 и старше (рис. 6). Для радикального увеличения быстродействия используется дополнительный модуль qemu-accelerator, добавляющий эмулятору еще и функции виртуализации. Информацию по установке модуля можно найти на странице программы. Естественно, такое решение подходит только для x86.

Рис. 6. Установка «тяжелого» дистрибутива ОС Linux в QEMU

А вот самый быстрый вариант только начинает набирать обороты. Это...

Программа-гипервизор XEN

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

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

Сейчас, когда стали появляться технологии аппаратной поддержки виртуализации, когда пошли финансовые вливания от лидеров ИT-индустрии (Intel, IBM, Sun Microsystems, HP и др.), проект XEN вошел в фазу стремительного развития. Сегодня связка из аппаратной технологии Intel Virtualization Technology (бывшая VanderPool), «промежуточного» XEN и ОС Linux позволяет запускать немодифицированные версии Windows и других ОС для х86 в качестве «гостевых».

XEN планируется поставлять в составе Red Hat Enterprise Linux и Novell Linux, а благодаря сотрудничеству Intel и Red Hat в апреле 2006 г. было анонсировано полтора десятка тестовых центров, где разработчики смогут опробовать свое ПО на самых последних аппаратных новинках. Компания AMD в свою очередь заявила о поддержке XEN на процессорах с архитектурой 64-bit x86 и технологией Pacifica, таких как будущие Opteron. В эту гонку включились и VMware Inc., и даже корпорация Microsoft, представители которой заявили на последнем форуме Linux World (!) в Бостоне, что будут поддерживать клиентов, решивших установить Red Hat Enterprise Linux или Novell Linux в качестве «гостевых» ОС, средствами Microsoft Virtual Server. (Последний, кстати, весной этого года стал бесплатным приложением.)

Маленькое резюме

Какие аппаратные и программные средства окажутся наиболее востребованными, покажет, естественно, время. В любом случае виртуализация (даже программная) позволяет уже сегодня работать с различными ОС, не испытывая отрицательных эмоций. А уж когда наступит эра аппаратной поддержки «чужих» систем... Тогда, глядишь, и самый ленивый пользователь Windows соизволит познакомиться с имеющимися альтернативами, а пользователи Linux... Впрочем, это отдельная категория. Вполне возможно, что, когда появится некая Windows Forever, все они дружно переметнутся на нее. Только для этого в Редмонде надо очень постараться. Пока же Windows Vista больше похожа на hasta la vista! (что в переводе с испанского означает «до свидания!»).


Эмуляторы и средства виртуализации

http://fabrice.bellard.free.fr/qemu - быстрый эмулятор x86, PowerPC, ARM и Sparc для Windows и Linux.

http://www.vmware.com - страница корпорации VMware. ПО для виртуализации для среды Windows и Linux.

http://www.cl.cam.ac.uk/Research/SRG/netos/xen - страница XEN на сайте кембриджского университета.

http://www.xensource.com - компания Xensource - коммерческое внедрение XEN.

http://www.microsoft.com/windowsserversystem/ virtualserver/default.mspx - страница Microsoft Virtual Server.

http://www.swsoft.com/en/products/virtuozzo - страница virtuozzo, средства виртуализации, российской компании SWSoft (Acronis).

Это интересно!

http://www.microsoft.com/windowsserversystem/ virtualserver/evaluation/linuxguestsupport/default.mspx - нашумевшая поддержка "гостевой" Linux корпорации Microsoft (eng).

http://www.intel.com/research/xenmonitor.htm - Intel и XEN, общая информация, ссылки (eng).

http://www.intel.com/pressroom/archive/ releases/20060404corp.htm - Intel и Red Hat, информация, ссылки (eng).

http://www.amd.com/us-en/Weblets/0,,7832_8366_7595~98372,00.html - технология виртуализации Pacifica компании AMD.

http://posix.ru/apps/virt_mach1

http://posix.ru/apps/virt_mach2

http://posix.ru/apps/virt_mach3