Замена коней, на переправе

Когда AT&T закрыла (навсегда) бизнес по разработке и производству компьютеров, у Be был почти готовый компьютер на процессорах от AT&T, и чуть больше чем полгода до “окончательного расчета” с кредиторами, которые больше не хотели ждать. Даже в куда более благоприятных ситуациях принято сдаваться.

Замена коней, на переправе. Фото.

Глагол “to be” (быть), в разных контекстах, можно перевести по разному. Например, “be!” переводится как “будь!”. Be, Inc решила не сдаваться. Шансов не было, но… всегда есть хотя бы маленький, но шанс. Это был самый-самый последний.

На Apple в таких случаях водружали над офисом пиратский флаг, и развешивали плакаты “Пленных не берем!”, на Be засучили рукава. Жану-Луи удалось перенести окончательный срок на “после Agenda’95”. После ежегодной конференции в Скотсдейле, Аризона, где собирались предприниматели и журналисты “мейнстрима”, худшая из всех возможных аудитория для Be – затею Жана-Луи и его команды здесь даже не ненавидели, здесь её презирали и высмеивали.

Но выбора не было.

Продолжение. Начало, предыдущие части здесь, здесь, здесь и здесь.

Выбор процессора

В свое время Жан-Луи поставил на хоббиты. Стив Сакоман и Боб Херолд были одними из немногих специалистов, умевших извлекать из “недомерков” (процессоры от AT&T были в два раза короче аналогов от других производителей) достойную производительность.

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

Теперь хоббиты были в прошлом. Три десятка Be Machine, на пяти процессорах от AT&T (2 CPU и 3 DSP), работали с утра до ночи на столах сотрудников. Чем заменить хоббитов?

Вариантов было только два, PowerPC или Intel.

Выбирать пришлось в состоянии стресса, и свидетели того, как это было, рассказывают о процессе принятия решения по разному. Привожу версию Жана-Луи Гассé. Окончательное решение принимал он, и за его правильность он отвечал чуть ли не своей жизнью.

По его словам, свою роль сыграл и вопрос цены. Один хоббит, CPU или DSP, обходился Be в 35 долларов. AT&T гарантировала снижение цен при увеличении их тиражей. Intel 386 и 486 стоили от 300 до 400 долларов за экземпляр, а ожидаемые объёмы выпуска BeBox’ов были недостаточными для получения скидок. PowerPC 603 были раза в три дешевле.

Но не цена была главной причиной. Если бы, по результатам исследования, 386/486 были признаны лучшими, использовали бы их.

У PowerPC были два преимущества, очень важных для Be. Ими были огромная “сырая” производительность RISC-процессоров, и эту мощь не требовалось разбавлять эмуляцией программного обеспечения, написанного для устаревших архитектур; и способность PPC, без дополнительного аппаратного обеспечения, эффективно выполнять параллельные вычисления. Отпадала необходимость в DSP-процессорах.

Кроме того, консорциум Apple, IBM и Motorola, своей солидностью и обеспеченностью, внушал уверенность в том, что PowerPC внезапно не уйдут из жизни, в неподходящий для этого момент. Впрочем, как и Intel.

Выбор процессора был нелегким процессом, было все – и анализ “за” и “против”, споры и эмоции. Intel’лигенты были в меньшинстве, но приводимые ими доводы были разумными и убедительными. Забавно: ни один из оставивших воспоминания не признался в поддержке Intel, а ведь таких было человек десять…

7-процессорная Be Machine

Замена коней, на переправе. 7-процессорная Be Machine. Фото.

В документации PowerPC 603 сообщалось, что процессор не предназначен для работы в многопроцессорных конфигурациях. А производство PowerPC 604, мощного варианта PPC, еще не началось и откладывалось. Если бы Be, Inc была преуспевающей и известной в долине компанией, ей бы “отсыпали” с десяток досерийных экземпляров, и возможно, за это даже не взяли бы ни цента.

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

В PowerPC 604 проблема некогерентности была решена основательно и на уровне железа, но Жан-Луи не смог раздобыть даже прототип. 5-летние стартапы считались в индустрии “шаромыжниками”, таких было немало – и почти все из них бесследно сгинули.

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

Двухмоторный аппарат на PPC 603, невозможный в природе, заработал. Уверенно и почти бесперебойно. Проблема была не последней, но про некогерентность можно было забыть.

Глен Адлер, инженер по аппаратному обеспечению хорошо знакомый с PowerPC, создал черновой вариант этого аппарата за две недели, работая по 20 часов в сутки. Так нельзя, но иначе не получалось.

DualPPC 603 BeBox, как официально назвали эту модель (позже), появилась на свет в виде обычной печатной платы, подключаемой к экспериментальной Be-1. Теперь это был семи-процессорный компьютер (2 хоббита, 3 DSP от AT&T и 2 PowerPC 603). Правда, хоббиты и DSP почти не использовались, при запуске в процесс включались, по очереди, оба PPC. Теперь они, а не хоббиты, были CPU 0 (который стартовал первым и собирал данные для запуска системы) и CPU 1 (подключавшийся на втором этапе загрузки).

У Be было собственное программное обеспечение для контроля версий и отслеживания багов, разработанное талантливым программистом китайского происхождения Мин Лоу. Теперь ему предстояло добавить в компиляторы C и C++ от AT&T возможность генерации кода для PowerPC.

Замена коней, на переправе. 7-процессорная Be Machine. Фото.

Это была следующая критическая точка в плане. Мин Лоу сделал большее: два продукта были перенесены первыми, на ним отлаживался компилятор и выявлялись проблемы (то, на что следовало обращать внимание при переносе программ, написанных еще для AT&T хоббитов). Система контроля версий и баг-треккер. И “ранняя бета” генератора кода для PowerPC.

Если ассемблеры для CISC писались с оглядкой на человека (многие писали на них, так как это был нелегкий, но благодарный, труд, даровавший невероятную вседозволенность), то машинные языки RISC-процессоров (все, которые я видел) бесчеловечны в принципе.

“Как китайская письменность для европейцев” – вроде бы, именно так скромный Мин Лоу отвечал любопытным, заглядывавшим через его плечо на экран. Он чувствовал PowerPC 603 как продолжение самого себя, чуть ли не разговаривал с ним.

Благодаря C-ориентированной природе хоббитов, практически все даже на самом низком уровне операционной системы, было написано на C, а то и на C++. Естественно, ни один из модулей, и ни одну из программ, не удавалось просто перекомпилировать. Даже в самых легких случаях перенос и последующее тестирование с отладкой занимали десятки часов. Некоторые “изделия”, потратив на них сотни часов, просто переписали с нуля.

Перенос программного обеспечения из одной платформы в другую, называется porting. И это очень точное название: хорошее дело “портингом” не назовут. Код от этого портится, всегда и без вариантов. Это как перевод поэзии на другой язык.

Отладка и оптимизация, по 24 часа в сутки – это хуже чем ад. В течении почти года. Они успели.

Выступление перед враждебной аудиторией

Команда Be прибыла в Скотсдейл, Аризона, за четыре дня до “представления”, прихватив с собой все, что могло понадобиться. Как им казалось. Они ошибались.

Многократно проверенная и отлично работавшая в Калифорнии техника, вдруг, перестала даже запускаться. В Аризону полетели специалисты, в номере отеля развернули филиал Be, Inc – Жан-Луи смотрел на эту круговерть отстраненно и равнодушно. Приплыли…

До конца устранить все проблемы не удалось.

Перед “людоедами” выступал Жан-Луи, второй в мире презентатор (первым был Стив Джобс). Это было его лучшее выступление. Смешки и невнятный гул в зале смолкли, его слушали в абсолютной тишине – то, о чем он рассказывал, было невероятно. Но все им сказанное подтверждалось: на огромном экране, впервые в истории, жил графический пользовательский интерфейс BeOS, и он был прекрасен.

За “рычагами” технической части презентации сидел Стив Хоровитц. Проблемы были, но он делал все, чтобы в зале их не заметили. Несколько раз система “падала” в отладчик, но Стив быстро убирал с экрана непонятное зрителям. Никто не обратил на это внимания.

Им хлопали. Стоя. Аплодисменты переросли в овации. За всю многолетнюю историю Agenda, такое случилось два раза. Это был второй такой случай. С чем был связан первый я узнать не смог, и даже не пытался.

Это был триумф, тем более невероятный здесь, где эмоции были неуместны.

Великий говорун, Жан-Луи Гассé, впервые в жизни, не мог ничего сказать.

Он хотел поблагодарить аудиторию (на 90% состоявшую из ненавистников проектов вроде Be, и этой самой Be в частности) за теплый прием и за овации – но в горле застрял комок, и он молчал.

Продажи BeBox должны были начаться в 1996, до конца года всем, кто зарегистрируется в качестве разработчика программного обеспечения для новой системы, Жан-Луи пообещал продать прототип (в обычном корпусе, ручной работы), за 1 600 долларов.

Стив написал, что целую неделю после возвращения из Аризоны компания стояла “на ушах”, напился даже Мин Лоу, первый раз в жизни. А над рабочим столом Жана-Луи появилась ксерокопия чека на 4 миллиона долларов, принесенного прямо в отель перед отъездом из Скотсдейла.

А потом, вместо 30-40 желающих стать разработчиками ВООБЩЕ, и получить за 1 600 долларов то, что вот-вот будет стоить 2 500, только за первую неделю, на Be обратились три сотни человек.

Пришла беда откуда не ждали, но это уже другая история.

О ней – в продолжении.

История AppleКомпьютеры AppleСтив Джобс