Здесь будет город-сад?
АрхивСлухи о появлении Mac OS X для платформы х86 ходят давно, то исчезая, то возвращаясь снова.
Слухи о появлении Mac OS X для платформы х86 ходят давно, то исчезая, то возвращаясь снова. На чем они основаны, насколько оправданны и воплотятся ли когда-нибудь в реальный программный продукт — вопрос, интересующий многих. Эта статья не является подтверждением или опровержением подобных слухов, равно как и изложением официальной точки зрения компании Apple на вопрос переноса Mac OS X на x86-платформу. Это — попытка оценить вероятность такого переноса и его возможные последствия.
История
В 1984 году вышла System 1.0 — первая версия «классической» Mac OS и первая коммерческая операционная система с графическим пользовательским интерфейсом. Этот интерфейс включал в себя такие элементы, как окна, пиктограммы файлов и программ, меню для выбора команд и курсор, которым пользователь мог управлять с помощью мыши (тоже обретшей популярность благодаря Макинтошу). Система изначально разрабатывалась с расчетом на то, чтобы любой неквалифицированный пользователь мог, впервые сев за компьютер, уже через несколько минут начать работать на нем.
С течением времени Mac OS взрослела, обрастая дополнительной функциональностью, но при этом оставалась наиболее легкой в изучении и использовании. Другое дело, что технические ограничения, заложенные в систему, не позволяли ей называться «современной»: System 1.0 и ее продолжение вплоть до Mac OS 9 фактически были предназначены для одного пользователя, который бы работал с одним приложением на одном компьютере. Защищенная память, полноценная «вытесняющая» многозадачность, динамическое выделение виртуальной памяти, поддержка многопроцессорности — все это отсутствовало в «классической» Mac OS.
Путь, по которому пошла Apple, вряд ли можно назвать легким. В 1997 году она купила другую операционную систему — OpenStep от компании NeXT1. OpenStep была UNIX-базированной операционной системой, не имела тех недостатков, от которых страдала Mac OS, и, что очень важно, поддерживала несколько видов процессоров — Motorola 680x0, Intel 80x86, HP PA-RISC и Sun SPARC. После нескольких лет упорного труда Apple выпустила на рынок новое поколение операционной системы для Макинтошей под названием Mac OS X, заложив в ее основу именно OpenStep (вернее, то, во что она превратилась за несколько лет мутаций в лабораториях Apple). Это и позволяет многим предположить, что, вероятно, поддержка нескольких семейств процессоров осталась в Mac OS X, и все, что надо Apple, — это включить ее, после чего настанет вселенское счастье в виде доступной настольной альтернативы MS Windows.
Теория
Ядро современной Mac OS X — Darwin — представляет собой комбинацию Mach 3.0, 4.4 BSD и других компонентов, как разработанных Apple, так и позаимствованных в качестве сторонних стандартов: например, I/O Kit для создания драйверов устройств и их динамической подгрузки в систему при наличии устройства или же VFS (Virtual File System) — для поддержки других файловых систем, и др.
Mach 3.0 в ядре Mac OS X обеспечивает необходимые параметры современной операционной системы — защищенную память, когда сбой одного приложения не заставляет другие приложения сыпаться, как карточный домик; вытесняющую многозадачность, при которой приложения, запущенные на компьютере, мирно сосуществуют, деля между собой процессорное время; динамическую виртуальную память, позволяющую выделять приложению столько памяти, сколько ему надо (в пределах дискового пространства). От BSD Mac OS X позаимствовала модель работы с процессами в системе, идентификацию пользователей и систему привилегий, а также работу с потоками в приложениях — POSIX threads.
Darwin уже давно существует в версии под х86-процессоры, и любой желающий может скачать как дистрибутив Darwin, так и исходный код этого ядра, свободно распространяемый Apple. Но все, что получит пользователь после установки этого дистрибутива, — обычную командную строку еще одной UNIX-системы. То, что находится выше уровня ядра, — графическая составляющая, среда для работы приложений с графическим пользовательским интерфейсом, сам интерфейс, — в дистрибутив ядра не входят и являются компонентами коммерческой операционной системы Mac OS X.
Если ядро системы существует под архитектуру x86, значит, нужно лишь портировать на эту же архитектуру оставшиеся части — и дело сделано?
Классическая Mac OS, в то время System 7.0, существовала, хоть и недолго, в версии под х86-платформу. К сожалению, этот проект (кодовое название Star Trek) был похоронен в недрах Apple в эпоху затягивания поясов. Подтолкнула Apple к созданию версии Mac OS для процессоров Intel в 1992 году компания Novell, рассчитывавшая на помощь Apple в реализации проекта (Novell требовалась ОС для рабочих станций). Активное участие в нем принимала и Intel, которая была не прочь избавиться от зависимости от Microsoft. Уже в декабре того же года команда из двадцати человек — инженеров Apple и Novell — представила прототип Mac OS для компьютеров на базе процессора Intel. Он включал в себя не только работающий Finder (графическая оболочка Макинтошей для работы с файлами и приложениями), но и часть QuickTime, и графическую подсистему QuickDrawGX, и даже стартовое приветствие «Welcome to Macintosh». Но уход руководителя проекта Star Trek из компании, сопротивление некоторых топ-менеджеров Apple, а также обещания IBM о содействии в разработке другой ОС под кодовым названием Pink не позволили продолжить работу, и в июне 1993 года Star Trek был прекращен. Несмотря на технологический успех в переносе System 7.0 на Intel-компьютер, сам процесс перехода на подобную платформу — если бы он состоялся — был бы вовсе не простым. Star Trek создавался как проект, совместимый на уровне исходных кодов, а не готовых приложений, поэтому существующие приложения нужно было перекомпилировать для работы на процессорах Intel, а те программы, которые работали с аппаратным обеспечением, пришлось бы переписывать. Так что коммерческий успех проекта был очень сомнителен для многих сторонних разработчиков программного обеспечения. |
Практика
Давайте детальнее рассмотрим, какие компоненты не вошли в Darwin и насколько легко они поддаются портированию2.
С технической точки зрения, графическая составляющая Mac OS X не должна вызывать проблем с переносом на x86 — ведь она основана на кроссплатформных стандартах. В самом деле, для трехмерной графики на Mac OS X используется изобретение компании Silicon Graphics — стандарт OpenGL, существующий на всех платформах. Технология QuickTime, с появлением которой связывают возникновение термина «мультимедиа», выпускается для классической Mac OS, Mac OS X и Windows с практически идентичным набором программных вызовов (Application Programming Interface — API). Система прорисовки двухмерной графики — Quartz 2D — использует стандарт PDF как внутреннюю модель для создания векторной графики на экране компьютера, а PDF, как известно, тоже является кроссплатформным стандартом.
Возможно, все не так просто, как кажется на первый взгляд, но я думаю, что проблем с этой частью Mac OS X при портировании возникнет меньше всего. Гораздо интереснее (и сложнее) обстоят дела с портированием среды для работы приложений.
Как известно, Mac OS X может работать с пятью типами приложений — терминальными, Java, Classic (подсистема работы классической системы Mac OS 9 внутри Mac OS X), Carbon (модификация API, существовавших под классической системой) и Cocoa (API, пришедшие с OpenStep).
С первыми двумя все ясно. Никаких особых усилий, кроме обычной доводки, которую иногда приходится делать и сейчас на Mac OS X при сборке терминальных приложений, не потребуется. Java — кроссплатформная технология по определению, и у Java-приложений проблем возникнуть не должно.
С Classic и Carbon — двумя близкими наборами API — ситуация иная. Но если технически перенести Classic можно (что продемонстрировал проект Star Trek с классическим набором API под названием ToolBox), то и Carbon, который представляет собой модифицированный ToolBox, тоже наверняка возможно. Учитывая, что среда Classic внутри Mac OS X не имеет доступа напрямую к аппаратному обеспечению и те приложения, что работали с аппаратным обеспечением на Mac OS 9, в среде эмуляции с ним уже не работают, процесс переноса «классических» приложений сводится, как и в проекте Star Trek, к перекомпиляции этих приложений.
В Mac OS X работу с устройствами Apple выделила в отдельную технологию под названием I/O Kit, которая входит в состав ядра Darwin, то есть уже существует под x86-платформу. Carbon теперь к работе с «железом» имеет опосредованное отношение — программы получают доступ к аппаратному обеспечению через I/O Kit. Ну а сами Carbon-приложения, вероятно, тоже потребуют перекомпиляции для работы на новой системе.
И среда работы Cocoa-приложений, написанных с использованием объектно-ориентированного API, пришедшего из OpenStep — которая существовала для четырех видов процессоров, — должна портироваться на архитектуру других процессоров без особых трудностей.
1 (назад) NeXT была основана в 1986 году Стивом Джобсом.
2 (назад) Нижеследующая структура дает несколько упрощенное, но в целом правильное представление о строении Mac OS X.
Политика
Как видите, с технической точки зрения вариант переноса Mac OS X на другое семейство процессоров вполне реален. Но если Apple решит изменить процессор платформы, то ей придется озаботиться тем, чтобы разработчикам ПО не пришлось снова переписывать свои приложения. Еще не все пришли в себя от перехода с «классической» системы на Mac OS X. И, полагаю, если они услышат о том, что им нужно снова переделывать свои приложения, компания Apple тут же лишится большинства сторонних разработчиков, — а вот на перекомпилирование, думаю, их еще можно уговорить.
Существует два пути, по которым может пойти Apple. Первый — выпустить Mac OS X.86 в свободную продажу в коробочной версии с возможностью установки этой системы на любой PC. Второй — отказаться от PowerPC-процессоров и по-прежнему выпускать Макинтоши, но уже с другими процессорами. У каждого из вариантов есть свои достоинства и недостатки, но оба могут привести к тому, что Apple в том виде, в каком она существует сейчас, исчезнет, и, в лучшем случае, вместо нее возникнет другая Apple, а в худшем…
Если Apple решит выпустить Mac OS X.86 в коробочной версии, то первая проблема, с которой она столкнется, — отсутствие драйверов под тысячи периферийных устройств, как внутренних, так и внешних, а также с тем, что производители устройств еще и писать драйверы под Mac OS X не умеют. И захотят ли фирмы-производители периферии инвестировать деньги в написание драйверов для системы, которая только появилась на рынке, и неизвестно, как долго продержится? А раз большинство периферийных устройств не будет работать под новой системой, то и спрос на нее, скорее всего, будет низким. Соответственно, и объемы выпускаемых драйверов будут оставлять желать лучшего… Порочный круг, очень похожий на ситуацию с программным обеспечением для Маков: производители ПО зачастую принимают решение не производить программы из-за невысокой доли рынка Макинтошей, а конечные пользователи компьютеров могут сделать свой выбор не в пользу Маков именно из-за отсутствия определенной программы.
Разорвать этот круг очень трудно, и мне даже сложно представить конкретные шаги, которые здесь можно предпринять.
Но, предположим, драйверы есть, Mac OS X продается, все счастливы, — все, кроме… Apple. Финансовые отчеты Apple свидетельствуют о том, что компания зарабатывает деньги прежде всего на продаже своих компьютеров. ОС и программы, которые с ней поставляются, — хоть и немаловажное, но лишь дополнение к тем компьютерам, которые Apple создает и продает. Между тем Маки часто покупают именно из-за операционной системы. Да, компьютеры Apple имеют стильный внешний вид, получают награды за дизайн, но зачастую в технологическом плане отстают от своих PC-собратьев, — в Макинтошах применяются технологии, присутствующие на рынке год или даже больше; к примеру, Apple только недавно перешла на использование памяти DDR, а в PC этот вид оперативной памяти активно используется уже около двух лет.
Если технологический уровень производимых Apple компьютеров не претерпит серьезных изменений, а Mac OS X будет доступна в виде отдельного продукта, то объем продаж этих компьютеров может сильно снизиться. Это будет означать практически полное изменение бизнес-модели для компании, переходящей с продажи компьютеров на продажу системного программного обеспечения. Станет ли это рождением еще одной Microsoft? В первую очередь, в Apple произойдут массовые увольнения сотрудников, занятых разработкой аппаратного обеспечения, — разве что они займутся созданием устройств, подобных iPod.
Еще один нюанс: если сейчас Apple прекрасно знает модели и конфигурации компьютеров, для которых разрабатывает системное программное обеспечение, то, выпустив Mac OS X для PC, она столкнется с миллионами самых разных конфигураций компьютеров. Будет ли Mac OS X работать так же хорошо со всеми этими бесчисленными комбинациями, как она работает на родных Макинтошах? Ведь тот высокий уровень надежности, которым славится Apple и ее компьютеры, держится именно за счет того, что программное и аппаратное обеспечение разрабатывает одна компания, тем самым достигая высочайшего уровня интеграции между этими двумя составляющими. Потребность поддерживать миллионы различных конфигураций персональных компьютеров потребует от Apple не только написания программ высочайшего качества, но и создания огромной службы технической поддержки, что, несомненно, влетит в немаленькую копеечку.
Второй путь, который может избрать Apple в стремлении перейти на новую архитектуру процессоров, — это по-прежнему выпускать Макинтоши, но уже на другом процессоре. Когда-то давно, когда компания страдала от синдрома NIH (Not Invented Here — изобретено не здесь) и занималась разработкой своих стандартов (например, ADB, Apple Desktop Bus, интерфейс, по которому подключались клавиатура, мышь и другие устройства), Маки серьезно отличались аппаратным обеспечением от PC. Сейчас же Макинтош фактически отличается только процессором, а все остальные технологии, использованные при его создании, также используются в мире PC — USB, PCI, AGP, SDRAM/DDR RAM, VGA, 802.11b (AirPort или Wi-Fi — беспроводная локальная сеть). Заменив процессор, Apple сделает компьютер, внутренне очень похожий на миллионы PC, как брэндовые, так и безымянные. Даже если она попытается защитить свои компьютеры каким-либо внутренним чипом ROM (Read-Only Memory) и установка Mac OS X будет невозможна без наличия этого чипа, то рано или поздно найдется умник, который сломает защиту, после чего появится возможность устанавливать Mac OS X на любой PC. В этом случае Apple просто-напросто будет терять деньги, пока не откажется от производства своих компьютеров и не перейдет на вариант № 1.
Достаточно вспомнить печальный опыт из истории Apple, когда сторонние производители могли лицензировать Mac OS и выпускать клоны Macintosh — им не надо было взламывать систему, чтобы она работала без ROM’а, они получали на него права вместе с лицензированием Mac OS. Тогда производители клонов (IBM, Motorola, UMAX и другие), продавая машины зачастую ниже качеством, но всегда — дешевле, чем настоящие Макинтоши, просто отбирали покупателей у Apple, а не расширяли рынок, как задумывалось. Поэтому в 1998 году Apple отказалась от практики лицензирования Mac OS сторонним производителям.
И поэтому лично мне второй вариант кажется менее вероятным, чем первый.
Альтернатива
Но есть еще один игрок на этом поле. Motorola не оправдала возложенных на нее надежд тем, что не только не выпустила для Макинтошей PowerPC G5, но и фактически провалила операцию под названием «развитие PowerPC G4». Поэтому Motorola должна выйти из игры и уступить место IBM, у которой есть и ресурсы, и желание быть лидером на рынке компьютерных технологий.
Судя по всему, сегодня IBM есть что предложить Apple. В минувшем октябре на форуме разработчиков микропроцессоров IBM представила новый процессор PowerPC 970, с помощью которого 64-битные вычисления переместятся из стоечных серверов на рабочие станции. Аналитики сходятся в том, что основным заказчиком такого процессора станет Apple.
Фактически PowerPC 970 — это урезанная версия Power4, серверного 64-битного процессора от IBM, в котором, кроме разнообразных улучшений вроде уменьшения слоя окиси на соединениях, что серьезно повысило его производительность, добавлен блок обработки данных, совместимый по набору инструкций с Altivec, присутствующим в PowerPC G43. Безусловно, технологические отличия есть, но во многом именно благодаря Altivec процессоры PowerPC G4 могут противостоять натиску процессоров из «вражеского» лагеря.
Долгое время Motorola отказывалась лицензировать эту технологию другим производителям, а Apple, вложив много сил и денег в продвижение Velocity Engine (так компания называет Altivec), не хотела отказываться от нее — ведь приложения должны быть написаны с использованием команд, присутствовавших в Altivec для того, чтобы воспользоваться его преимуществами, и многие разработчики уже затратили ресурсы на такой тюнинг приложений. Но, представив PowerPC 970, IBM сообщила, что этот процессор содержит SIMD-блок cо 162 инструкциями, совместимыми с инструкциями Altivec. Ни IBM, ни Apple, известная своей скрытностью, не признались в том, будет ли использован этот процессор в следующих поколениях Макинтошей, но уж слишком все сходится, чтобы быть простым совпадением.
Огромное преимущество PowerPC 970 перед другими 64-битными процессорами в том, что он может исполнять 32-битный код без эмуляции, то есть для обеспечения совместимости с новым процессором приложения не нужно переписывать. Более того, чтобы приложение могло использовать преимущества 64-битной архитектуры, его достаточно перекомпилировать для нового процессора.
По утверждениям IBM, PowerPC 970 выйдет в третьем квартале 2003 года и будет иметь тактовую частоту от 1,4 до 1,8 ГГц. Появились слухи, что на ежегодной конференции WWDC 2003 разработчики смогут увидеть первые прототипы Макинтошей на основе PowerPC 970 и даже работающую версию 64-битной Mac OS X. Возможно, первые Макинтоши на основе этого процессора будут представлены уже в июле-августе текущего года
Каким же путем пойдет Apple в стратегии использования процессоров для своих компьютеров? По моему мнению, самым легким и самым удачным в технологическом плане вариантом для Apple было бы скооперироваться с IBM и стать первой компанией, которая будет поставлять 64-битные персональные компьютеры.
Запасной выход После интеграции OpenStep и Mac OS в самом начале (то есть году этак в 1998-м) Apple распространяла среди разработчиков программного обеспечения первые опытные версии Mac OS X под кодовым названием Rhapsody. Они представляли собой собственно OpenStep с модифицированным под Макинтош графическим интерфейсом и модулем совместимости с программным обеспечением, написанным под «классическую» Mac OS (кодовое название модуля — Blue Box). Так вот, эти Developer Preview существовали в версиях под процессоры PowerPC и Intel. Уже тогда все ждали, что вот-вот Apple выпустит Mac OS X для процессоров Intel. Не сложилось. |
В процессе подготовки статьи я пообщался с инженерами из Apple с целью подтверждения или опровержения вышеизложенной информации. К сожалению, все они, прикрываясь договором о неразглашении, отказались комментировать статью, заметив только, что откровенных глупостей она не содержит. Кроме того, в последние полтора месяца занятость программистов в Apple, работающих над операционной системой, заметно увеличилась, а значит, резонно предположить, что готовится нечто новое и большое. Что это будет — Mac OS X 10.3 для PowerPC G4, Mac OS X для PowerPC 970 или же Mac OS X для AMD Opteron — покажет уже недалекое будущее.
3 (назад) Altivec — это изобретение Motorola для SIMD (Single Instruction, Multiple Data), технологии, которая является аналогом MMX в Intel, 3Dnow! — в AMD, MAJC — в процессорах от Sun.