Насколько реальна Mac OS X на платформе х86?

Александр Пацай

Данная статья не является изложением официальной точки зрения компании Apple, как и не преследует цель опровергнуть или подтвердить слухи о подготовке Mac OS X для платформы х86. Предлагаемый материал следует рассматривать лишь как некую попытку свести имеющиеся факты воедино и оценить саму возможность такого действия. Слухи о Mac OS X для платформы х86 (далее просто Mac OS X.86) циркулируют давно, то пропадая, то вновь возвращаясь. На чем они основаны, насколько оправданны и воплотятся ли в реальный программный продукт - вопрос, интересующий многих. Ведь не секрет, Mac OS - это на 70% именно то, что придает платформе Apple все те качества, которыми она обладает.

Немного истории

Все началось в 1984 г. с выпуска "классической" Mac OS - System 1.0 - первой коммерческой операционной системы для персональных компьютеров с графическим пользовательским интерфейсом. И уже в то время для тех, кто работал с System 1.0, были доступны такие элементы, как окна, пиктограммы файлов и программ, меню для выбора команд и курсор, которым пользователь мог управлять с помощью мыши (также сначала появившейся на Маках). Система создавалась с расчетом именно на то, что всякий, впервые севший за компьютер, мог бы уже через десяток минут изучения работать на нем. Таким образом, Apple реализовала свой известный девиз "Computer for the rest of us" ("Компьютер для всех остальных").

Со временем операционная система Маков взрослела, оснащалась дополнительными возможностями и функциональностью, но при этом оставалась все такой же простой в изучении и использовании. Другое дело, что технические ограничения, заложенные в System 1.0 изначально, не позволяли ей называться "современной" операционной системой, и ее продолжения вплоть до Mac OS 9 фактически были предназначены для одного пользователя, работающего с одним приложением на одном компьютере. Защищенная память, полноценная, вытесняющая многозадачность; динамическое выделение виртуальной памяти; поддержка многопроцессорности - все это отсутствовало в "классической" Mac OS, и места на Олимпе современных операционных систем для нее не находилось.

Путь, избранный Apple, вряд ли можно назвать легким. В 1997 г., оказавшись в очередной раз на перепутье, компания приобретает NeXT, естественно, вместе с ее разработкой - операционной системой OpenStep. Напомним, что NeXT была основана в 1986 г. Стивом Джобсом (Steve Jobs), который вместе со Стивом Возняком (Steve Woznyak) десятью годами раньше дал старт и самой Apple (однако в 1985 г. из-за разногласий с Советом директоров по вопросам управления Джобс покинул свое первое детище).

OpenStep была Unix-базированной операционной системой и потому не имела всех тех недостатков, от которых так страдала "классическая" Mac OS. Также интересно и важно для последующего изложения отметить, что ею поддерживались несколько видов процессоров - Motorola 680x0, Intel 80x86, HP PA-RISC и Sun SPARC.

После трех лет упорного труда в сентябре 2000 г. была разработана Public Beta, а уже в марте следующего года Apple выпустила версию 10.0 - новое поколение операционной системы для Макинтошей. Так появилась Mac OS X, в основу которой легла именно OpenStep. А раз так, то можно предположить, что поддержка нескольких типов процессоров осталась и в Mac OS X, и все, что нужно сделать Apple, - это лишь включить ее, чтобы пользователь получил доступную альтернативу MS Windows на своем PC.

Что же внутри?

Ядро современной Mac OS X - Darwin - представляет собой комбинацию Mach 3.0, BSD 4.4 и других компонентов, как разработанных самой Apple, так и позаимствованных у других производителей в качестве сторонних стандартов. Например, I/O Kit для создания драйверов устройств и их динамической подгрузки в систему или же VFS (Virtual File System) - для поддержки других файловых систем и др.

Mach 3.0 обеспечивает необходимые параметры современной ОС - защищенную память, когда сбой одного не заставляет другие приложения сыпаться, как карточный домик; вытесняющую многозадачность, при которой приложения, запущенные на компьютере, мирно сосуществуют, разделяя между собой процессорное время; динамическую виртуальную память, позволяющую выделять приложению столько ресурса, сколько ему необходимо (в пределах дискового пространства). От BSD Mac OS X позаимствовала модель работы с процессами в системе и с потоками в приложениях (POSIX threads), а также идентификацию пользователей и систему привилегий.

Вы можете установить Mac OS X на компьютер с процессором х86 прямо сегодня, правда, не всю, а только ядро системы. Darwin уже достаточно давно существует в версии под процессоры х86, и любой желающий может получить не только дистрибутив, но даже исходный код этого ядра.

Однако все, что окажется у пользователя после установки данного дистрибутива, - обычная командная строка еще одной Unix-системы. То, что находится выше уровня ядра, - графическая составляющая, среда для работы приложений с графическим интерфейсом и он сам, - в дистрибутив не входит и относится к компонентам коммерческого продукта Mac OS X.

Уж если ядро системы существует под x86, то придется только перенести на эту же архитектуру оставшиеся части, и дело сделано.

Давайте, пусть и схематически, но все же более подробно рассмотрим, какие компоненты, делающие Mac OS X таким лакомым кусочком, не вошли в Darwin, и легко ли они поддаются портированию.

С технической точки зрения перенос графической составляющей Mac OS X на архитектуру x86 не должен вызывать проблем - ведь она основана на кросс-платформенных стандартах, таких, как OpenGL, QuickTime и PDF. В самом деле, изобретение компании Silicon Graphics - стандарт OpenGL, существует для всех платформ. Отпраздновавшая в прошлом году 10 лет технология QuickTime, с разработкой которой связывают возникновение термина "мультимедиа", выпускается для классической Mac OS, Mac OS X и Windows практически с идентичным набором программных вызовов (API). Система прорисовки двухмерной графики на Mac OS X - Quartz 2D - использует PDF как внутреннюю модель для создания векторной графики на экране. А сам стандарт PDF, как известно, также является кросс-платформенным благодаря стараниям компании Adobe.

Возможно, что все не так просто, как кажется на первый взгляд, но я думаю, что проблем с этой частью Mac OS X при портировании возникнет меньше всего. Куда интереснее (и сложнее) выглядит ситуация со средой для работы приложений.

Как известно, Mac OS X может работать с пятью типами приложений - терминальными, Java, Classic (подсистема работы Mac OS 9 внутри Mac OS X), Carbon (модификация API, существовавших под классической системой) и Cocoa (API, пришедшие с OpenStep).

С первыми двумя видами все ясно, и никаких особых усилий, кроме обычной доводки, которую иногда приходится делать и сейчас на Mac OS X при сборке терминальных приложений, не потребуется. Java (на данный момент Java2 1.4.1) - кросс-платформенная технология по определению.

А вот Classic и Carbon - два близких набора API - могут поставить разработчиков Apple в тупик. Хотя, с другой стороны, Apple известна экстравагантностью и необычным подходом к делу, поэтому тут можно ожидать чего угодно. Особенно если вспомнить, что даже классическая Mac OS, в то время System 7.0, существовала (хоть и недолго) в версии под платформу х86.

Да-да, был такой проект с кодовым названием Star Trek, но, к сожалению, его похоронили в недрах Apple в эпоху затягивания поясов в 1993 г. Подтолкнула компанию к созданию в 1992 г. версии Mac OS для x86 Novell, которой требовалась операционная система для рабочих станций, и она рассчитывала на помощь Apple в реализации такого проекта. Кроме того, активное участие в этом принимала и Intel, всегда стремившаяся иметь для своих процессоров альтернативу ОС от Microsoft. Уже в декабре того же года команда из 20 человек, состоящая из инженеров Apple и Novell, представила прототип Mac OS на компьютере, построенном на основе процессора Intel. Здесь были не только работающий Finder (графическая оболочка для работы с файлами и приложениями), но и часть QuickTime (мультимедийная среда), и QuickDrawGX (графическая подсистема), и даже стартовое приветствие "Welcome to Macintosh". Но уход руководителя проекта Star Trek из компании, а также сопротивление некоторых высших менеджеров Apple (например, ярым противником проекта был Фрэд Форсинс (Fred Forsynth), возглавлявший направление разработки аппаратного обеспечения), плюс к этому обещания IBM о сотрудничестве в создании другой операционной системы под кодовым названием Pink не позволили продолжить работу над Star Trek, и в июне 1993 г. он был расформирован.

Несмотря на технологический успех в переносе System 7.0 на Intel-систему, сам процесс перехода на подобную платформу - если бы он состоялся - оказался бы весьма непростым. Star Trek создавался как проект, совместимый на уровне исходных кодов, а не готовых приложений, поэтому существующее ПО следовало перекомпилировать для работы на процессорах Intel, а те программы, которые работали с аппаратным обеспечением, пришлось бы переписывать. Так что коммерческий успех такого проекта был очень сомнителен для многих сторонних разработчиков ПО.

Что касается современного положения дел с Classic и Carbon, то этот вопрос, безусловно, очень интересен. Если технически перенести Classic возможно (что продемонстрировал проект Star Trek с классическим набором API под названием ToolBox), то и с Carbon, который представляет собой модернизированный ToolBox, также проблем не должно быть. Учитывая, что среда Classic внутри Mac OS X не имеет доступа напрямую к аппаратному обеспечению, и те приложения, что работали с аппаратным обеспечением на Mac OS 9, в среде эмуляции с ним уже не взаимодействуют, процесс переноса "классических" приложений сводится, как и в проекте Star Trek, к их перекомпиляции.

В Mac OS X работу с устройствами Apple выделила в отдельную технологию под названием I/O Kit, поэтому Carbon теперь не имеет непосредственного отношения к аппаратному обеспечению. К "железу" приложения получают доступ через I/O Kit, который входит в состав ядра Darwin, т. е. уже существует под платформу x86. Ну а сами Carbon-приложения, вероятно, потребуют перекомпиляции для функционирования на новой системе.

И среда работы Cocoa-приложений, написанных с использованием объектно-ориентированного API, пришедшего с OpenStep (которая, как уже упоминалось, существовала для четырех разных процессоров), также вполне может быть перенесена, разве что приложения, уже под нее написанные, потребуют перекомпиляции исходного кода.

Как видите, с технической точки зрения вариант переноса Mac OS X на другое семейство процессоров вполне реален. Однако если Apple решит поменять аппаратную платформу, то руководители компании не должны допускать даже мысли о том, что разработчикам снова придется существенно модифицировать свои приложения. Еще не все пришли в себя от перехода с "классической" системы на Mac OS X, и вполне возможно, что если им нужно будет снова переделывать свои продукты, Apple лишится большинства сторонних разработчиков, а вот на более "легкое" перекомпилирование, вероятно, их можно было бы еще уговорить.

Чей процессор использует Apple в следующих поколениях своих компьютеров, если изберет данный вариант, - отдельная тема, и мы на этот счет еще поразмышляем, но не сегодня. Сейчас же поговорим о том, как может себя повести компания в будущем.

Два варианта

Итак, первый вариант - выпустить Mac OS X.86 в свободную продажу в коробочной версии с возможностью установки на любом PC. Второй - отказаться от чипов PowerPC и по-прежнему производить Макинтоши, но уже с другими процессорами. Каждый путь имеет свои преимущества и недостатки, но они оба могут привести к тому, что Apple в том виде, в котором она существует теперь, исчезнет, и в лучшем случае вместо нее возникнет другая компания.

Если все же будет решено выпускать Mac OS X.86 в коробочной версии, то первая проблема, с которой столкнется Apple, - отсутствие драйверов под тысячи периферийных устройств, как внутренних, так и внешних (добавьте сюда и то, что производители данных устройств еще и писать эти драйверы под Mac OS X не умеют). Возникнет своеобразный замкнутый круг, и разорвать его будет очень трудно - поскольку большинство периферии не будет работать под новой системой, то и уровень принятия этой системы на рынке скорее всего будет низким, соответственно, в выпуске драйверов компания будет все меньше заинтересована.

Но, предположим, что проблема разрешилась, Mac OS X продается, все счастливы - все, кроме… Apple. Не секрет, что эта компания зарабатывает деньги прежде всего на продаже своих компьютеров, и операционная система, и программы, которые с ней поставляются, - лишь дополнение, создающее цельный продукт. Компьютеры Apple, бесспорно, имеют стильный внешний вид, получают награды за дизайн, но зачастую в технологическом плане все же иногда отстают от своих PC-собратьев. Кроме того, еще один нюанс: выпустив Mac OS X для PC, Apple столкнется с миллионами самых разных конфигураций компьютеров - будет ли Mac OS X работать так же надежно со всеми бесчисленными разнообразными комбинациями периферийных устройств, как это происходит на родных Макинтошах? Надежность, присущая компьютерам Mac, достигается именно за счет того, что программное и аппаратное обеспечение разрабатывает одна компания, тем самым достигая необходимого уровня интеграции между этими двумя составляющими.

Второй вариант - по-прежнему выпускать Макинтоши, но уже на другом процессоре. Когда-то, в период заболевания Apple синдромом NIH (Not Invented Here - изобретено не здесь), компания занималась разработкой своих стандартов (например, ADB - Apple Desktop Bus, интерфейс, по которому подключались клавиатура, мышь и другие устройства к Маку), и ее компьютеры серьезно отличались от PC аппаратной начинкой. Сейчас же фактически это только процессор, все остальные технологии, использованные при создании компьютера Apple, также применяются в мире PC - USB, PCI, AGP, SDRAM/DDR RAM, VGA, 802.11b. То есть заменив процессор, Apple выпустит компьютер, внутренне очень похожий на миллионы PC - как брэндовые, так и безымянные. Даже если Apple попытается защитить свои ПК каким-либо внутренним чипом ROM и установить Mac OS X без его наличия будет нельзя, то рано или поздно защиту сломают и такая возможность появится. В этом случае Apple просто начнет терять деньги, пока не откажется от выпуска своих компьютеров и не перейдет к варианту # 1.

Достаточно вспомнить опыт Apple, когда сторонние производители (IBM, Motorola, Umax и другие) могли лицензировать Mac OS и создавать свои клоны систем, которые зачастую были дешевле, но и ниже качеством, чем оригинал. Они скорее не расширяли рынок, как задумывалось, а просто отнимали его у Макинтошей. В 1998 г., после нескольких лет эксперимента, Apple отказалась от этой практики.

Лично мне второй вариант кажется менее вероятным, чем первый.

И вот почему. Сразу после интеграции OpenStep и Mac OS Apple распространяла среди разработчиков программного обеспечения первые опытные версии своей операционной системы под кодовым названием Rhapsody. По сути, это была OpenStep с модифицированным под Макинтош графическим интерфейсом и модулем совместимости с ПО для предыдущей OS (кодовое название модуля - Blue Box). Так вот, Rhapsody существовала как для процессоров PowerPC, так и Intel. Уже тогда многие ожидали, что вот-вот будет выпущена Mac OS X для процессоров x86. Но как разворачивались события дальше, мы знаем… С того времени слухи о подобном шаге Apple не затихают - перед каждой выставкой MacWorld они активизируются, перерастая в жесткие столкновения на форумах и в новостных группах. Последний раз это произошло в сентябре прошлого года, когда известное издание eWeek распространило информацию о том, что якобы над проектом по переносу Mac OS X на архитектуру х86 в Apple трудятся несколько десятков человек, и даже сообщило о кодовом имени проекта - Marklar.

Если такие работы ведутся (а дыма без огня не бывает), то, вероятнее всего, Apple просто готовит запасной вариант "на всякий случай".

На вопрос: "Какой вариант изберет Apple" - я бы ответил, что ни один из них. Третий вариант может быть очень неожиданным, и о нем мы поговорим в продолжении этой статьи в ближайшее время.

К сожалению, сотрудники Apple, с кем мне удалось пообщаться, отказывались хоть как-то прояснить ситуацию. Однако согласно информации, которой я располагаю, в последние полтора месяца занятость программистов в Apple, работающих над операционной системой, серьезно увеличилась, поэтому можно сделать вывод о подготовке чего-то нового и большого. Что это будет - Mac OS X 10.3 для PowerPC G4 или же Mac OS X, скажем, для AMD Opteron - покажет будущее, к счастью, уже недалекое.

 


Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=5870