MacOS X на x86: от теории к практике

MacOS X на x86

 "Мы намерены создать несколько действительно выдающихся компьютеров, и что может помешать нам, так это планы развития PowerPC"

Стив Джобс

В июне 2005 года представителями Apple и Intel было сделано официальное заявление, в котором говорилось о скором переводе всей линейки компьютеров Macintosh на платформу x86. В качестве производителя процессоров была выбрана компания Intel.

В августе того же 2005 года был проведён конкурс на успешный запуск MacOS X на платформе x86. Спустя 12 часов работы Джастин Нолан (Justin Nolan) представил образец работающей системы на процессоре производства Intel. Совместимость была достигнута с помощью патча с драйверами от VMWare. Они выполняли трансляцию кода в понятный для архитектуры x86 вид.

Ещё несколько лет назад затея сменить архитектуру была обречена на провал. Apple со своим лозунгом "Думай иначе" позиционировала свои компьютеры как мощную современную понятную систему и переход на Intel сильно бил по её идеологии.

Судя по всему, сделать этот шаг компанию во многом вынудила необходимость отвоёвывать долю рынка ноутбуков. Вскоре после выхода платформы Intel Centrino стал фаворитом среди мобильных процессоров, чего нельзя сказать о PowerPC G5. Обильное тепловыделение просто не позволяло использовать его в мобильных системах. К тому же у Intel были хорошие планы по дальнейшему совершенствованию своих ЦП.

Технически перенос операционной системы с архитектуры PowerPC на x86 не проблематичен. Если в System 7, System 8 и System 9 Apple использовала только свои наработки, то в десятой версии дистрибутива ядро Darwin состоит из Mach 3.0, BSD 4.0 и наработок сторонних компаний.

Mach 3 обладает всеми необходимыми характеристиками современной операционной системы: защищённая память, вытесняющая многозадачность, динамическая виртуальная память и др.

Из BSD была взята модель работы с процессами и потоками в системе, а также система пользовательских аккаунтов. Darwin уже несколько лет существует для платформы x86 и, установив его, мы получим очередной клон Unix, к тому же весьма удачный.

Графический интерфейс MacOS также во многом состоит из кроссплатформенных стандартов OpenGL, QuickTime и PDF, которые были уже давно портированы на различные платформы. В такой ситуации полностью переписывать все исходные коды не потребовалось. В большинстве случаев обошлись простой перекомпиляцией. Что касается поддержки старых приложений, работавших на PowerPC, выход был найден в использовании трансляции кода - технологии Rosetta. На неё ложится вся работа по прозрачному переводу инструкций процессора PowerPC в инструкции x86.

Тем не менее, в случае использования Rosetta в приложениях, скомпилированных для старых систем все же возможны проблемы в работе. Также прозрачная трансляция кода в некоторых ситуациях может вызвать серьёзную нагрузку на процессор и неработоспособность некоторых приложений. Есть ещё одна проблема, связанная с портированием MacOS X на x86-драйвера. Вернее их отсутствие. Нормальную поддержку видео и кое-какой периферии можно получить только на чипсетах Intel. В случае использования iMac Intel для всего оборудования уже есть необходимые драйвера.