Установка Mac OS X на PC. Часть 2: Теория хакинтоша

osx86В предыдущей статье, посвящённой хакинтошу (попросту говоря, установке 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 - основной источник проблем хакинтоша
Вот так выглядит EFI — основной источник проблем хакинтоша

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

Загрузочное меню EFI
Загрузочное меню EFI

Загрузчик можно записать на CD, на флешку или даже на раздел жёсткого диска. Чаще всего используются два последних варианта. Если загрузчик поддерживает работу с жёсткого диска, то никаких проблем и ухищрений не понадобится. В противном случае вам постоянно придётся держать воткнутой в компьютер загрузочную флешку.

Итак, без эмулятора EFI вас ожидает неминуемая автоматическая перезагрузка при первой же попытке запустить Mac OS.

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

Из-за SMC загрузка зависнет на этом этапе
Из-за SMC загрузка зависнет на этом этапе

Виной тому — вторая важная микросхема на материнской плате Маков — это 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 расширения ядра (кексты). Об этом мы поговорим в следующей статье нашего хакинтошного цикла.