Установка Mac OS X на PC. Часть 14: Перспективы загрузчика XPC

Уже достаточно давно мы публиковали в нашем цикле об установке Mac OS X на PC статейку, посвящённую обзору существующих загрузчиков системы для хакинтоша. С тех пор прошло достаточно много времени, и многое успело сильно поменяться. Например, сильнее всего поменялась ситуация вокруг загрузчика XPC: если раньше это была жутко глючная экспериментальная разработка, то теперь надо признать, что у хакинтошного движения есть вполне рабочий загрузчик, который создаёт полноценную EFI-среду для загрузки родных модулей Apple. Проще говоря, медленно, но верно стирается одно из последних принципиальных отличий между Маком и PC. Сегодня мы посмотрим на загрузчик XPC образца 2011 года и разберемся с тем, чем он лучше старого доброго Хамелеона, что он умеет, а чего пока что не может.

В качестве предисловия ещё раз напомним, что роль BIOS на PC на реальных Маках играет EFI. Во многих аспектах EFI удобнее, надёжнее и перспективнее БИОСа, и производители компов это понимают — всё больше современных плат совместимы с этим стандартом. О том, как прошить в PC-плату EFI от Мака, мы поговорим ещё через годик-полтора (вероятно, к этому времени умельцам удастся разрулить вопрос полностью), а пока давайте думать о том, как быть владельцам BIOS-плат.

Задача была бы неразрешимой, если бы хакерам не помогла компания Intel, которая сама активно экспериментирует на поприще эмуляции EFI на платах с BIOS. Благодаря Intel появился DUET — среда, позволяющая с любого носителя запустить EFI-среду. Но ошибочно полагать, что эта среда станет без проблем грузить Mac OS X, она про эппловскую операционную систему вообще ничего не знает и знать не хочет. История здесь та же, что и с реальными PC-платами с EFI — без дополнительных ухищрений Mac OS они не воспринимают.

Загрузчик XPC, который запускается на базе DUET, отличает как раз то, что его создатель iPhoneTom из Германии смог-таки побороть почти все вопросы несовместимости между DUET от Intel и EFI-загрузчиком boot.efi от Apple.

Но даже бывалому хакинтошнику от этого факта ни тепло, ни холодно. Казалось бы, от добра добра не ищут, и какой смысл возиться с XPC, если есть отлично работающий Chameleon? Тем не менее, смысл есть. Разница между этими двумя загрузчиками огромна:

  • если вы используете Хамелеон, то родной маковский загрузчик boot.efi вообще не используется, процедура загрузки идёт в обход него. Chameleon просто оставляет в памяти примерно то же, что, по идее, должны были оставить EFI-модули на Маке (например, таблицу устройств) и передаёт ядру системы необходимые аргументы
  • если вы используете XPC, то с момента начала загрузки системы на вашем PC происходит практически то же, что и на настоящем Маке — вызывается родной загрузчик boot.efi, он передаёт ядру всю необходимую информацию (а не только ту, которую разработчики Chameleon сочли нужной), запускает EFIRuntime-службы и пр.

Опять-таки, что это даёт рядовому владельцу хакинтоша? В теории, это сводит к минимуму зависимость загрузчика от изменений в системе и способе её загрузки. На практике это отлично проявилось с момента появления первой бета-версии OS X Lion. Chameleon был бессилен, потому что никто на тот момент не знал, какие аргументы требует себе ядро Льва при загрузке. XPC эту информацию знать не требовалось, и он вполне здорово грузил все бета-сборки Lion, пока продолжалось допиливание Хамелеона под новые реалии. Кроме того, все, кто пробовал сравнивать XPC и Chameleon, в той или иной степени замечали большую плавность работы системы. Разумных причин этому пока не нашлось, но и простым самовнушением это не оправдать.

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

Давайте сравним XPC c Хамелеоном по пунктам:

  • подгружать DSDT умеют оба, впрочем, это одно из главнейших требований к хакинтошному загрузчику
  • работать с SSDT-таблицами тоже умеют оба, однако у Хамелеона пока что получается лучше
  • патчить FADT-таблицу тоже могут оба. Для тех, кто не в курсе, напомним, что патч FADT-таблицы позволяет наладить перезагрузку компьютера и избежать сбросов CMOS
  • подгружать кексты из сторонней директории XPC тоже умеет, причём не требует для этого паковать их в Extensions.mkext
  • с загрузкой сторонних систем у XPC туго. Он умеет грузить Винду, поставленную через EFI-окружение, но если у вас уже установлена копия Windows на MBR-диске, то шансов тут никаких. С Линуксом ситуация аналогична
  • инжектор графики есть и в XPC, и в Хамелеоне. Но если Chameleon требует лишь включить соответствующую опцию в файле настроек (с чем справится любой новичок), то XPC требует прописывать практически такой же объём сведений, что и в DSDT (особенно это касается карточек NVIDIA). В чем тут выигрыш — не ясно :)
  • патч Ethernet, без которого в Lion не работает Mac App Store, в XPC не реализован, нужно вручную править DSDT
  • патч USB реализован в обоих загрузчиках, причём одинаково успешно
  • прятать и переименовывать разделы XPC, увы, совсем не умеет, а Хамелеон даёт тут полную свободу
  • тем оформления для XPC тоже нет, разве что сами нарисуете
  • Хамелеон можно поставить на любой раздел любого диска. Для XPC есть два варианта — либо флешка, либо скрытый EFI-раздел любого диска, размеченного в GPT
  • Хамелеон непритязателен к файловой системе загрузочной флешки или раздела, а вот создание загрузочного носителя для XPC — целый квест. Некоторым не везёт и после пятой попытки форматирования
  • зато XPC удаляется намного проще, нежели Хамелеон, чьи следы вычистить практически нереально (если только вы вручную не бэкапили загрузочный сектор)
  • XPC имеет встроенный браузер (про удобство промолчим), а также умеет править содержимое SMBIOS прямо с загрузочного экрана

  • XPC совместим с EFI-shell — средой «настоящего», не эппловского ифая. Там тоже открывается широкий, пока не исследованный до конца простор для экспериментов
  • эксклюзивная фишка XPC — загрузка из DMG-образа, благодаря чему OS X Lion можно поставить вообще без предварительных модификаций. Chameleon нервно завидует :)
  • ещё более эксклюзивная фишка XPC — загрузка с раздела Recovery HD на диске с Lion. Не очень понятно, кому это вообще надо, но сам факт приятен
  • наконец, самая свежая и самая занятная функция, которая обещается в XPC — поддержка панели «Загрузочный том» в OS X. Иными словами, выбирать раздел для загрузки можно официальным способом, в самой системе. В отличие от всех вышеперечисленных функций, у нас это чудо хакинтошной мысли пока не работает

Ещё XPC и Chameleon разрабатываются совершенно разными методами. Над Хамелеоном трудится весьма многочисленная команда, поэтому сборок крайне много, а по ряду вопросов отдельные члены команды часто не могут договориться и ссорятся. Над XPC работает только iPhoneTom, причём коды никому открывать не хочет. Вероятно, если бы у него был толковый помощник, то сейчас бы все уже отказались от Хамелеона, но пока что разработка идёт довольно медленно (точнее, она вообще не шла почти год и активизировалась лишь к концу зимы 2010-2011 гг.).

Что касается времени загрузки компьютера, то интервал между появлением «яблочка» и попаданием на Рабочий стол практически одинаков. При этом у XPC уходит чуть больше времени на подгрузку DUET с флешки или диска — разница по сравнению с Хамелеоном порядка 2-3 секунд.

Как видите, по функциональности XPC уже практически догнал Chameleon (а кое в чём — и перегнал его). Автор материала вполне успешно пользуется им уже почти четыре месяца и не столкнулся ни с какими заметными проблемами. В любом случае, за XPC будущее, потому что запуск реальных EFI-модулей вместо эмуляции ифая куда более обоснован и перспективен для любого хакинтоша.