Установка Mac OS X на PC. Часть 2: Теория хакинтоша
В предыдущей статье, посвящённой хакинтошу (попросту говоря, установке Mac OS X на PC) мы рассмотрели вопросы, связанные с совместимостью оборудования. Сегодня мы поговорим об остальных препятствиях, которые стоят на пути энтузиастов, решивших превратить свой PC-компьютер в подобие Мака.
Многие несведущие в вопросах хакинтошинга пользователи считают, что совместимое оборудование — это единственная проблема на пути запуска Mac OS на обычном PC. Это неверно — предположим, что вам удалось собрать компьютер из комплектующих, полностью идентичных тем, что есть в Маке. Но к вашему удивлению, вы не сможете даже загрузиться с официального установочного DVD Mac OS X. Вас будет ждать либо мгновенная перезагрузка, либо зависание на загрузочном экране с яблоком, либо вообще такая картина:

Это явление называется kernel panic, в переводе на русский язык — паника ядра. Если вы — пользователь Windows (а к их числу относятся 99% хакинтошников), то вам наверняка знаком «синий экран смерти». Так вот, в Mac OS есть его серый аналог — на настоящих Маках увидеть его можно очень и очень редко, зато при настройке и отладке Mac OS X на PC — гораздо чаще.
В чём же проблема? Серьёзные различия между Mac OS X и PC есть в механизме функционирования компьютера. На Маках присутствуют по крайней мере две микросхемы, которых нет на обычном PC — это EFI и SMC.
EFI (или Extensible Firmware Interface) — это продвинутая замена привычному пользователям PC BIOS’у. Это изобретение Intel, которым комплектуются Маки, начиная с 2006 года выпуска. Отличий между BIOS и EFI предостаточно, и что самое интересное, EFI при некоторой подстройке получает совместимость со стандартом BIOS — это и позволяет ставить Windows на Маки. Но обратной совместимости нет — поэтому без EFI Mac OS на PC не запустится.

Как же решается эта проблема? Единственный вариант — это эмуляция EFI в загрузчике системы. Отсюда вывод — для работы с Mac OS X на PC вам как минимум нужен посторонний загрузчик системы. На сегодняшний день развернулась целая конкуренция загрузчиков разных программистов. В сообществе хакинтошников наиболее известны загрузчики Chameleon, PC EFI, Boot Think, XPC. Отличия между ними — в дизайне, в количестве поддерживаемых версий системы, в самом способе подделки EFI.

Загрузчик можно записать на CD, на флешку или даже на раздел жёсткого диска. Чаще всего используются два последних варианта. Если загрузчик поддерживает работу с жёсткого диска, то никаких проблем и ухищрений не понадобится. В противном случае вам постоянно придётся держать воткнутой в компьютер загрузочную флешку.
Итак, без эмулятора EFI вас ожидает неминуемая автоматическая перезагрузка при первой же попытке запустить Mac OS.
Допустим, вы раздобыли эмулятор, и процесс загрузки с DVD пошёл. Здесь вас гарантированно ждёт второе разочарование — компьютер пошуршит дисками и затихнет, а вам останется смотреть на картинку с яблоком ровно столько времени, на сколько хватит терпения.

Виной тому — вторая важная микросхема на материнской плате Маков — это SMC (System Management Controller). С его помощью можно управлять подсветкой дисплея, оборотами жесткого диска, режимами перехода в режим сна и выхода из него, режимом зарядки, работой сенсорной панели и некоторыми функциями ввода и вывода, относящимися к режиму сна. Но что ещё важнее, в SMC содержится специальный ключ, которым шифруются некоторые системные файлы.
Как мы уже говорили, на фоне Windows с её защитой в виде ввода серийного номера, последующей активацией и регулярными проверками на подлинность Mac OS кажется абсолютно незащищённой — никакого серийного номера у вас не спросят, и ни о какой активации через Интернет речи тут быть не может. Сложно даже проконтролировать, на сколько компьютеров вы поставили Mac OS с одного установочного диска. Но всё это не значит, что Mac OS не защищена от пиратства.
Среди системных драйверов (которые по английски называются kernel extensions — расширения ядра, а по-русски забавно зовутся кекстами) есть экземпляр с красноречивым названием Don’t Steal Mac OS X.kext. Он отвечает за расшифровку системных файлов. Если он не может считать из SMC ключ шифрования, то загрузка системы зависнет.

В обходе такой защиты есть два способа. Раньше применялась грубая сила — Don’t Steal Mac OS X.kext удалялся или специальным образом блокировался, а вместо него применялся другой декриптор-расшифровщик, который бы не лез в SMC за ключом. Сейчас хакеры пошли другим путём — так же, как эмулируется EFI, эмулируется и SMC — в итоге Mac OS думает, что на компьютере действительно есть данная микросхема, и запросто может считать оттуда ключ. Плюс такого метода — ускорение загрузки системы на несколько секунд.
Преодоление двух аппаратных препятствий открывает следующую ступеньку на пути к успешной загрузке системы. Но нельзя забывать о следующем уровне несовместимости, к которому относятся нужные для PC расширения ядра (кексты). Об этом мы поговорим в следующей статье нашего хакинтошного цикла.