Сучасна ОС від Apple, знову
Проект Copland провалився, з шумом і тріском, ледь не поховавши під собою Apple. Це приклад того, як не можна управляти проектами. Про суть проекту, при цьому, не розповідають. Даремно: це була б одна з найкращих операційних систем у світі. Якби не...
Є кілька варіантів відповіді на саме яблучне питання з усіх питань у світі, «хто винен», у випадку з Copland. Найпопулярніший - менеджери середньої ланки компанії, які, як польові командири незалежних один від одного банд-формувань, влилися (самовільно!) в проект зі своїми «хотілками», і перетворили проект в балаган.
Є й інші варіанти, але ви вже зрозуміли: компанії, в яких на менеджерів середньої ланки немає управи, довго не живуть. І винні в цьому зовсім не польові командири. І навіть не менеджери більш високої ланки.
Менеджер найвищої ланки, Гіл Амеліо, спробувавши з'ясувати як йдуть справи в «найважливішому проекті компанії», довго і марно намагався зрозуміти суть того, що відбувається, і звернувся до «допомоги друга» - запросив у компанію людину, яка краще його розуміла в розробці програмного забезпечення і якій вірив.
Доручив провести проект в порядок, дав повноваження, і... Отримав результат. Швидкий і радикальний.
Проект і справді був найважливішим. Якби хтось зумів відсікти від нього зайве, сконцентрував команду на ключових напрямках і вичистив вже зроблене від багів, нехай це потребувало б часу і призвело б до перенесення термінів - проект можна було врятувати і він коштував цього.
Задум
Взагалі-то, задумом це назвати складно. Компанія, яка вже створила кілька «сучасних ОС», і або поділила їх з «друзями», або придушила сама, коли прийшов час «сучасних» систем опинилася з порожніми руками.
Таку систему потрібно було створювати заново. В архівах компанії зберігалися вихідці і документація десятків незакінчених проектів, в компанії все ще працювали деякі з інженерів, які цими системами займалися. Формулювання задуму можна було скоротити до чотирьох слів: «зробіть це ще раз».
У 1994 році, на одній з нарад (імовірно, присвяченій затвердженню LC 580 і виходить одночасно з нею System 7.5), Шпіндлер раптом помітив, що системі вже десять років, і що вона безнадійно застаріла.
Класична Масовська система і справді з'явилася на світ на початку 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 року.
Продовження слід