Неизмеримый тяжкий труд мы тратим, чтобы сварить его столько, сколько нужно нам! И времени, и размышлений, и усилий!
… А чтобы октябрьский эль удался на славу, в него должны падать жучки и всякая другая пакость, не то душистости в нем той не будет!
К. Саймак. Заповедник гоблинов

Бытует мнение, что Mac OS X несовместима с Windows, а существующие программы эмуляции медленны, стоят денег или сложны в настройке. Это полностью противоречит действительности. Правильно приготовить сидр из яблок гораздо сложнее, чем запустить на компьютере Apple Macintosh ваши любимые программы для Windows. На современный iMac с процессором Core Duo можно не только поставить две операционные системы (Mac OS X и Windows), но и заставить их работать одновременно и даже обмениваться данными между собой. Существующие программы виртуализации за небольшую плату или вовсе бесплатно обеспечивают дружественный интерфейс и минимальные потери производительности. В этой статье я расскажу о виртуальных компьютерах для Mac OS X, позволяющих запускать самые разные операционные системы — от FreeDOS на PowerPC до Windows Vista на Core Duo.

ЧистАЯ DOS

В 1994 г. на обложке английского журнала .EXE красовалась карикатура, на которой UNIX, Windows и OS/2 лили горькие слезы над могилой Michael Stoney DOS. В полном соответствии с народным поверьем это лишь обеспечило системе DOS долгие лета. На мой взгляд, хоронить дисковую операционную систему (DOS) и через 10 лет будет все еще преждевременно. Об этом говорит хотя бы тот факт, что в Интернете не прекращается разработка свободно распространяемой версии этой системы под названием FreeDOS, и многие разработчики продолжают выпускать DOS-совместимые версии своего программного обеспечения. Среди них файловый менеджер DOS Navigator, языки программирования FreeBASIC и FreePascal, мультимедийный плеер VLC и многое-многое другое.

Кроме того, за все те годы, когда DOS доминировала на персональных компьютерах, было написано море приложений и замечательных компьютерных игр. Уверен, что многие пользователи, не понаслышке знакомые с этой системой, хотели бы еще разок сыграть в Prince of Persia или Dune 2. Теперь это стало возможно и в Mac OS X. В принципе можно найти и более серьезное применение эмуляторов DOS на платформе Mac  — исследование и тестирование программного обеспечения, программирование вплоть до создания своей экспериментальной ОС.

Наиболее известны два эмулятора чистой DOS   — Bochs (произносится «бокс») и DOSBox. Оба распространяются бесплатно с открытыми исходными текстами и работают на самых разных компьютерах, в том числе и на Apple Mac под управлением Mac OS X. 

Bochs позиционируется как мощная свободная программа для эмуляции аппаратного обеспечения IBM PC. Bochs умеет эмулировать Intel 386, 486, Pentium, Pentium Pro, AMD64 CPU и другие x86-совместимые процессоры, поддерживает MMX, SSE, SSE2, 3DNow!, а вскоре этот список пополнится SSE3 и другими современными технологиями, поскольку программа продолжает развиваться. Единственный недостаток Bochs состоит в том, что она сложна в настройке и ограниченно годна к применению в Mac OS X. Я могу рекомендовать эту программу только продвинутым пользователям, а тем, кто хочет быстро и с минимальными усилиями получить доступ к командной строке DOS, я подробно расскажу о более простой в освоении программе DOSBox.

Эмулятор DOSBox специально «заточен» под запуск старых программ и компьютерных игр, он замечательно работает на самых разных аппаратно-программных платформах. На официальном сайте эмулятора вы найдете бинарные дистрибутивы для Windows, Linux и Mac OS X. 

DOSBox подходит не только для игр, но и для экспериментов с различным ПО. На снимке показан Рабочий стол Seal2, работающий во FreeDOS и занимающий всего 2 Мбайт

С точки зрения простого пользователя, DOSBox, без сомнения, лучший виртуальный ПК для DOS-приложений. Вам не нужно беспокоиться об установке и настройке гостевой ОС  — он уже содержит минимальный набор функций FreeDOS, а при желании вы сможете загрузить образ любой другой операционной системы с помощью команды boot.

Быстродействие DOSBox, конечно, сильно зависит от процессора. На x86, например, эмулятор работает в режиме динамической трансляции инструкций, и потери производительности будут минимальными. На PowerPC замедление работы будет куда значительнее, и на великолепном двухпроцессорном G5 вы получите производительность уровня Pentium II. Впрочем, даже на G4 с тактовой частотой 400 МГц мне удалось заставить стабильно работать игры и программы, рассчитанные на Intel 386. Так что, даже если у вас не самый новый Mac, сдувайте пыль с Lemmings, Prince of Persia и Retaliator, ведь они снова в деле!

Итак, DOSBox  — это виртуальный компьютер, оснащенный SVGA-видеоплатой, звуковой платой и работающий под управлением облегченной и защищенной версии FreeDOS. DOSBox полностью эмулирует возможности S3 Trio 64 и целого арсенала аудиоплат: Adlib, Tandy, Sound Blaster, Creative CMS/GameBlaster, Disney Soundsource и даже наикрутейшей по тем временам Gravis Ultrasound (GUS) с MIDI-процессором MPU-401. Забегая вперед, скажу, что при использовании специальной библиотеки эмуляция GUS обеспечивает качество звука, превосходящее оригинал.

Установка DOSBox на Apple Mac производится привычным методом: двойным щелчком мыши разворачиваете архив, двойным щелчком открываете инсталляционный образ диска, перетаскиваете DOSBox. app в папку Applications и, если пожелаете, из этой папки переносите на панель задач Mac OS X (переводчики не стали заморачиваться  — в русской версии она называется «Док» так же, как и Dock в английской).

Настройка программы не столь тривиальна, но все же проста. Даже если вы знакомы с DOS, то DOSBox удивит вас с первых же минут. Вместо привычного приглашения С:> вы увидите Z:>. Набрав команду DIR, вы сможете убедиться, что системные файлы действительно находятся на диске Z. Этот нестандартный ход сделан в целях безопасности. Более того, вы не сможете ничего сохранить на этом диске без специальной команды. С учетом уязвимости DOS это гениальный маневр!

Зато в качестве диска C: вы можете подключить любую папку вашего компьютера простой командой типа «mount <БУКВА> <ПАПКА>». Если, к примеру, для DОS-приложений вы создадите на Macintosh HD папку DOSAPPS, то легко подключить ее в качестве диска С: командой «mount с /DOSAPPS». Аналогично можно подключить, скажем, папку с играми или средствами разработки.

К сожалению, при перезапуске состояние подключенных дисков не сохраняется. Чтобы зафиксировать конфигурацию, найдите и отредактируйте файл ~/Library/Preferences/DOSBox Preferences. В конце файла вы увидите секцию [autoexec]. В ней можно и нужно прописать подключение всех папок, которые вам понадобятся после запуска DOSBox.

Установка практически любой ОС

Тем, кто хочет устроить на своем Apple Mac настоящий зверинец из операционных систем, не обязательно покупать дорогостоящие программы виртуализации. Кросс-платформенный эмулятор QEMU благодаря стараниям программиста из Чехии обзавелся на «макинтоше» таким стильным и аккуратным интерфейсом, что аналогичные оболочки для других операционных систем могут только позавидовать.

Программа Q распространяется бесплатно по лицензии GPL. Бинарный дистрибутив доступен в формате Universal Binary, и мне удалось протестировать его сразу на трех компьютерах. На G4 под этим эмулятором великолепно работают FreeDOS и минимальная версия Linux. Мне удалось также запустить React OS (свободно распространяемый клон Windows NT), но работу с ней на таком компьютере трудно назвать комфортной. На двухпроцессорном G5 запускается и сносно работает Windows NT.

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

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

Удивительно, но на платформе Mac графическая оболочка для QEMU выглядит самой красивой системой управления виртуальными ПК. В программе Q вы можете создавать, настраивать, запускать и временно приостанавливать работу виртуальных компьютеров. При этом в списке виртуальных машин работающие или остановленные в данный момент системы сопровождаются уменьшенным снимком экрана в текущем состоянии. Обновляются снимки экрана примерно раз в 3 с, но и этого достаточно, чтобы знать, что происходит в системе (синий экран смерти даже издали ни с чем не спутаешь).

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

В настоящий момент, чтобы обеспечить простой обмен файлами между гостевой и ведущей системой, нужно или подключать специальный образ диска с драйверами для Windows 9x и Windows NT, или настраивать сетевые соединения вручную (пользователей Linux почему-то обидели). Это неправильно. Даже если для обмена файлами используются сетевые протоколы, то они могут и должны включаться настроенными по умолчанию.

Недостает Q и других средств интеграции с ведущей системой. Например, Q не умеет передавать в гостевую ОС события мыши — так, как это делают VirtualBox, VMware Fusion и Parallels. Вместо этого используется метод захвата: гостевая ОС отслеживает все перемещения указателя, мышь тормозит, пользователь раздражается.

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

Виртуализация из коробки

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

VirtualBox позволяет комфортно себя чувствовать в дюжине самых современных ОС. Windows Vista в ней работает без ощутимых потерь в производительности

VirtualBox  — кросс-платформенное приложение. Для Windows и Linux существуют стабильные версии и заканчивается тестирование второй бета-версии для Mac OS X на Mac Intel. Используя преимущества новых процессоров, эта программа, в отличие от Q, будет работать только на Intel-совместимых «макинтошах» (и «хакинтошах»). При сходной с коммерческими аналогами производительности все это, пожалуй, делает VirtualBox наиболее привлекательным решением для индивидуального применения и образовательной сферы.

В VirtualBox можно включить использование расширенных функкций аппаратной виртуализации центрального процессора (Intel VT- x и AMD-V). Поэтому эффективность виртуализации в VirtualBox вполне сопоставима с производительностью коммерческих аналогов Parallels и VMware Fusion.

Кроме того, VirtualBox просто универсально! Список гарантированно поддерживаемых систем насчитывает около 30 позиций. Из них пять версий Windows, дюжина дистрибутивов Linux и даже OS/2 могут работать с так называемыми дополнениями гостевой ОС (Guest Additions).

После установки дополнений вы также сможете наладить обмен файлами с помощью общих папок как на гостевой системе, так и на исходной.

VMware Fusion против Parallels Workstation

Из всех программ, рассмотренных в этом обзоре, VMware Fusion даже в бета-версии выглядит самой продуманной и стабильной платформой виртуализации. VMware Fusion предоставляет великолепную интеграцию с гостевыми системами. И чем популярнее ОС, тем шире набор предоставляемых возможностей. Стандартные возможности интеграции, такие как общий с «родной» системой курсор мыши, передача файлов методом перетаскивания, а также совместный буфер обмена, устанавливаются в гостевую ОС в виде пакетов VMware Tools. Эти пакеты дополнений уже созданы для большинства популярных ныне систем Linux, FreeBSD, NovelNetware 5/6 и даже Solaris. При этом список поддерживаемых систем продолжает расти.

В VMware Fusion имеются пакеты расширений для большинства современных версий Linux

Для систем Windows драйверы пакета VMware Tools предоставляют еще больше замечательных возможностей, таких как автоматическое изменение размера Рабочего стола и обмен файлами методом drag-n-drop. При этом поддерживаются как новые системы, так и несколько устаревшие. Другими словами, вы гарантированно сможете настроить интеграцию с Windows 9x/NT/Me/2K/XP/Vista. При этом две последние как самые популярные получают ряд преимуществ при установке и во время использования. Для них создан максимально упрощенный режим инсталляции, когда драйверы для интеграции с основной системой (в данном случае — Mac OS X) устанавливаются автоматически сразу после инсталляции. После установки драйверов VMware Tools в XP и Vista помимо стандартных возможностей становится допустимым применение великолепного режима Unity.

VMware Fusion позволяет запускать даже самые экзотические версии Linux. На рисунке — SymphonyOS, основанная на Ubuntu

В таком режиме окна гостевой операционной системы используются наряду с окнами Mac OS X. При этом VMware Fusion создает для Windows XP специальное окно с меню, аналогичное тому, что вызывается кнопкой «Пуск», а для Windows Vista размещает саму кнопку в правом нижнем углу. В Mac OS X это иногда приводит к казусу  — Панель задач Mac OS X может просто закрыть от вас кнопку «Пуск». В этом случае нужно или уменьшить размер значков на этой панели, или включить для нее опцию «Убирать с экрана».

Есть у VMware Fusion и другие преимущества. В частности, я обнаружил, что Fusion позволяет без проблем установить и использовать Windows 98 SE, в то время как другие программы виртуализации испытывают определенные проблемы с устаревшими системами Windows вообще и с версией 98 в частности. VirtualBox, например, не имеет дополнений для этой ОС, а при установке Windows 98 в Parallels необходимо отключить почти все устройства, иначе не хватит основной памяти (исторические 640 Кбайт). Кроме того, на Intel Mac с процессором Core 2 Duo или Xeon программа VMware Fusion поддерживает 64-разрядные версии Windows, Linux, Solaris и FreeBSD, поэтому технологическое лидерство очевидно.

Разработчики Parallels Desktop, похоже, решили не распыляться и сконцентрировались на улучшении взаимодействия с относительно новыми версиями Windows. Программа демонстрирует высший пилотаж интеграции, когда дело касается наиболее актуальных ОС — Windows XP и Vista. Интеграция с Vista, например, в Parallels реализована лучше, чем в любой другой виртуальной машине. Причем в режиме Coherence работа с этой системой становится совершенно прозрачной. Несмотря на то что внешне оформление окон Vista и Mac OS X несколько различается, вы запросто можете забыть, с какой системой работаете в данный момент. К Vista Mac OS X, как к невесомости, можно привыкнуть, но вначале вы испытаете легкое головокружение.

Вообще, VMware Fusion и Parallels понимают интеграцию немного по-разному. К примеру, Fusion создает для вас на Рабочем столе одну лишь кнопку «Пуск», а значки запущенных приложений выводит на Панель задач Mac OS X, в то время как Parallels предоставляет в ваше распоряжение полноценную Панель задач Vista.

Рекомендации лучших яблоководов

Несмотря на изобилие описанных здесь и обойденных стороной эмуляторов, вам вовсе не нужно ломать голову над тем, какой из них выбрать. DOSBox — лучший выбор для запуска старых игр и DOS-приложений на Apple Mac от G3 до Intel. Хакерам операционных систем понравится Q  — он способен запустить любую ОС и на PowerPC, и на Intel Mac. Для частного домашнего применения или в сфере образования вполне подойдет VirtualBox для Intel Mac. Выбор профессионалов  — VMware Fusion, ибо в нем есть поддержка 64-битных систем. А те, кто превыше всего ставит комфорт и удобство самых современных ОС, по достоинству оценят возможности Parallels Desktop.

Вне конкурса

По ряду причин в данный обзор не попали эмуляторы Microsoft Virtual PC и Lismoresystems Guest PC для платформы PowerPC (G3 и G5). Это немного устаревшие, но также неплохие коммерческие продукты. Причем последний разработан нашими соотечественниками. Если вы используете компьютеры Apple Mac G4 или G5, то, возможно, один из них вам подойдет больше, чем Q.  

Сравнение виртуальных машин

В таблице сравниваются основные характеристики виртуальных машин, имеющих реализацию для Mac OS X (но не только). Необходимо отметить, что все упомянутые здесь виртуальные машины — гипервизоры (эмуляторы аппаратного обеспечения). Ни одна из них не является средой виртуализации приложений, как, например, Java Virtual Machine или Parrot Virtual Machine. Полную версию таблицы, сравнивающей виртуальные машины и для других систем, в частности для Linux, можно найти в Wikipedia на странице «Сравнение виртуальных машин» (http://ru.wikipedia.org/wiki/Сравнение виртуальных машин).

Редакция благодарит фирму ОТК1 (www.otk1.ru) за предоставленное оборудование и ПО.


Остров сокровищ

Современные технологии позволяют запустить одну виртуальную машину внутри другой виртуальной машины. Есть несколько эмуляторов, написанных на языке Java. Они работают везде, где можно запустить Java Virtual Machine. Хоть в холодильнике! В качестве примера приведу парочку открытых и бесплатных эмуляторов DOS.

The JPC Project — Computer Virtualization in Java (http://www-jpc.physics.ox.ac.uk ) разработан на факультете физики Оксфордского университета. Этот x86-эмулятор можно переписать с сайта вместе с предустановленной операционной системой FreeDOS и набором игр вроде Prince of Persia, Lemmings и Keen Commander.

Dioscuri — the modular emulator (http://dioscuri.sourceforge.net ) — еще один очень простой эмулятор компьютера на основе x86. Поставляется с FreeDOS. Невероятно медленный, но работает!


Кстати

Сразу после установки вы можете заставить DOSBox говорить с вами на языке Пушкина и Достоевского. Для этого нужно переписать архив http://dosbox.sourceforge.net/tools/DOSBox-russian-lang-072.zip  и скопировать из него файлы русификации в каталог ~/Library/Preferences. Вы можете также использовать русифицированный файл конфигурации dosbox.conf, но сперва сделайте резервную копию английской версии, переименовав ее, например, в DOSBox Preferences.bak. Затем конвертируйте dosbox.conf из кодировки Windows в Mac и переименуйте его в DOSBox Preferences. Каждая строка конфигурации будет снабжена комментарием, а при желании легко переписать настройки по умолчанию из DOSBox Preferences.bak.

Чтобы включить поддержку русского языка, откройте файл DOSBox Preferences и в секции [dosbox] пропишите строку language=”~/Library/Preferences/russian.txt”  — при следующем запуске DOSBox заговорит по-русски. Затем в секции [autoexec] напишите строку “keyb ru 866”. В результате переключение раскладки можно будет осуществлять клавишами +. Если вас это не устраивает, то просто найдите в Интернете драйвер keyrus.com и напишите его запуск в [autoexec]. Это также работает.

Если вы хотите добиться превосходного качества музыки при эмуляции Gravis Ultrasound, рекомендую переписать с сайта http://ftp.isu.edu.tw/pub/Hardware/multimedia/Gravis/gus411/  и установить специальную библиотеку MIDI-образцов, называемую в народе «патчи для гуся». Она состоит из шести архивов (от gus411a.zip до guss411f.zip), которые нужно разархивировать в папку C:ULTRASND.


На заметку

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

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

К сожалению, пока не все версии Windows поддерживают дополнения гостевой ОС. Свободно установить и использовать дополнения допустимо на системах Windows 2000/Server 2003/XP и Vista. Для установки дополнений в Windows NT 4.0 понадобится предварительная установка Service Pack 6a, а Windows 95 и 98 хотя и работают в VirtualBox, дополнения гостевой ОС не поддерживают вовсе. Узнать больше о поддержке Linux и других гостевых систем в VirtualBox можно на странице http://www.virtualbox.org/wiki/Guest_Oses.


Книга жалоб и предложений: хоть горшком назови...

Те, кто решит попробовать на практике сразу несколько виртуальных машин, обязательно столкнутся с путаницей в терминах и отсутствием унификации и каких бы то ни было стандартов вообще. Эмуляцию от виртуализации еще можно как-то отличить: в первом случае используются в основном программные технологии, а во втором жестко эксплуатируется процессор. А вот чем, с точки зрения парней из Parallels, отличается режим Coherence от аналогичного режима Unity в VMware, мне не очень понятно. И тот и другой позволяют свободно распоряжаться окнами гостевой операционной системы вместе с окнами Mac OS X, делая прозрачной работу виртуальной машины. Аналогичную войну терминов в свое время развязала Microsoft в браузере IE. Достаточно вспомнить «Избранное» вместо «Закладок» и т.д. Так почему бы не оставить эти уловки тем, кто борется за умы обывателей? Виртуальные машины априори предназначены для ИТ-профессионалов, а этот народ норовит придерживаться индустриального стандарта.

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

Все это не столько печально, сколько смешно. Разработчики коммерческих продуктов подкладывают друг другу одни и те же грабли, а потом сами же создают объединения и консорциумы по стандартизации и унификации самых эффективных методов наступать на эти грабли. Да вот только к тому времени стандартом станет некий открытый и безопасный метод, в котором грабли не предусмотрены вовсе. Примером может послужить утверждение в ISO открытого стандарта для электронного документооборота ODF.