Введение
Операционная система Apple Copland — операционная система, разработанная Apple для компьютеров Macintosh в период с 1994 по 1996 год, но так и не выпущенная в коммерческий релиз. Изначально планировалось выпустить её под названием System 8, а затем Mac OS 8. Copland задумывался как современный преемник устаревшей System 7 и предлагал защищённую память, вытесняющую многозадачность и ряд новых базовых функций операционной системы, сохраняя при этом совместимость с существующими приложениями для Mac. Предварительно запланированный преемник Copland, под кодовым названием Gershwin, должен был добавить более продвинутые функции, такие как многопоточность на уровне приложений. Разработка официально началась в марте 1994 года. В течение следующих нескольких лет демонстрационные версии Copland привлекали внимание прессы, знакомя пользователей Mac с концепциями операционных систем, такими как объектно-ориентированное программирование, защита от сбоев и многозадачность. В августе 1995 года Дэвид Нагель, старший вице-президент, объявил на выставке Macworld Expo о планируемом выпуске Copland в середине 1996 года. В мае следующего года Гил Амелио заявил, что Copland является приоритетным направлением для компании, с прицелом на выпуск в конце года. Однако внутри компании разработка столкнулась с проблемами из-за неэффективности персонала и управления проектом. Сроки разработки и даты выпуска для разработчиков неоднократно срывались. Эллен Хэнкок была нанята для того, чтобы направить проект в нужное русло, но быстро пришла к выводу, что его завершение невозможно. В августе 1996 года было объявлено об отмене Copland и о том, что Apple будет искать новую операционную систему за пределами компании. Среди множества вариантов был выбран NeXTSTEP, и в 1997 году Apple приобрела NeXT для его получения. В переходный период, пока NeXTSTEP портировался на Mac, Apple выпустила Mac OS 8 в 1997 году, которая была в большей степени ориентирована на существующие технологии и включала компоненты из Copland, а также Mac OS 9 в 1999 году для дальнейшего развития. Mac OS X стала операционной системой нового поколения Apple в 2001 году. Разработка Copland была названа примером разрастания функциональности. В 2008 году PC World включил Copland в список крупнейших неудач в истории информационных технологий (ИТ).
Copland is an operating system developed by Apple for Macintosh computers between 1994 and 1996 but never commercially released. It was intended to be released with the name System 8, and later, Mac OS 8. Planned as a modern successor to the aging System 7, Copland introduced protected memory, preemptive multitasking, and several new underlying operating system features, while retaining compatibility with existing Mac applications. Copland's tentatively planned successor, codenamed Gershwin, was intended to add more advanced features such as application level multithreading. Development officially began in March 1994. Over the next several years, previews of Copland garnered much press, introducing the Mac audience to operating system concepts such as object orientation, crash proofing, and multitasking. In August 1995, David Nagel, a senior vice president, announced at Macworld Expo that Copland would be released in mid 1996. The following May, Gil Amelio stated that Copland was the primary focus of the company, aiming for a late year release. Internally, however, the development effort was beset with problems due to dysfunctional corporate personnel and project management. Development milestones and developer release dates were missed repeatedly. Ellen Hancock was hired to get the project back on track, but quickly concluded it could never ship. In August 1996, it was announced that Copland was canceled and Apple would look outside the company for a new operating system. Among many choices, they selected NeXTSTEP and purchased NeXT in 1997 to obtain it. In the interim period, while NeXTSTEP was ported to the Mac, Apple released the much more legacy oriented Mac OS 8 in 1997 based upon adding components from Copland, and Mac OS 9 in 1999 to transition forward. Mac OS X became Apple's next generation operating system in 2001. The Copland development effort has been described as an example of feature creep. In 2008, PC World included Copland on a list of the biggest project failures in information technology (IT) history.
Предыдущая версия Mac OS
Доистория Copland начинается с понимания наследия Mac OS и архитектурных проблем, которые предстояло решить. Macintosh и его операционная система, выпущенные в 1984 году, изначально проектировались как система для одного пользователя и одной задачи, что значительно упростило разработку аппаратного обеспечения. Как побочный эффект этой модели однозадачности, первоначальные разработчики Mac смогли воспользоваться рядом упрощений, позволивших значительно повысить производительность, достигнув скорости даже выше, чем у гораздо более дорогой Lisa. Однако эта конструкция также создала ряд проблем для будущего расширения. Предполагая, что одновременно будет выполняться только одна программа, инженеры могли игнорировать концепцию повторного входа – способности программы (или библиотеки кода) быть остановленной в любой момент, переключенной на выполнение другой задачи, а затем вернуться к исходной. Для обеспечения повторного входа любые локальные данные и состояние должны сохраняться при вызове кода другой программой, и если повторный вход не требуется, сохранение состояния можно опустить. Например, в случае QuickDraw это означало, что система могла хранить информацию о состоянии в библиотеке, такую как текущее положение окна или стиль линии, зная, что эти параметры будут изменяться только под контролем выполняемой программы. Сделав еще один шаг вперед, инженеры разместили большую часть этого состояния внутри приложения, а не в QuickDraw, что устранило необходимость копирования этих данных между приложением и библиотекой. Программа могла вносить изменения в эти настройки в собственное внутреннее хранилище, а QuickDraw находил эти данные, просматривая известные места в приложениях. Эта концепция совместного использования памяти является существенным источником проблем и сбоев. Если приложение запишет неверные данные в эти общие области, это может привести к сбою QuickDraw и, как следствие, к сбою компьютера. Аналогично, любая проблема в QuickDraw могла привести к перезаписи данных в приложении, что также приводило к сбоям. В случае однозадачной операционной системы это не было критическим ограничением, поскольку в этом случае проблема в любой из них все равно потребовала бы перезапуска приложения или компьютера. Другой серьезной проблемой было отсутствие у ранних Mac блока управления памятью (MMU), что исключало возможность реализации нескольких фундаментальных современных функций. MMU обеспечивает защиту памяти, предотвращая случайную перезапись памяти одной программой в память другой, и предоставляет общую память, позволяющую легко обмениваться данными между библиотеками. Поскольку общей памяти не было, API был разработан таким образом, чтобы операционная система и приложение совместно использовали всю память, что позволяло QuickDraw проверять память приложения для получения настроек, таких как режим рисования линий или цвет. Эти ограничения означали, что поддержка многозадачности более чем одной программы одновременно была бы сложной без переписывания всего кода операционной системы и приложений. Однако это привело бы к неприемлемо низкой скорости работы системы на существующем оборудовании. Вместо этого в 1987 году Apple внедрила систему MultiFinder, которая, как и прежде, оставляла управление компьютером за выполняемым приложением, но позволяла быстро переключаться между приложениями, обычно простым щелчком по его окну. Программы, не находящиеся на переднем плане, периодически получали небольшие промежутки времени для выполнения, но, как и прежде, весь процесс контролировался приложениями, а не операционной системой. Поскольку операционная система и приложения совместно использовали одно адресное пространство памяти, ошибка в любом из них могла повредить всю операционную систему и привести к сбою системы. В MultiFinder любой сбой в любом месте приводил к сбою всех работающих программ. Запуск нескольких приложений потенциально увеличивал вероятность сбоя, делая систему более уязвимой. Значительно усугублял проблему механизм патчей, используемый для добавления функций в операционную систему, известный как CDEV и INIT или панели управления и расширения. Сторонние разработчики также использовали этот механизм для добавления функций, включая заставки экрана и иерархическое меню Apple. Некоторые из этих сторонних панелей управления стали почти универсальными, например, популярный пакет заставок After Dark. Поскольку не существовало стандарта для использования этих патчей, часто случалось, что несколько из них — включая собственные дополнения Apple к ОС — использовали одни и те же патчи и конфликтовали друг с другом, что приводило к еще большим сбоям.
Конструкция Копленда
Copland разрабатывался как Mac OS на базе микроядра под названием Nukernel, которое должно было выполнять основные задачи, такие как запуск приложений и управление памятью, оставляя все остальные задачи серии полуспециализированных программ, известных как серверы. Например, сетевые и файловые службы предоставлялись бы не самим ядром, а серверами, которым отправлялись бы запросы посредством межпроцессного взаимодействия. Система Copland в целом состояла из комбинации Nukernel, различных серверов и набора библиотек поддержки приложений для реализации хорошо известного классического интерфейса программирования Macintosh. Сервисы приложений предоставлялись через единую программу, официально известную как Адресное пространство кооперативных программ (Cooperative Program Address Space). Программы Mac работали бы аналогично System 7, как кооперативные задачи, использующие недетерминированные вызовы Toolbox. В худшем случае, сбой приложения в среде CPAS приводил бы к остановке всей среды. Однако это не приводило бы к сбою системы в целом, и среда Cooperative Program Address Space автоматически перезапускалась бы. Новые приложения, разработанные с учетом Copland, могли бы напрямую взаимодействовать с системными серверами и, таким образом, получать значительные преимущества в плане производительности и масштабируемости. Они также могли бы взаимодействовать с ядром для запуска отдельных приложений или потоков, которые выполнялись бы как отдельные процессы в защищенной памяти, как в большинстве современных операционных систем. Однако эти отдельные приложения не могли бы использовать недетерминированные вызовы, такие как QuickDraw, и, следовательно, не могли бы иметь пользовательского интерфейса. Apple предложила, чтобы крупные программы могли размещать свой пользовательский интерфейс в обычном приложении Macintosh, которое затем запускало бы рабочие потоки вовне. Copland полностью поддерживал PowerPC (PPC). System 7 была успешно портирована на PowerPC; большая часть системы выполнялась как код PPC, включая как функции высокого уровня, такие как большинство менеджеров инструментального ящика пользовательского интерфейса, так и функции низкого уровня, такие как управление прерываниями. В системе оставалось достаточно кода 68k для запуска в эмуляции, особенно пользовательских приложений, однако операционная система должна была отображать некоторые данные между двумя средами. В частности, каждый вызов в Mac OS требовал сопоставления между системами прерываний 68k и PPC. Удаление этих сопоставлений значительно повысило бы общую производительность системы. На WWDC 1996 года инженеры утверждали, что системные вызовы выполнялись бы на 50% быстрее. Copland также базировался на недавно определенной Common Hardware Reference Platform, или CHRP, которая стандартизировала аппаратное обеспечение Mac до такой степени, что его могли производить разные компании и на нем могли работать другие операционные системы (Solaris и AIX были двумя из многих упомянутых). Это была распространенная тенденция в то время; многие компании создавали группы для определения стандартизированных платформ, чтобы предложить альтернативу платформе "Wintel", которая быстро становилась доминирующей — примерами являются 88open, Advanced Computing Environment и альянс AIM. Фундаментальный эффект второй системы, который осложнял разработку и внедрение Copland, заключался в том, чтобы уместить все эти функции в обычный Mac. System 7.5 уже занимала около 2,5 МБ оперативной памяти, что составляло значительную часть общей оперативной памяти на большинстве машин того времени. Copland являлся гибридом двух систем, поскольку его собственная основа также размещала Blue Box с полной копией System 7.5. Таким образом, Copland использовал систему управления памятью, вдохновленную Mach, и в значительной степени полагался на общие библиотеки, стремясь быть примерно на 50% больше, чем 7.5.
Розовый и синий
В марте 1988 года технические менеджеры среднего звена в Apple провели выездное совещание для планирования будущего развития Mac OS. Идеи записывались на карточки-заметки; функции, которые казались достаточно простыми для реализации в краткосрочной перспективе (например, добавление цвета в пользовательский интерфейс), записывались на синих карточках; долгосрочные цели, такие как вытесняющая многозадачность, – на розовых; а перспективные идеи, такие как объектно-ориентированная файловая система, – на красных. Разработка идей, записанных на синих и розовых карточках, должна была идти параллельно, и поначалу эти два проекта назывались просто «синим» и «розовым». Apple планировала, чтобы команда «синих» (которая впоследствии стала называть себя «Голубыми злодеями» по мотивам персонажей из фильма «Жёлтая подводная лодка») выпустила обновлённую версию существующей операционной системы Macintosh в период с 1990 по 1991 год, а команда «розовых» – совершенно новую ОС примерно в 1993 году. Команда «синих» представила то, что стало известно как System 7, 13 мая 1991 года, но команда «розовых» столкнулась с эффектом «второй системы», и дата выпуска продолжала отодвигаться в неопределённое будущее. Часть причин этого была связана с проблемами, которые впоследствии стали широко распространены в Apple: по мере задержки проекта «розовый» его инженеры переходили в команду «синих». Это приводило к постоянной нехватке кадров в команде «розовых» и проблемам, связанным с высокой текучестью персонала. Руководство игнорировало подобные технические проблемы, что приводило к постоянным трудностям с выпуском работоспособных продуктов. В то же время недавно выпущенный NeXTSTEP вызывал огромный интерес в среде разработчиков. Функции, изначально входившие в проект «красный», были включены в «розовый», а проект «красный» (также известный как «Raptor») был в конечном итоге отменён. Эта проблема была типичной для Apple в тот период: в погоне за «следующей большой вещью» менеджеры среднего звена добавляли новые функции в свои проекты без должного контроля, что приводило к серьёзному разрастанию функциональности. В случае с «розовым» разработка в конечном итоге замедлилась настолько, что проект казался обречённым.
Талигент
12 апреля 1991 года генеральный директор Apple Джон Скалли продемонстрировал Pink в секрете делегации IBM, используя IBM PS/2 Model 70. Хотя система была не полностью работоспособна, она напоминала System 7, работающую на ПК. IBM проявила огромный интерес, и в течение следующих нескольких месяцев компании сформировали альянс для дальнейшей разработки системы. Эти усилия стали публичными в начале 1992 года под новым названием "Taligent". Тогда Скалли выразил свои опасения относительно способности Apple самостоятельно выпустить Pink, сказав: "Мы хотим быть ключевым игроком в компьютерной индустрии, а не занимать нишевую позицию. Единственный способ этого добиться – сотрудничать с другим крупным игроком". В новой совместной компании разгорелись ожесточенные споры, и проблемы с Pink внутри Apple вскоре показались незначительными по сравнению с ними. Сотрудники Apple изготовили футболки с графическим изображением, предсказывающим, что проект станет исключительно IBM-овским. 19 декабря 1995 года Apple официально вышла из проекта. IBM продолжила работу над Taligent самостоятельно и в конечном итоге выпустила свои инструменты разработки приложений под новым названием "CommonPoint". Проект не вызвал особого интереса и вскоре исчез из каталогов IBM.
Дела по-прежнему.
В то время как работа над Taligent продолжалась, структура оригинальной ОС практически не изменялась. В этот период было запущено несколько новых проектов, таких как проект "Star Trek" – портирование System 7 и основных приложений на платформу Intel x86, который достиг стадии внутренней демонстрации. Однако, поскольку Taligent оставался приоритетной задачей, новым проектам операционных систем было сложно набрать обороты. Вместо этого команда Blue в Apple продолжала добавлять новые функции в ту же базовую ОС. В начале 1990-х годов Apple выпустила ряд крупных обновлений для системы, включая QuickDraw GX, Open Transport, OpenDoc, PowerTalk и многие другие. Большинство из них по размеру превосходили оригинальную операционную систему. Проблемы со стабильностью, существовавшие даже при небольших исправлениях, усугублялись с ростом размера и требований этих обновлений, и к середине 1990-х годов Mac приобрел репутацию нестабильной системы, склонной к частым сбоям. Когда стабильность операционной системы начала рушиться, стандартным ответом было то, что Taligent решит эту проблему благодаря своей современной архитектуре, включающей полную повторную входимость, вытесняющую многозадачность и защиту памяти. После провала проекта Taligent у Apple осталась устаревшая ОС и не было готовых решений. К 1994 году ажиотаж в прессе вокруг предстоящего релиза Windows 95 достиг пика, часто ставя под сомнение способность Apple ответить на этот вызов. Пресса настроилась критически по отношению к компании, представляя новые проекты Apple как обреченные на провал.
Еще одна попытка .
Учитывая это давление, крах Taligent, растущие проблемы с существующей операционной системой и выпуск System 7.5 в конце 1994 года, руководство Apple решило, что десятилетняя операционная система исчерпала свой ресурс. Требовалась новая система, свободной от этих проблем, и как можно скорее. Поскольку переписывать существующую систему было бы слишком сложно, Apple разработала двухэтапный подход к решению этой задачи. На первом этапе существующая система должна была быть перенесена на новую операционную систему на основе ядра с встроенной поддержкой многозадачности и защищенной памяти. Переписывание существующих библиотек, таких как QuickDraw, заняло бы слишком много времени, и они не были бы преобразованы для повторного использования. Вместо этого, одна паравиртуализированная машина, Blue Box, помещает приложения и устаревший код, такой как QuickDraw, в единый блок памяти, чтобы они продолжали работать как и прежде. Blue Box работает в отдельном адресном пространстве Copland, поэтому сбой устаревших приложений или расширений внутри Blue Box не приведет к сбою всей системы. На следующем этапе плана, после установки нового ядра и выпуска этой базовой модернизации, разработка перейдет к переписыванию старых библиотек в новые формы, которые смогут работать непосредственно на новом ядре. В этот момент приложения получат некоторые дополнительные современные возможности. В соответствии с музыкальной схемой присвоения кодовых имен, где System 7.5 носит кодовое имя "Моцарт", предполагаемый преемник был назван "Copland" в честь композитора Аарона Копланда. В свою очередь, предлагаемая система-преемник, Gershwin, должна была завершить процесс переноса всей системы на современную платформу, но работа над Gershwin так и не началась официально.
Разработка
Проект Copland был впервые объявлен Дэвидом Нагелем в мае 1994 года. В течение года Apple выпустила несколько макетов для различных журналов, демонстрирующих, как будет выглядеть новая система, и постоянно заявляла о полной приверженности компании этому проекту. Однако к концу года ни одного дистрибутива для разработчиков выпущено не было. Как и в случае с разработкой Pink, разработчики внутри Apple вскоре начали отказываться от собственных проектов, чтобы работать над новой системой. Руководители среднего звена и лидеры проектов сопротивлялись, утверждая, что их проект жизненно важен для успеха системы, и переносили его в процесс разработки Copland. Таким образом, его нельзя было отменить, а сотрудники не могли быть переведены на работу над другими частями Copland. Этот процесс набрал обороты в течение следующего года. Как заявил Джеффри Тартер, издатель отраслевого бюллетеня Softletter: «Каждый раз, когда они видели что-то интересное, это должно было быть включено в ОС». «По всей Apple были небольшие группы, занимавшиеся увлекательными вещами, не имеющими никакого отношения к продуктовой линейке Apple». В результате образовался порочный круг: по мере добавления новых функций сроки сдвигались, и Apple была вынуждена обещать еще больше функций, чтобы оправдать дорогостоящие задержки. Более того, эта сизифовская модель сохранялась в то время, когда компании едва удавалось избежать ошибок. Один из руководителей отрасли отметил: «Задача состоит в том, чтобы сократить функциональность до трех-четырех наиболее привлекательных возможностей, а не предлагать сотни второстепенных. Я не уверен, что это происходит». По мере роста «пакета» тестирование становилось все более сложным, и инженеры уже в 1995 году комментировали, что объявленная Apple дата выпуска в 1996 году была нереалистичной: «Нет никаких шансов, что Copland выйдет в следующем году. Я просто надеюсь, что он выйдет в 1997 году». В середине 1996 года появилась утечка информации о том, что Copland сможет запускать приложения, написанные для других операционных систем, включая Windows NT. Эта функция, якобы подтвержденная инженерами Copland, но решительно опровергнутая руководством проекта, находилась в разработке более трех лет. Один из пользователей утверждал, что члены команды разработчиков Copland рассказали ему об этих планах. Некоторые аналитики прогнозировали, что эта возможность увеличит проникновение Apple на корпоративный рынок, другие же заявили, что это «конец игры» и лишь признак неактуальности платформы Mac.
Выпуск разработчиков
На WWDC 1996 года новый генеральный директор Apple, Гил Амелио, использовал ключевую речь, чтобы говорить почти исключительно о Copland, теперь известном как Система 8. Он неоднократно заявлял, что это единственный приоритет разработки Apple и что она будет выпущена для разработчиков через несколько месяцев, а полный релиз запланирован на конец 1996 года. На конференции было показано очень мало работающих демонстраций системы. Вместо этого были продемонстрированы различные компоненты технологии и пользовательского интерфейса, которые должны были войти в состав пакета (например, новый диалог управления файлами). Мало что из основной технологии системы было продемонстрировано, а новая файловая система, показанная годом ранее, отсутствовала. Единственным способом опробовать новую операционную систему было записаться на время в лабораториях для разработчиков. Это не принесло успеха:
Несколько участников выставки пожаловались на недостаточную сложность микроядра, в частности, на отсутствие симметричной многопроцессорности – функции, которую было бы чрезвычайно сложно добавить в систему, выпуск которой планировался через несколько месяцев. После этого Амелио вернулся на сцену и объявил о добавлении этой функции в список запланированных. В августе 1996 года "Developer Release 0" была отправлена небольшому числу отобранных партнеров. В надежде исправить ситуацию, Амелио переманил Эллен Хэнкок из National Semiconductor, чтобы она возглавила инженерный отдел вместо Айка Насси и вернула разработку Copland в нужное русло. Через несколько месяцев работы Хэнкок пришла к выводу, что ситуация безнадежна; учитывая текущий ход разработки и инженерные возможности, она считала, что Copland никогда не будет выпущен. Вместо этого она предложила выпускать различные технологии, ориентированные на пользователя, в Copland серией поэтапных релизов, а не одним крупным релизом. Чтобы решить проблему устаревшей инфраструктуры, лежащей в основе этих технологий, Амелио предложил рассмотреть возможность поиска новой операционной системы вне компании. В качестве кандидатов рассматривались Solaris от Sun и Windows NT. По сообщениям, Хэнкок склонялась к Solaris, в то время как Амелио предпочитал Windows. Амелио даже позвонил Биллу Гейтсу, чтобы обсудить эту идею, и Гейтс пообещал выделить инженеров Microsoft для портирования QuickDraw на NT. Apple официально отменила Copland в августе 1996 года. Конверты для CD-дисков с версией для разработчиков были напечатаны, но сами диски еще не были отмастерены. После продолжительных переговоров с Be и слухов о слиянии с Sun Microsystems многие были удивлены объявлением Apple в декабре 1996 года о покупке NeXT и привлечении Стива Джобса в качестве советника. Амелио пошутил, что они "выбрали план А вместо плана Б". Проект по портированию NeXTSTEP на платформу Macintosh получил название Rhapsody и должен был стать основой кроссплатформенной операционной системы Apple. Он унаследовал существующую поддержку OpenStep для архитектур PowerPC, Intel x86 и DEC Alpha CPU, а также реализацию библиотек OpenStep, работающих на Windows NT. Это фактически открыло бы рынок приложений для Windows для разработчиков Macintosh, поскольку они могли бы лицензировать библиотеку у Apple для распространения вместе со своим продуктом или полагаться на существующую установку.
Наследие
В соответствии с планом Хэнкока, разработка продолжалась, и System 7.5 получила интеграцию нескольких элементов Copland. System 7 была переименована в Mac OS 7 с выпуском версии 7.6, в которой были улучшены стабильность и производительность. Многие функции Copland, включая новый многопоточный Finder и поддержку тем (по умолчанию Platinum), были интегрированы в невыпущенную бета-версию Mac OS 7.7, которая вместо этого была переименована и выпущена как Mac OS 8. С возвращением Джобса, этот ребрендинг в версию 8 также позволил Apple воспользоваться юридической лазейкой, чтобы прекратить лицензии сторонних производителей на System 7 и фактически закрыть рынок клонов Macintosh. Позже Mac OS 8.1 наконец добавила новую файловую систему, а Mac OS 8.6 обновила наноядро для обеспечения ограниченной поддержки вытесняющей многозадачности. Её интерфейс – Multiprocessing Services 2.x и более поздние версии, однако разделение процессов отсутствует, и система по-прежнему использует кооперативную многозадачность между процессами. Даже процесс, поддерживающий Multiprocessing Services, всё ещё имеет часть, работающую в Blue Box – задаче, которая также запускает все однопоточные программы и является единственной задачей, способной выполнять 68k-код. Проект Rhapsody был отменён после нескольких релизов Developer Preview, поддержка работы на платформах, отличных от Macintosh, была прекращена, и в конечном итоге он был выпущен как Mac OS X Server 1.0. В 2001 году эта основа была объединена с библиотекой Carbon и пользовательским интерфейсом Aqua, сформировав современный продукт Mac OS X. Версии Mac OS X до выпуска Intel Mac OS X 10.4 (Tiger) также использовали концепцию Blue Box без прав root в виде Classic для запуска приложений, написанных для более ранних версий Mac OS. Несколько функций, впервые продемонстрированных в Copland, включая расширенную команду Find, встроенный веб-браузер, пачки папок и поддержку видеоконференций, вновь появились в последующих версиях Mac OS X под названиями Spotlight, Safari, Stacks и iChat AV соответственно, хотя реализация и пользовательский интерфейс каждой функции значительно отличаются.