Современная ОС от Apple, опять
Проект Copland провалился, с шумом и треском, едва не похоронив под собой Apple. Это пример того, как нельзя управлять проектами. О сути проекта, при этом, не рассказывают. Зря: это была бы одна из лучших операционных систем в мире. Если бы не...
Есть несколько вариантов ответа на самый яблочный вопрос из всех вопросов в мире, "кто виноват", в случае с Copland. Самый популярный - менеджеры среднего звена компании, которые, как полевые командиры независимых друг от друга банд-формирований, влились (самовольно!) в проект со своими "хотелками", и превратили проект в балаган.
Есть и другие варианты, но вы уже поняли: компании, в которых на менеджеров среднего звена нет управы, долго не живут. И виноваты в этом вовсе не полевые командиры. И даже не менеджеры более высокого звена.
Менеджер самого высокого звена, Гил Амелио, попытавшись выяснить как обстоят дела в "самом важном проекте компании", долго и тщетно пытался понять суть происходящего, и обратился к "помощи друга" - пригласил в компанию человека, лучше его понимавшего в разработке программного обеспечения и которому верил.
Поручил провести проект в порядок, дал полномочия, и... Получил результат. Быстрый и радикальный.
Проект и в самом деле был самым важным. Если бы кто-то сумел отсечь от него лишнее, сконцентрировал команду на ключевых направлениях и вычистил уже сделанное от багов, пусть это потребовало бы времени и привело бы к переносу сроков - проект можно было спасти и он стоил этого.
Замысел
Вообще-то, замыслом это назвать сложновато. Компания, которая уже создала несколько "современных ОС", и либо поделила их с "друзьями", либо придушила сама, когда пришло время "современных" систем оказалась с пустыми руками.
Такую систему нужно было создавать заново. В архивах компании хранились исходники и документация десятков неоконченных проектов, в компании все еще работали некоторые из инженеров, которые этими системами занимались. Формулировку замысла можно было сократить до четырех слов: "сделайте ЭТО еще раз".
В 1994 году, на одном из совещаний (предположительно, посвященным утверждению LC 580 и выходящей одновременно с ней System 7.5), Шпиндлер вдруг заметил, что системе уже десять лет, и что она безнадежно устарела.
Классическая Mac’овская система и в самом деле появилась на свет в начале 80-х, но кое в чем Михаэль Шпиндлер был не совсем прав. System 7, все-таки, радикально отличалась от системы начала 80-х - и ей было не десять лет, а всего три. Но дело не в возрасте. Эта система была первой частью стратегического плана, разработанного Жаном-Луи Гасс? в 1988 году, вторую часть которого компания успешно подарила IBM, ухнув в пустоту еще и пару сотен миллионов долларов.
Первая часть плана Гасс? (Blue) стала System 7, в 1994 ей было всего три года. Вторая часть (Pink) превратилась в Taligent. Была еще и третья часть, Red, к разработке которой даже не приступали. Не до нее было.
Говорят, что Pink, в узких кругах, пока до системы не добрались руки высших чиновников компании, уже называли System 8. Теперь, чтобы враг не догадался и не украл гениальные замыслы руководства Apple Computer, вновь замышляемые System 8 и System 9 решили замаскировать кодовыми словами.
Замысел теперь выглядел как замысел героя не слишком умного мультфильма для самых маленьких: нынешнюю, System 7.5, нарекаем кодовым именем Mozart. System 8 будет у нас Copland, а System 9 - Gershwin. В мультфильме этого было бы достаточно - среди качелей и неподвижных деревьев с чем-то похожим на листья, немедленно появилось бы что-то похожее на операционную систему. Дети бы поняли.
В 1994 году Toy Story еще не выпустили, и дети умели абстрактно думать и дорисовывать недостающее силами собственного воображения.
Техническим руководителем проекта Copland/Gershwin был назначен Вэйн Мерецки, а кто был "политруком" проекта (руководителем продукта) я не особо пытался узнать. На первом этапе (разработка технического задания) бюджет проекта был небольшим, и делалось все в обстановке полной секретности.
Техническое задание
Само ТЗ я не видел, мне про него рассказывали участники проекта, но подробности давно стерлись из памяти. Я думал, что безвозвратно - но, когда я собирал материал для этого текста, вдруг...
Кое-что стало вспоминаться, в основному второстепенные детали. Harvard Bar в Бостоне, в основании небоскреба, "Est. 1909". Оказалось, бар ив самом деле был основан в 1909, во время строительства небоскреба его интерьер перевезли на склад, а потом восстановили практически на том же самом месте. Нам их не понять.
Основой технического задания были предложения по "современной ОС", записанные еще участниками исторического мозгового штурма в 1988 году, из розового (Pink) и красного (Red) списков.
Между Copland и Gershwin было принципиальное отличие. От Copland требовали полной совместимости с программным обеспечением для классической ОС (в рамках проекта под этим понималась система на основе голубого списка, System 7), при реализации основных элементов "современной ОС". Вытесняющая многозадачность, логические пространства адресов, защита виртуальной памяти, и тому подобное.
От Gershwin поддержки классических приложений не требовали, зато в приложениях для "современной ОС" обязательно должна была появиться поддержка многопоточности, сама система должна была стать полностью объектно-ориентированной, и много-много других красивых слов... Я не понимаю, зачем заранее закладывать в план написание двух ОС, так как переделать в объектно-ориентированную систему "обычную", на мой взгляд, сложнее чем написать новую.
Но меня успокоили: почти все, придуманное для Gershwin, просто и без затей реализовали в Copland. Когда Гил Амелио, став главой Apple, задал вопрос о готовности System 9, ответ его шокировал: System 9 не занимается никто, ее не существует, но она уже не нужна.
От использования Unix отказались сразу. Начальство запретило, но никто и не собирался тащить в System 8 анархические вольности. Микроядро NuKernel, на основе спецификаций Mach 3.0, разработал Джеф Робин. К базовым функциям позаимствованным у Mach 3.0, он добавил планировщик реального времени (для оптимизации мультимедиа), а модуль IPC (коммуникаций между процессами) сделал, фактически, объектно-ориентированным.
В BeOS микроядро называлось nukernel, совпадение случайное. В 1994 году подробности устройства BeOS были неизвестны за пределами Be, Inc.
Альфа-версия микроядра была включена в DR0 (Developer Release 0), для ограниченного круга самых важных для Apple партнеров, таких как Metrowerks, IBM, Power Computing и Motorola - это не все, но список был очень коротким. Компании, где я работал, DR0 не прислали. Микроядро было совершенно сырое и отчаянно глючило. Система, посаженная на это ядро, добавляла в общую картину свои причуды. Заставить DR0 делать хоть что-то удалось только Metrowerks.
И ребятам на Apple. Нулевой релиз для разработчиков. Народ ждал DR1, который обещали раздать всем разработчикам...
В NuKernel не было поддержки SMP (то есть, ядро не поддерживало многопроцессорные конфигурации), и вроде бы, про этот аспект вообще не подумали.
Ядро требовало жесткой отладки и доработок. Но это естественная ситуация.
Джеф Робин не был уволен из Apple ни в 1996, после закрытия проекта Copland, ни в 1997, когда компании пришлось закрыть почти все проекты, уменьшив их число в двадцать раз и сократить треть персонала - и известен как один из основных разработчиков iTunes и iPod.
Для запуска программ для "семерки", в составе Copland был реализован модуль BlueBox, внутри которого многозадачность была кооперативная, а падение любой из классических программ приводило к перезапуску BlueBox. Или, судя по DR0, должно было вести себя именно так.
Конструктивная фаза проекта продолжалась до мая 1995 года.
Продолжение следует