Проект Копленд. История Крупнейшего Провала Apple



Проект Копленд. История крупнейшего провала Apple

В первой половине 90-х годов произошел очевидный прорыв в эволюции операционных систем для персональных компьютеров.

Microsoft уже разрабатывает новейшую версию Windows 95 взамен устаревшей Windows 3.11, IBM продвигает OS/2 Warp 3, которая отличалась высокой надежностью и имела довольно большой набор прикладных программ.

На этом фоне Mac OS 7, вышедшая в 1991 году, уже выглядела несколько архаично.

Apple решила переписать операционную систему с нуля, создав современную, гибкую и мощную платформу на замену System 7, способную на равных конкурировать с новейшими разработками Microsoft. Проект получил название Copland. В начале 2000-х годов компания Apple разработала проект операционной системы под кодовым названием Taligent, который разрабатывался совместно с IBM. В основу этого альянса легло желание руководства корпорации вывести Apple в разряд крупных, а не нишевых игроков отрасли.

Планировалось, что Taligent будет передана по лицензии другим разработчикам компьютерного оборудования и, таким образом, выйдет за рамки линейки Macintosh, встав на путь, по которому уверенно шла Microsoft. Еще в марте 1988 года технические менеджеры среднего звена Apple провели выездное совещание, на котором организовали своего рода мозговой штурм.

Они записывали на синих бумажных карточках идеи, которые можно было реализовать быстро и с относительно небольшими затратами; сложные и долгосрочные идеи, такие как полноценная вытесняющая многозадачность, на розовых.

Большинство «голубых» (в хорошем смысле) идей нашли свою реализацию в System 7, но Taligent оказался «розовым» проектом.

К 1994 году Apple создала первый прототип Taligent на основе модифицированной System 7, но он был бесконечно далек от первоначальной идеи.

«Линия партии» постоянно колебалась: то ядро системы собирались написать с нуля, то вдруг было принято решение портировать устаревшую Систему 7 на платформу x86 — эта идея дошла даже до стадии внутрикорпоративного прототипа.

до того, как оно было признано несостоятельным.

В результате Apple потеряла интерес к этой разработке и 19 декабря 1995 года официально вышла из проекта.

Корпорация IBM какое-то время пыталась разработать ОС самостоятельно, но вскоре отказалась от этой идеи, окончательно похоронив идею.

Некоторые программисты, работавшие над Taligent, покинули Apple, а некоторые перешли в другие команды.

Проект новой ОС для Macintosh был нужен Apple как воздух: System 7 заметно уступала конкурентам по функциональности и фактически исчерпала ресурсы для дальнейшего развития, а с выходом Windows 95 Apple рисковала потерять свои позиции в мире.

Рынок персональных компьютеров.

На заре Системы 7 персональные компьютеры были однопользовательскими, однозадачными, не имели доступа к сети, а данные хранились и передавались преимущественно на дискетах.

Псевдомногозадачность была реализована путем приостановки одного приложения и временной передачи управления другому с последующим возобновлением работы основной программы.

Отвечает за диспетчеризацию активности приложений MultiFinder: пользователь мог передать управление активной программе, щелкнув по ее окну, все остальные приложения, работающие в фоновом режиме, получали ресурсы лишь на короткое время в периоды простоя активного процесса.

Щелчок по другому окну передал управление соответствующему приложению.



Проект Копленд. История крупнейшего провала Apple

Все это наследие переходило из версии в версию и усложняло эволюцию Mac OS. Например, в Системе 7 отсутствовала поддержка MMU, обеспечивающего управление доступом к памяти по запросу процессора.

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

В Mac OS 7 операционная система и прикладные программы разделяли всю память, а контроль доступа осуществлялся через API. Первоначально разработанная для гибких дисков, файловая система System 7 была неэффективной и медленной для работы на быстро растущих жестких дисках, а подсистема 2D-графики QuickDraw, интегрированная в Mac OS, не позволяла полномасштабную многозадачность для оконных приложений.

Разработанный для однозадачных ПК, QuickDraw разделял память с процессом приложения: в этой области памяти хранились данные о текущем состоянии элементов интерфейса запущенной программы, например расположение окна.

В результате любая попытка приложения записать неправильные данные в эту общую область приведет к сбою QuickDraw, что приведет к сбою всех других запущенных программ с графическим интерфейсом.

Сбой в QuickDraw, в свою очередь, инициировал перезапись данных в приложении и вызвал его сбой с ошибкой.

Эту особенность System 7 считали неизлечимой, поскольку ее причина была заложена в архитектуре устаревшего графического интерфейса.

К трудностям в реализации многозадачности добавлялся тот факт, что для полноценной работы System 7 требовался 1 МБ оперативной памяти, тогда как у большинства персональных компьютеров того времени было максимум 2. Добавление в Mac OS все новых и новых «наворотов» 7 грозила дальнейшим увеличением требований к аппаратным ресурсам, и в первую очередь к объёму оперативной памяти.

В последующих поколениях ОС многозадачность планировалось реализовать за счет внедрения подсистемы QuickDraw GX, которая позволяла запускать существующие приложения QuickDraw в многозадачной среде и предлагала расширенный функционал разработчикам новых программ.

В общем, после того, как корабль под названием «Талигент» разбился о рифы, в 1994 году у Apple осталась устаревшая, медленная, неэффективная и ненадежная ОС для Макинтош, включавшая в себя невероятное количество дополнительных модулей, костылей и патчей, изрядно мешавших работать.

друг друга .

В прессе часто выражались сомнения в том, что Купертино вообще способен создать эффективную и быструю платформу для своих компьютеров.

Иными словами, Apple нужна была современная многозадачная операционная система с удобным графическим интерфейсом, достойной производительностью и поддержкой множества полезных пользовательских программ — графических и текстовых редакторов, верстки, работы с мультимедиа, приложений для обмена электронной почтой и серфинга в Интернете.

И все это – в кратчайшие сроки.

Планы Apple относительно перспективной операционной системы были поистине амбициозными.



Проект Копленд. История крупнейшего провала Apple

Было решено провести работы в два этапа.

На первом планировалось реализовать взаимодействие с защищенной памятью и внести ряд других косметических исправлений в архитектуру ОС, поскольку полная замена проблемной библиотеки QuickDraw была слишком ресурсоемкой и требовала пересмотра всей архитектуры системы.

Эта модифицированная версия получила серийный номер Mac OS 7.5 и «музыкальное» имя «Моцарт».

На следующем этапе планировалось заменить семейство System 7 принципиально новой ОС, названной в честь американского композитора Аарона Копленда — «Копленд».

С его появлением должен был завершиться жизненный цикл «седьмого» семейства Mac OS. Руководителем проекта был назначен ведущий инженер Apple Дэвид Нагель.

Он решил взять в дивный новый мир все лучшее, что уже было реализовано в Mac OS 7 на тот момент, например, улучшенные версии стандартных приложений.

Новым был и многопоточный файловый менеджер Finder — в Copland пользователь имел возможность запускать сразу несколько процессов копирования и передачи файлов, а также открывать более одного окна приложения одновременно.

Было решено окончательно отказаться от поддержки процессоров Motorola 68k в пользу PowerPC. Из-за нехватки программного обеспечения для новой архитектуры, начиная с версии 7.1.2, Mac OS могла запускать приложения для процессоров Motorola в режиме эмуляции 68k — без поддержки FPU и PMMU. Тогда же в обиход вошли fatbinary — исполняемые файлы, содержащие код сразу для обеих архитектур (похожий трюк Apple использовала при переходе от PowerPC к Intel, а позже от Intel к ARM).

Для поддержки приложений Motorola 68k на машинах PowerPC в Mac OS 7 необходимо было эмулировать обработчики прерываний с помощью системных вызовов.

Все это требовало значительных ресурсов ОС.

Копленд планировал отказаться от эмулятора, что дало бы существенный прирост производительности и скорости.

Старые приложения PowerPC, написанные для Mac OS 7, должны были работать в специальной изолированной среде под названием BlueBox. Эта песочница должна была инкапсулировать среду System 7 в едином процессе и адресном пространстве работающего приложения.

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

Для новых приложений, написанных для PowerPC, в Mac OS 7.1.2 было введено наноядро, которое работало с более высоким приоритетом, чем микроядро операционной системы.

Он играл роль своего рода HAL (уровня аппаратной абстракции) и предоставлял низкоуровневые интерфейсы для обработки прерываний, исключений и управления памятью для системных служб.

Копленд должен был использовать новое микроядро NuKernel, реализующее более широкий спектр аппаратных абстракций.

При этом планировалось исключить из ядра поддержку файловых систем, сетевых интерфейсов и реализации ввода/вывода, вынеся этот функционал в отдельные модули среды.

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

Кроме того, инженеры Apple мечтали о рабочих станциях с несколькими процессорами PowerPC, поэтому новое ядро должно было поддерживать многопроцессорную архитектуру.

Для повышения производительности Копленд решил использовать большое количество разделяемых библиотек, а также очень сложную систему управления памятью, для которой с нуля был написан специальный менеджер.

Вот как выглядела архитектура Copland по замыслу ее разработчиков.



Проект Копленд. История крупнейшего провала Apple

Изначально шли разговоры о возможной совместимости Copland и Microsoft Windows, но разработчики быстро пришли к выводу, что полноценно запускать Windows-совместимые приложения на PowerPC не получится.

Для этой задачи возможностей HAL недостаточно: нужна полноценная виртуализация, а реализовать эмулятор x86 на процессорах PowerPC того времени было ох как сложно.

В результате задача упростилась: уровень аппаратной абстракции был призван как минимум облегчить портирование драйверов на Copland и обеспечить совместимость сетевых протоколов.

Это уже считалось серьезной заявкой на успех.

Важной особенностью новой операционной системы является полная поддержка Интернета «из коробки».

Уже в 1994 году инженерам Apple было очевидно, что Интернет станет важнейшей технологией в ближайшее десятилетие — электронная почта активно использовалась во всем мире, конференции Usenet оставались популярными, а количество веб-сайтов постоянно росло.

В Windows 3.11 поддержка Интернета была опцией, но в Windows 95 версии OSR1 уже был встроен браузер Microsoft Internet Explorer 2.0, а в OSR2 появился почтовый и новостной клиент Microsoft Internet Mail and News. Чтобы не отставать от главного конкурента, было решено с самого начала включить в пакет Copland приложения для работы во всемирной паутине.

Кроме того, разработчики планировали максимально упростить настройку сети и драйверов, что, учитывая ограниченные аппаратные конфигурации, на которых может работать Copland, было относительно легко реализовать.

В Windows, установленной на огромном зоопарке компьютеров с различной периферией, успешное подключение модема и настройка Интернета порой требовали изрядных повозок.

Среди других архитектурных новшеств Копленд должен был реализовать полноценный многопользовательский режим — то, чего Microsoft не удалось сделать в Windows 95, но удалось в Windows NT. Здесь разработчики продумали жесткое разграничение прав пользователей и ограничение доступа к пользовательским файлам других учетных записей, при этом в системе были общие папки, к которым могли получить доступ все зарегистрированные пользователи.

В будущем также маячила возможность организации расширенного доступа к сети с различными учетными записями.

Наконец, Копленд планировал добавить систему обновления ОС по сети, с помощью которой пользователь мог бы автоматически развертывать исправления и обновления.

Microsoft реализовала службу Windows Update как отдельный веб-сайт только в Windows 98, а полноценное автоматическое средство обновления появилось только в Vista. Что касается пользовательского интерфейса, Копленд также готовил несколько новых продуктов.

В System 7 появилась поддержка перетаскивания и цветных визуальных элементов, а если компьютер был оснащен монохромным дисплеем (или пользователь ставил соответствующий флажок в настройках), интерфейс становился черно-белым.

Copland был разработан с нуля с полноцветным графическим интерфейсом без каких-либо компромиссов.

Он был основан на визуальной теме Platinum, которая имела стильный дизайн и поддерживала стандартное разрешение экрана Copland 640x480. Псевдо3D-оформление окон, тени, объемные текстуры — все эти элементы оформления GUI впоследствии перекочевали и в другие версии Mac OS, но впервые в таком виде они были воплощены в Copland.

Проект Копленд. История крупнейшего провала Apple

Итак, в 1994 году были сформулированы цели, поставлены задачи, и работа закипела.

Уже в мае некоторые элементы Copland, включая обновленную файловую систему, были продемонстрированы на WWDC (Всемирной конференции разработчиков).

Apple пообещала представить публичную бета-версию к концу года, а релиз был запланирован на 1995 год. Однако на деле все пошло не так гладко, как планировалось.

Генеральный директор Apple Джон Скалли особо не занимался оперативным управлением компанией, сосредоточившись только на маркетинге и рекламе, в результате чего разработчики были по сути предоставлены сами себе.

Параллельно Apple разрабатывала еще одну перспективную операционную систему под кодовым названием Gershwin, которая должна была заменить Copland. Выпуск этой ОС ориентировочно планировался на 1996 год, а ее главной особенностью должна была стать вытесняющая многозадачность.

При этом Гершвин опирался на многие возможности Копленда, которые еще не были реализованы и существовали только в проекте.

Логичным результатом фактического отсутствия контроля над процессом разработки стала перебранка между инженерными отделами: программисты, работающие над Gershwin, оказывали давление на создателей Copland, требуя реализации тех или иных функций и пересмотра порядка написания модулей, а также маркетологи.

оказывать давление на обоих.

Некоторые инженеры из команды Гершвина, чувствуя бесперспективность своей работы, перешли в команду Копленда, что еще больше обострило ситуацию внутри компании и усугубило конфликты, на которые высшее руководство не обращало никакого внимания.

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

Эти «полуфабрикаты» в виде альфа-релизов раздавались редакторам компьютерных журналов и демонстрировались в телевизионных программах.

Вот запись одного из них: на 1:36 показан работающий прототип Копленда.

Новинка вызвала интерес и собрала множество положительных отзывов, ведь пользователи Mac давно ждали появления принципиально новой, современной операционной системы.

Давление со стороны маркетологов усиливалось: сроки уже были сорваны, а до финальной разработки было еще очень и очень далеко.

Видя, что проект буксует, руководство Apple начало приостанавливать другие разработки и перенаправлять программистов в команду Копленда, что, во-первых, вызвало недовольство менеджеров замороженных проектов, а во-вторых, привело к включению в процесс специалистов, которые сделали не понимают, почему они здесь и что им нужно делать.

Список функций и требований к операционной системе рос быстрее, чем разработчики могли его реализовать, а отсутствие четкого плана, технических характеристик и даже внутренней документации делало тестирование практически невозможным.



Проект Копленд. История крупнейшего провала Apple

Из-за того, что требования к ОС постоянно менялись, а процесс разработки никто толком не контролировал, стоимость проекта также бесконтрольно росла: к 1995 году она превысила первоначальный бюджет почти в три раза.

Обещанный релиз не был готов к WWDC-95, но новый генеральный директор Apple Гил Амелио посвятил новой системе целый доклад, показал несколько слайдов, а также заявил, что отныне Копленд получил новое имя — System 8. К сожалению, переименование не помогло.

Устав от бесконечной чехарды, постоянно меняющихся требований, текучести кадров, растущего давления со стороны отдела маркетинга и необходимости постоянно оправдываться перед руководством, руководитель проекта Copland Дэвид Нагель написал заявление «по собственному желанию» и ушел из Apple. На его место была назначена технологическая менеджер Эллен Хэнкок, которую специально для этой цели переманили из National Semiconductor. Но проанализировав состояние проекта, Аллен пришел к неутешительному выводу, что оно было более чем плачевным: Копленд представлял собой набор разрозненных и плохо связанных между собой модулей, собрать которые воедино было практически невозможно.

Система оказалась не просто сырой — она не работала.

Один бывший сотрудник Apple, который помог создать Copland, вспоминал:

Общее впечатление было ужасным.

Ни одна из форм ввода текста не работала: мы могли открыть диалоговое окно, но любое поле, в которое мы могли что-то ввести, оставалось пустым и мертвым.

Кроме того, ОС постоянно зависала, повреждая системные файлы на диске.

Регулярное форматирование и полная переустановка стали обычным явлением.

Усилиями Хэнкока в августе 1996 года разработчики наконец собрали «Выпуск для разработчиков 0», который был распространен среди ограниченного числа тестировщиков Apple и нескольких партнеров, но этот выпуск все еще был сломан и непригоден для использования.

Система постоянно падала без видимых причин, половина настроек не работала, а вместо большинства компонентов были заглушки.

При этом с сайта корпорации исчезли любые упоминания о возможной дате финального релиза.

Команда обеспечения качества программного обеспечения Apple пошутила, что, учитывая нынешнее количество ошибок и ошибок, Copland выйдет примерно в 2030 году.

Получив отрицательные отзывы от тестировщиков, Аллен Хэнкок подготовил руководству отчет о том, что ситуация безнадежна.

В августе 1996 года проект Копленда был окончательно закрыт; было решено постепенно внедрять все модули, созданные в процессе разработки и пригодные для дальнейшего использования, в качестве обновлений существующей платформы.

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

В качестве таковых рассматривались Sun Solaris и даже Windows NT — чтобы приобрести лицензию на использование ядра NT, Амелио начал переговоры с Биллом Гейтсом.

Но в итоге выбор пал на проект OpenStep, для которого в 1997 году Apple приобрела компанию NeXT, имевшую права на эту платформу.

Руководство Apple решило пригласить Стива Джобса, которого ранее исключили из Apple, в качестве консультанта по реализации этого масштабного проекта.

Этот шаг открыл новую, чрезвычайно успешную страницу в истории корпорации.



Проект Копленд. История крупнейшего провала Apple

В 2008 году журнал PC World включил Копленда в список крупнейших неудач в мировой истории компьютерной индустрии.

История этой операционной системы — наглядный пример того, как необдуманный подход к управлению проектом может в конечном итоге привести к его закрытию.

Кто знает: если бы Apple использовала современные стандарты разработки программного обеспечения в середине 90-х, сегодня мы увидели бы совершенно другую macOS. Но как бы там ни было, проект Копленда навсегда вошел в историю.

Пусть это будет история неудач.



Проект Копленд. История крупнейшего провала Apple

Теги: #macOS #Разработка для MacOS #История ИТ #Программное обеспечение #Читальный зал #Apple #ruvds_articles #ruvds_articles #Copland #провал

Вместе с данным постом часто просматривают: