Параллели против перпендикуляров, часть 1

Да, более остроумного названия для статьи я не придумал, поэтому придется ограничиться этой банальщиной. А вообще разговор пойдет о сравнении двух продуктов для работы с виртуальными машинами на Mac OS X — Parallels Desktop for Mac и VMware Fusion.
Screen shot 2009-11-06 at 12.44.59 AM
Совсем недавно оба приложения радикально обновились, по крайней мере, по словам компаний-создателей, у VMware вышла Fusion 3, у Parallels — версия 5, и оба производителя обещали много-много радости пользователям, вкупе с новыми возможностями. Когда я заикнулся в Твиттере о том, что можно было бы и сравнить теперь эти два продукта, я получил довольно много ответов, в которых мне писали, что такой обзор действительно был бы полезным, поэтому, собственно, вот.

Виртуальные машины — то есть возможность запускать одну операционную систему внутри другой без процесса эмуляции — вещь для Мак-пользователей относительно новая. Именно с выходом Маков на Intel-процессорах эта техническая “процедура” стала возможной, так как до этого запуск Windows (так как Мак-пользователям второй нужна чаще всего эта ОС) приходилось делать с помощью эмулирования другой платформы.
Говоря простым языком, фактически специальное приложение переводило язык процессора x86 (где работала Windows) в язык PowerPC (процессора, который тогда устанавливали в Маки), чтобы он понимал, что надо делать, а затем этот же процесс происходил обратно. Результат — невероятная медлительность процесса, ни о какой работе в таких условиях речи идти не могло. Соответственно, благодаря появлению Intel-процессоров решалась основная проблема — проблема производительности, так как больше не надо было проводить трудоемкую эмуляцию другого типа процессора, а программа по управлению виртуальной машиной позволяла “внутриживущей” операционной системе получать доступ к ресурсам компьютера практически напрямую. (Наверняка, если объяснять более детально, то все немного сложнее, но статья у нас не о теории виртуализации, и в общем это примерно где-то так и выглядит).
[ad#intext-inside]
В общем, таким образом на рынке образовалась ниша, которую практически сразу заполнила собой тогда не очень известная компания SWSoft, выпустившая на рынок свое приложение под названием Parallels Desktop for Mac. Компания частная, с главным офисом в США, а вот разработки компания ведет в России. В прошлом году компания сменила название, и теперь называется Parallels, и продукты свои продает именно под этим брендом — я так понимаю, благодаря этому имени ее известность значительно выросла. Основательно замешкавшись, на рынок виртуальных машин для Mac OS X вышла и лидер рынка, компания VMware, выпустившая через год после Parallels свой продукт для Mac под названием VMware Fusion. Кроме этого, на этом рынке есть и бесплатный продукт под названием VirtualBox, который выпускает компания Sun, но в этой статье мы его рассматривать не будем (некоторые говорят, что он вполне неплох, и для тех, кто бережет карму и готов мириться с какими-то глюками или отсутствием фич, вполне может подойти).
Screen shot 2009-11-05 at 6.34.16 PM
Еще немножко истории — и перейдем к непосредственно сравнению. Помню, когда вышла первая версия Parallels (она тогда была доступна в бетах до 1.0), она производила довольно отталкивающее впечатление “не-Маковским” интерфейсом — дело в том, что тогда Parallels писалась с использованием кросс-платформенного фреймворка Qt, что накладывало свой отпечаток на интерфейс приложения. В то же время VMware, выпуская свой продукт, этой ошибки не повторила, и Fusion получился красивым, очень Mac-like приложением, чем и привлекла многих пользователей. Я тогда VMware себе и купил (ну и плюс было хорошее предложение по цене), и с тех пор периодически ею пользовался. Но Parallels тоже не стоят на месте, и сейчас, когда вышла версия 5, там получился тоже вполне симпатичный интерфейс, вполне соответствующий рекомендациям Apple в рамках Human Interface Guidelines.
Немного о компьютере и системах, которыми я пользуюсь. Сейчас у меня — MacBook Pro 2.4GHz, выпущенный летом 2007 года. Если не считать того, что благодаря Apple Care я смог заменить в нем экран, батарею и материнскую плату, из дополнительного оборудования в нем установлены дополнительные 2ГБ оперативной памяти (всего — 4ГБ), а также диск Seagate 500ГБ на 7200 оборотов. Не самый, конечно, навороченный Мак из серии latest and greatest, но свои задачи он вполне выполняет, и ближайшие полгода, пока не закончится Apple Care, ему предстоит заниматься тем же самым. Операционная система — Mac OS X 10.6.1.
Также с помощью Boot Camp второй системой на ноутбуке установлена Windows XP со всеми возможными обновлениями (буквально сегодня, после запуска, она тут же ломанулась качать пачку очередных патчей и фиксов) — на Vista менять я ее не стал, так как XP честная, а на Vista у меня бы рука не поднялась деньги тратить. В качестве виртуальной машины еще есть установленная Windows 7, которая RC, если не ошибаюсь — та, которую Microsoft раздавала бесплатно на год. Коробочную версию Windows 7 Professional я заказал, но она еще какое-то время еще будет ехать, но та, что есть сейчас, вполне устраивает.
Да, еще важный момент — в системе у меня включен FileVault, шифрование домашней папки (моя паранойя относительно безопасности — наверно, тема для отдельной статьи). Соответственно, шифрование может вызывать определенные “торможения”, и это — одна из основных причин, почему я решил не делать конкретных тестов с замерами из серии “установка новой системы, первый запуск” и тд. Во-первых, мои результаты могут оказаться нерепрезентативными и непоказательными для других, а во-вторых, вряд ли они будут кому-то особо интересными.
Более интересен для пользователей совершенно конкретный вопрос — “Кто быстрее?”, и речь в первую очередь — о нормальных, обычных задачах. Соответственно, я решил, что мои готовые установки (Win XP в Boot Camp и Win 7 в виртуальной машине) вполне сгодятся на то, чтобы сравнить, кто же поведет себя лучше на совершенно конкретной машине в конкретной обстановке. Кроме того, по возможностям у Parallels и Fusion наблюдается более-менее паритет (хотя Parallels мне показалась все же понавороченней), и даже если какая-то из программ вырывается вперед, то вторая обычно потом по возможностям подтягивается. Для меня же в данный момент, как и для большинства других пользователей, как мне кажется, эти фичи не так важны, как скорость — а посравнивать фичи можно, почитав тексты на сайтах. Поэтому возникла эта статья, потому что по скорости Fusion перестала меня устраивать, а тут как раз вышла новая версия Parallels, поэтому было решено сравнить и решить, с какой программой оставаться.
Вначале — совсем субъективные вещи, в частности, про интерфейс. Поскольку я довольно давно занимаюсь разработкой ПО для Mac OS X, и какое-то время — для iPhone, я крайне чувствителен в тому, как сделан интерфейс в приложении. Должен сказать, что Parallels действительно очень серьезно продвинулась в этом направлении, по сравнению с первыми версиями, и выглядит как и должно выглядеть нормальное Маковское приложение.
Правда, уши наследия Qt кое-где проглядывают — в частности, настройки приложения сделаны явно каким-то хитрым образом, вызывая, видимо, свое внутреннее приложение. Ну и я не понял глубокого смысла, по которому после установки в папке Applications вы обнаружите приложение Parallels Desktop.app и папку Parallels, в которой будет лежать ссылка на Parallels Desktop.app, что меня смутило. Я бы сделал наоборот в таком случае — все программы положил бы в папку, а в Applications выложил шорткат на основную программу. Кстати, в диалоге Preferences для ОК не обрабатывается кнопка Enter и комбинация Command+W, то есть нужно мышкой кликать на кнопку OK.
С точки зрения интерфейса настроек и параметров виртуальных машин у VMware и Parallels хороший паритет — и та, и другая выглядят хорошо, и дают возможность настроить практически любой аспект работы виртуальной машины. Но первый экран выбора следующего шага, а также креативненький экран окна Boot Camp мне у Parallels очень понравился. Но все же, давайте к скорости. (Эту заметку я пишу в режиме “реального времени”, так что сейчас, набрав этот текст, я наконец-то пойду и позапускаю виртуальные машины. Для чистоты эксперимента, я думаю, буду каждый раз перезапускаться, чтобы ощищать память и своп).
Screen shot 2009-11-05 at 10.24.44 PM
Виртуальный Boot Camp
Первый запуск Windows XP, которая в Boot Camp, в Parallels и первое впечатление — “что ж таааааак долго?” Нет, я понимаю, что Винду надо конфигурировать, чтобы она работала внутри новой виртуалки, но а) процесс этот занимает как-то подозрительно много времени;
б) он не очень очевиден для пользователя, так как долго показывает прогресс-бар и много рекламы новых фишек приложения.
Я сейчас уже точно не помню, сколько времени это занимало в случае с VMware, но явно не так долго. После этого предсказуемо началась установка “тулзов” — набора драйверов для успешной работы Windows внутри “железа” виртуальной машины.
Screen shot 2009-11-05 at 10.29.52 PM
После этого Windows, традиционно потребовала активации — так как ей почудилось, что ее украли демоны и заставляют почем зря работать на неизвестной плантации, то бишь, железке. И вот тут оказалось интересное — Windows не смогла осуществить желаемое, так как не смогла успешно подключиться к сети. Это было неожиданно, так как до этого VMware всегда находила возможность сразу подключить виртуальную машину к сети, и, соответственно, к Интернету.
Проблема решилась следующим образом: я зашел в настройки виртуальной машины, затем в раздел Hardware, и там для Network Adapter я выбрал режим Shared Networking вместо Bridged Networking (там была под-опция Default Adapter). После этого система таки смогла выйти в интернет, а Windows — активироваться. Затем я почитал текст в диалоге настроек для Shared Networking, и понял суть проблемы:

Use this option for WiFi bridging if your WiFi access point validates DHCP packets by MAC address.

По несчастливой случайности именно сегодня это заметку я писал, находясь в гостинице, где WiFi-база фильтрует подключение именно по MAC-адресу, и именно поэтому Parallels не смогли с первой попытки выпустить Windows в Интернет. (конечно, если бы я толком просмотрел все настройки сразу, то, наверно, не наступил бы на эти грабли. А если бы еще руководство пользователя почитал — но кто ж его читает-то?). А вообще, будь я дома, то этой проблемы я бы и не заметил, там все заработало бы с самого начала.
А самое важное, что я должен вам сказать — пока я писал предыдущие два абзаца, мне больше всего хотелось прыгать и кричать “ААААААААА!!!!!!”, потому что Windows сразу после загрузки работала действительно быстро, очень-очень быстро. После сегодняшней борьбы с VMware, когда у меня ушло минут 15 на то, чтобы система загрузилась и стала достаточно юзабельной для того, чтобы отформатировать флешку, такой прорыв очень нравится!
Правда, не понравилось, что Parallels зафигачила все иконки из виндового тулбара мне в меню-бар Mac OS X, но это наверняка тоже где-то отключается. А пока что я все-таки сделаю обещанный рестарт, надеясь при этом, что у меня хватит активаций Windows, чтобы потом еще запустить ее в VMware.
Screen shot 2009-11-05 at 11.04.05 PM
Хотя нет, пока не сделаю — замечание Parallels. При выборе команды Restart (в Mac OS X) Parallels предложили мне что-то сделать с работающей виртуальной машиной — “остановить” ее или “засаспендить”, то есть “положить в сон”. Но я то знаю еще с VMware, что виртуальные машины из Boot Camp не саспендятся, поэтому, конечно же, намеренно нажал кнопку Suspend — только для того, чтобы посмотреть, что получится — получилось увидеть диалог о том, что этого сделать нельзя. Ну раз нельзя, то и не надо показывать эту опцию. А, и еще — я понимаю, что Coherence режим (когда окна Windows-приложений могут перемешиваться с окнами из Mac OS) — это круто, но не поддерживаю выбор включения его по умолчанию: когда на первом старте неожиданно окно уезжает влево (а на выключении Parallels) — вправо, то это почему-то напрягает, неожиданно и неприятно.
Screen shot 2009-11-05 at 11.06.56 PM
Следует еще сказать немного про мою инсталляцию Windows XP — в ней, в общем-то, из особо ресурсопожирающего есть только антивирус McAffee, который шел в комплекте с VMware — не знаю почему, но у меня есть подозрение, что именно он виной длинным стартам Windows, плюс парочка игрушек, включая Steam. По умолчанию в Windows еще загружается GoogleTalk, Logitech Profiler и Airport BaseStation Agent. Я постарался сделать настройки между Fusion и Parallels идентичными — то есть отключил Coherence/Unity, отключил всякие визуальные прибамбасы вроде иконок в меню-баре и прочую интеграцию с Mac OS X и Windows, выделил одинаковое количество памяти и процессорных ядер, и решил, что условия достаточно близки к равным.
Итак, после рестарта и запуска WinXP из Boot Camp до момента, когда я смог открыть веб-браузер (Internet Explorer) и зайти к себе на блог (отсчет времени шел с момента нажатия кнопки Start Boot Camp) у Parallels занимает обычно около 6-6,5 минут. Немало, конечно, но учитывая, что до этого VMware тупила минут 15-20, пытаясь показать мне в Windows Explorer флешку, чтобы я мог ее отформатировать — то это уже прорыв. Отключив часть стартующих сервисов McAffee, а также загрузку на старте GoogleTalk и Steam, мне удалось сократить это время до примерно 5 минут (проверим потом VMware в этих облегченных условиях)
Более того, крайне важный момент — пока стартует Windows в Parallels, компьютер не доводит меня до белого каления постоянными тормозами приложений в Mac OS X, как это происходит с системой, когда загружается Windows VMware. Система ведет себя так, как будто ничего не происходит, можно запускать сторонние приложения, и все это не “тормозит и не глючит”, что вообще странно, но приятно 🙂
Да, кстати, заметил странную багу — при включенном Parallels и открытом окне виртуальной машины Boot Camp (но незапущенной!) иконка раздела Boot Camp постоянно моргала на столе, включаясь-выключаясь туда-сюда. Мелочь, а неприятно.
Так вот, на этой крайне позитивной ноте (которая показывает, что определенно стоит копать дальше и изучать тему), я, пожалуй, сверну первую часть повествования. Во второй части статьи я проверю, как Parallels импортирует виртуальную машину с Windows 7 из Fusion, кто из них быстрее будет ее загружать, попробую еще позагружать Boot Camp в VMware, а также, не побоюсь этого слова, замахнусь на испытание трехмерных возможностей обеих программ, другими словами, попробую поиграться. Я не верю пока что в то, что в виртуальной системе можно реально играть во что-то современно-трехмерное, но, возможно, меня (и читателей) ждет приятный сюрприз.
[ad#intext-inside]
А пока что, резюмируя первую часть статьи, должен сказать, что с приятным сюрпризом столкнулся я — мне понравился новый интерфейс Parallels и скорость работы (большей частью, в том объеме, что я пока смог оценить). Есть, конечно, мелкие огрехи и недоработки, но где их нет? Windows XP в свое время с 64 тысячами багов незакрытых выпустили, и ничего 🙂 Короче говоря, надеюсь, что вторая часть испытаний тоже принесет приятные впечатления, и ответ на вопрос “какую же виртуальную машину использовать” получу не только я, но и читатели блога.