Расщепляем QuickTime на атомы

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

Предыдущие серии: начало и продолжение.

Одной из ключевых задач создаваемой технологии была десакрализация мультимедиа. Из чего-то возвышенно-футуристического её следовало превратить в обычный тип данных. И в еще один формат файлов, которые могли бы быть использованы в любой системе любой компьютерной платформы, “в настоящем и будущем”.

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

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

Формат файла QuickTime обеспечивает максимальную (полную) свободу для размещаемых в нем данных. Свобода данных проще чем свобода социума, поэтому её базовые принципы могут быть заложены на этапе разработки. Формат выдержал проверку временем, хотя и в него пришлось вносить изменения. Это случилось один раз за почти 30 лет существования технологии.

Мир изменился. В 1990 году никто и представить себе не мог, что когда-нибудь появятся файлы больше 4 гигабайт. Не уверен что это повод для гордости, но этот барьер мир успешно преодолел. В QTFF все чаще стали пытаться впихнуть данные объемом в 5 или 6 гигабайт. Ничего хорошего из этого не получалось, и поднялся злобный вой на весь Интернет.

В итоге, в формат QTFF и в QuickTime были внесены небольшие изменения. Совместимость обновленного формата с старым абсолютная.

Если данным станет тесно в 18,4 экзабайтах (максимум адресуемого пространства для 64-битной адресации), изменений в QTFF потребуется еще меньше. Экзабайт это миллион терабайт, 10 в 18-й степени байт. Насколько я знаю, объём крупнейших в мире банков данных уже измеряется в петабайтах (это 10 в 15-й степени байт), может быть уже в десятках петабайт. До 18 экзабайт еще очень далеко.

Подробности? Если вам они интересны, я вами горжусь.

Структура QTFF

Файл-вездеход состоит из… атомов. Разработчики формата назвали индивидуальные куски данных (chunks, говоря по-русски) атомами. Атом в QTFF может состоять или из данных, или из других атомов. В физике атомы устроены иначе, но цифровые технологии – иные миры. Законы в которых устанавливает создатель. Кроме того, атом в QTFF – всего лишь термин. По моему, удачный.

Кстати, и у создателей QTFF, и у физиков, термин “атом” противоречит смыслу слова, от которого он произошел. С древнегреческого слово “атом” переводится как “неделимый”.

У каждого типа атомов уникальный идентификатор, обозначаемый особым типом данных, который на своей родине называется OSType, а за её пределами – FOURCC.

Описанию этого типа и его истории ниже посвящен целый раздел, но если не вдаваться в детали, это двуликий Янус среди типов данных. Это одновременно и целое число без знака, размером в 32 бита, и 4-символьная мнемоника.

Вот абстрактная структура QTFF-файла (приведены мнемоники типов атомов):

Файл QTFF тоже можно считать атомом: от состоит из двух атомов, ‘moov’ и ‘mdat’. Самый важный из них – ‘moov’. Он состоит из атома-заголовка, и одной или нескольких дорожек. В дорожке могут быть представлены самые разные данные: видео, аудио, эффекты, текст, и вообще что угодно.

Пусть мнемоника ‘moov’ не введёт вас в заблуждение – это не только видео или аудио, это могут быть совершенно любые синхронизированные данные. Результаты исследования на полиграфе (подозреваемого или подопытного), результаты слежения за каким-то объектом в природе, что угодно.

Это фиксация в файле процессов с привязкой их к общей шкале времени. Представление данных в дорожке и их интерпретация – забота codec’ов. (от Code-Decode).

Естественно, ни QuickTime Player, ни другие стандартные инструменты для пользователя, об этих вариантах QTFF совершенно не в курсе. Для работы с этими узкоспециальными данными требовались немалые усилия программистов – QuickTime предоставлял только удобную структуру файла и набор API (интерфейс программиста приложений – функции, структуры данных, константы) для создания, редактирования и воспроизведения QTFF.

К сожалению, это многообещающее направление было упущено руководством Apple, и в разных областях человеческой деятельности появились свои собственные форматы и наборы API для работы с ними. Я работал с QuickTime исключительно в области его типичных приложений (аудио, видео, конверсия графических и видео форматов), но другие применения QuickTime видел – они ничем не уступают специализированным решениям. Просто об этой стороне QuickTime мало кто знал.

Дорожка (‘trak’) – атом с целой иерархией. А то, что заключено в прямоугольные скобки, может быть абсолютно любыми по сложности и структуре комбинациями атомов. Если в операционной системе, где “исполняется” пришедший извне файл, не установлен codec для работы с дорожками определенного типа, она не будет исполнена. Если непонятны все дорожки, открытие файла завершится сообщением об ошибке.

Объемов памяти уже давно достаточно для установки в систему сотен codec’ов, для самых разных вариантов медиа.

FOURCC

Забавно, но факт: об этом типе данных в сети сведений выше крыши. Только, если не знать как все было на самом деле, возникает стойкое убеждение в том, что FOURCC изобрела Microsoft. Иногда (часто), вскользь, упоминается и Apple, применяющая этот тип данных в QuickTime. Украли, наверное, у Microsoft.

Впрочем, процесс забвения пока еще не зашел слишком далеко, да и Microsoft давно уже не та. Моё сообщение об этом типе данных не единственное. В англоязычной википедии, например, этот тип данных описан вполне прилично (хоть и не так подробно, как нравится мне).

FOURCC расшифровывается как “Four Characters Code”. Используется как идентификатор для самых разных целей, в различных форматах файлов и программном обеспечении.

По своей сути это 4-байтовое число, с диапазоном значений от 0 до 4 294 967 295. Но это для компьютера. Ему проще работать с числами.

Есть у FOURCC и “человеческое” лицо. Для людей (программистов и прочих посвященных) это комбинация из 4 символов, мнемоническое обозначение типа объекта. Мнемоники для человека удобнее чисел.

Например, ‘trak’ или ‘mdat’.

FOURCC впервые появились (не говорить же про такую мелочь “изобрели”) в 1982 или 1983 на Apple, в команде разрабатывавшей Mac. На Mac’е этот тип данных называется OSType, им обозначали типы файлов, ресурсов и тому подобные объекты, многих из которых в macOS уже нет. По мнению вики, OSType появился в 1984, вместе с Mac’ом.

В 1985 году компания Electronic Arts использовала FOURCC в IFF (Interchange File Format), формате разработанном для применения на Amiga канадской компании Commodore, в качестве тэгов для обозначения типов данных.

Microsoft впервые применила этот формат в начала 90-х, в RIFF, собственной реализации Amiga IFF для процессоров от Intel. Порядок байт в Intel и Motorola отличается, little- и big-endian.

Строение атома

До внедрения в QuickTime поддержки 64-битных архитектур, атомы в QTFF были устроены только так:

Байты 0-3 размер атома плюс 4 байта размера плюс 4 байта обозначения типа;
Байты 4-7 тип атома, FOURCC;
Байты 8..n данные

Обратите внимание: даже если в атоме данные нулевой длины, значение размера будет 8, это важно для последующего изложения.

Для поддержки данных объемом более 4 гигабайт был разработан еще один формат атомов:

Байты 0-3 всегда 0x00000001;
Байты 4-7 тип атома, FOURCC;
Байты 8-15 размер атома плюс 16 байт заголовков;
Байты 16..n данные.

32-битные атомы никогда не начинаются с 0x00000001, поэтому переделывать старые файлы нет необходимости.

Кроме 0x00000001, значением первых 4 байтов может быть 0x00000000, что означает “атом занимает всю оставшуюся часть файла”. Размер атома в таких случаях не имеет значения.

Если данные, не умещающиеся в 18 экзабайт, станут реальностью, появятся атомы “поколения 0x00000002”.

В продолжении – ответ на вопрос “зачем Apple Computer понадобился QuickTime для Windows?”

Магия QuickTime – настоящая!

В мае 1991-го, в понедельник 13-го числа, Apple показала нечто. Противоречащее законам природы и невозможное впринципе. И пообещало каждому пользователю Mac’ов (а потом и не только Mac’ов) возможность лично нарушать законы. Через полгода.

Артур Кларк, за несколько лет до этого события, сказал в одном из интервью “лучшие из технологий нашего времени неотличимы от магии”. С Apple или без, цифровое видео все равно бы появилось – всё, что требовалось для этого в конце 80-х уже было, в более или менее подходящем для его создания виде, уже было. Оставалось только соединить эти разрозненные фрагменты, привести их в требуемое состояние и… всё. Это и есть магия.

Группа продвинутых технологий (ATG) Apple просто оказалась в нужном месте и в нужное время. Правильно поставить задачу – уже наполовину её решить.

Все это нисколько не умаляет совершенное командой QuickTime и Apple. Если бы, через год или через три, цифровое видео изобрела другая компания, нет никакой гарантии что её творение было бы столь же элегантно и красиво, как QuickTime. Мы совершим обзорную экскурсию по его глубинам, и я очень надеюсь суметь раскрыть красоту его внутреннего мира – но доказывать её элегантность и красоту нет необходимости.

Технология (“магия”, по Кларку), которая существует уже почти 30 лет, и, в той или иной форме, работает на 2 миллиардах персональных компьютеров и 2,5 миллиардах разных мобильных устройств, выше этого.

Секрет её долговечности прост: QuickTime сконструирован как гибкий и расширяемый интерактивный комплекс для работы с многомерными данным, где одно из измерений – время.

Технология мультимедиа – лишь одно из её приложений к реальности, самое известное и, наверное, самое важное. Его применяли спецслужбы развитых стран мира, для других целей – и не только они.

Продолжение. О мрачных годах засилия аналогового видео можно узнать здесь.

WWDC’91

WWDC’91 проходила с 13 по 17 мая 1991 года, в конференц-центре Сан Хосе. Открывал ли её Джон Скалли, неизвестно. Известно о выступлении Джона Скалла(!), одного из высших руководителей маркетингового подразделения Apple. В 1985 году Джон Скалл возглавлял маркетинговую часть “революции в издательском деле”.

Он сообщил что мультимедиа – логическое продолжение настолько-издательских систем и следующий шаг в эволюции персональных компьютеров. А кроме того, это реализация преимуществ графической системы Mac’а над IBM PC.

Джона Скалла я упомянул не только из-за схожести его имени с именем главы компании, в конце концов они даже не однофамильцы. После ухода из Apple, он стал главой компании Macromind, создателя Director – приложение для создания и редактирования цифрового видео, в наше время потомки этого приложения живут и процветают – это Adobe Flash.

Бóльшую часть представления вели ребята из команды QuickTime, их презентация не была записана на видео, или оно не сохранилось – жаль. Говорят, QuickTime появился на свет очень артистично и весело.

На этой же конференции, неофициально и в кулуарах, состоялось событие, оставившее след в истории вычислительной техники. Группа сторонних разработчиков собралась (в последний или предпоследний день конференции) в одном из свободных залов Convention Center, для выработки концепции документа универсального формата, для облегчения обмена данными между программами разных производителей. За основу было решено принять формат IFF (Interchange File Format), разработанный в 1985 году для компьютера Amiga, совместными усилиями его создателя, Commodore Business Machines и компании Electronic Arts.

Это событие стало первым в цепочке событий, которые привели к возникновению проекта OpenDoc, сыгравшего важную роль в истории, разделившего разработчиков Apple на тех, кто категорически не принимал эту технологию, и на тех кто был готов за неё на всё.

Я, скорее, отнес бы себя к первой категории, когда-нибудь напишу почему. А пока вернусь на полтора года назад, в самый конец 1989 года, когда все только начиналось, и миссия QuickTime еще считалась невыполнимой.

Начало начал

Даже если забыть о том, чем все кончилось, проект был уникален. Участникам проекта был предоставлен неограниченный доступ к разработкам и наработкам Apple, даже секретным. Кроме того, одним из требований проекта была совместимость его результатов с Windows. И включение в мультимедиа злосчастной поддержки факс-машин, это было еще одним из требований руководства, и неиссякаемым поводом для шуток.

Руководителем продукта был назначен Дуг Кэмплджон, из мультимедийной группы в маркетинговой службе компании. Он “перевел” требования руководства компании на язык технически грамотных людей, сведя их к трем основным пунктам:

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

Подумав. Дуг добавил еще одну ключевую задачу. Про факс-машины. Умный поймет, а других в группу брать не собирались.

Группа выводилась из подчинения ATG, теперь она напрямую подчинялась Джону Скалли, ей выделили свой офис, через дорогу от главного здания Apple, и назначили Брюса Лика техническим менеджером проекта. Выделили финансирование (разработка QuickTime обошлась Apple недешево), и предоставили неограниченную свободу в рамках правил внутреннего распорядка Apple Computer и законов штата Калифорния.

Неплохая пиццерия была на той же стороне Mariani Avenue.

В первых числах января 1990 года группа QuickTime официально приступила к работе.

Компрессор, тайминг и универсальный формат

Превратить видео приемлемой длительности в файл, который можно разместить на диске тогдашнего Mac’а или PC-шки, было задачей очень непростой. Если бы не доступ к тайным технологиям Apple, алгоритмы сжатия пришлось бы разрабатывать самой команде, и никто не гарантировал бы успех в этом начинании.

Принципы компрессии данных уже были опубликованы, основы этого дела преподавали в университетах, и, с точки зрения дилетанта или менеджера, разработать что-то такое “на месте” и между делом было бы “раз плюнуть”.
Времени на работу алгоритма отводилось чуть-чуть, а степень сжатия требовалась более чем недетская. В ATG были мастера этого дела, и алгоритмы, на основе которых создали симметричный компрессор данных. В первой версии QuickTime он известен как кодек “Road Pizza”. Сжимающий данные как шины тысяч автомобилей вжимают в асфальт упавший на него кусок пиццы. Делающий это настолько быстро, что пользователь даже не подозревал, какие непростые манипуляции с данными выполняет его компьютер.

Видео, исполняемое на Mac’е, теоретически, могло иметь самое разное происхождение. Например, пришелец из нашего времени мог бы снять на iPhone происходящее у пиццерии рядом с офисом QuickTime, и сбросить видео на тогдашний Mac. Десяток мегабайт, скорее всего, Mac 1990 года смог бы импортировать. За несколько часов. Или дней. Периферия была тогда очень медленной, USB и Bluetooth не поддерживались – пришлось бы нелегко.

Но с пришельцами из другого времени туговато, неизвестно даже есть ли они вообще, да и эксперимент с просмотром видео снятого iPhone’ом на Macintosh IIx я не проводил, не факт что получится.

Основным источником видео была оцифровка аналоговых источников, и размеры таких цифровых файлов запросто достигали пары сотен мегабайт. Поэтому для хранения и транспортировки видео использовались CD. Тогда они назывались CD/ROM, и только-только завоевывали популярность.

CD, к удивлению аборигенов того периода истории, по медлительности уступали только дискетам объёмом в 1,44 мегабайта (тот самый SuperDrive). Зато на диске умещалось 650 мегабайт, а производители CD давали 100-летнюю гарантию своим хрупким и бьющимся как хрусталь носителям информации. А стоили “болванки” (пустые CD), по моему, дешевле чем дискеты.

Вот на них видео и хранились. Несмотря на путаницу: в ходу, помимо огромных лазерных дисков огромного диаметра, появились обычные (по виду) CD-диски с видеопродукцией в аналоговой форме. Потребители путались, бесились от бессилия, обращались в суды всех инстанций – сам я таких дисков не видел, только слышал о них. И чем кончались суды, я не знаю, но так как и на упаковке, и на самом диске, было написано что это Video диск, и что он не работает с CD-дисководами компьютера, боюсь что ничем хорошим для заявителя.

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

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

Была написана программа с пользовательским интерфейсом для тестирования “машины точного времени” – библиотеки тайминга. Она выводила точное, по версии алгоритма, время. Её назвали “Универсальные часы”. Долгое время ничего не получалось. Времени и сил на точное время ушло немало, но с середине 1990 года все заработало как часы.

Они теперь или не выдавала ничего вообще (баги все еще были), или сообщала нереально точное время.

Файловый формат, QTFF заслуживает отдельного рассмотрения… Он стал основой для MPEG-4, о чем, по уже устаревшей привычке анти-яблочной эры, публичные источники предпочитают молчать. Или вспоминать пореже.

В продолжении – объяснение некоторых необъяснимых явлений: зачем Apple Computer понадобился QuickTime для Windows.

QuickTime и немного о WWDC’90

Через несколько лет после революции в издательском деле, в мире случилась еще одна революция. Как и в 1985, её оплатила и устроила Apple Computer. Потом были iPod, iPhone, iPad, на наших глазах рождается дополненная реальность… Куда катится мир?

Революция в издательском деле разделила мир на “до” и “после” – производство печатной продукции подешевело на пару порядков, стало доступным всем, и появились глянцевые журналы, почти или совсем без информации. И много чего еще, полезного, разумного и доброго, но уже не сосчитать скольких людей глянец отучил думать.

Революция в мультимедиа разделила мир на “до” и “после”, её побочным результатом стало аудио-визуальное поколение, предпочитающее употреблять информацию в кем-то препарированной визуальной форме, не напрягая собственную фантазию и упрощая все, что можно и нельзя.

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

В свое время Платон, не тот о котором много говорят в наши дни, а философ древности, который “нам друг, но истина дороже”, предупреждал о вреде… письменности.

В то время огромные по объему тексты сакрального и научного (были и такие) содержания заучивались наизусть. Фантастическая тренировка памяти, дисциплинирующая ум. Кроме того, знания образованного сапиенса, как шпага в ножнах, всегда находились при нем, на расстоянии мысли.

Что-то теряя в этих бескровных (почти) революциях, мы приобретаем что-то другое, и мир все еще жив. Это нормально, или мы однажды доиграемся?

Карандаш (Pencil Test)

Этот трехминутный анимационный ролик был первым шагом к созданию QuickTime. Он был создан в 1988 году в ATG (группе продвинутых технологий), на Apple. В течении нескольких лет его использовали для тестирования разрабатываемой технологии, к нему добавились и другие – но он был первым.

Создавался он вовсе не на Macintosh II, в 1988 году это было абсолютно невозможно. А на компьютерах Macintosh II. Множественное число имеет значение. Их было очень много.

Сначала создавались фреймы (кадры), их было чуть больше пяти тысяч. Каждый фрейм “весил” примерно мегабайт. Все вместе они занимали 5 гигабайт дисковой памяти. В то время самый мощные персональные компьютеры (тот же Mac II) располагали, в среднем, 2 мегабайтами оперативной памяти, и жесткими дисками в 40. Диск объемом в 160 мегабайт был пределом мечтаний.

Прорисовка каждого фрейма требовала уйму времени, но для их превращения в видео, с синхронным звуковым сопровождением, требовались немалые вычислительные усилия. В те времена для этих целей использовались специализированные рабочие станции (с Unix) стоимостью в сотни тысяч долларов. Для оцифровки видео в ATG использовалась целая “ферма” из десятков Macintosh II, и огромное хранилище памяти (размер исходных данных в 5 Гигабайт, плюс всевозможные промежуточные) – это был безумный эксперимент, как по цене, так и по потраченным на него времени и силам.

И сама затея была безумной и нереальной. Но в 1988 или 1989 году, после того как глава ATG показал ролик Джону Скалли, сопроводив его пояснениями и комментариями, мечта превратилась в проект с кодовым наименованием QuickTime.

В директиве об открытии проекта, его финансировании и праве доступа к информации о любых разработках компании(!), было и перечисление его задач: мультимедиа, видео, аудио, много чего еще и… работа с факсами.

Мультимедиа в начале времени

Термин “мультимедиа” в конце 80-х обозначал мешанину из несвязанных между собой видео, аудио и текстов. О ней очень много писали и рассуждали, но никто не понимал что это такое и зачем это вообще нужно. Модная тема для светской беседы, не более.

Дуг Кэплджон, ставший в 1990 году менеджером продукта QuickTime, пришел на Apple в начале 80-х, сразу после университета, в отдел маркетинга мультимедиа. Он занимался разработкой и продвижением видео- и аудио-картами сначала для Apple II, потом для Mac’а. Вот что понимали под мультимедиа. Забавно?

Видео в то время было аналоговым, практически все. Оно распространялось на кассетах или на видеодисках (похожих на CD-диски, только вдвое большего диаметра), на каждой стороне которых умещалось до 30 минут. На фото лазерный диск в руках Питера Хоуди. Питер был одним из основных разработчиков QuickTime, с 1990 по 1999. Справа от него Брюс Лик, руководитель команды разработчиков QuickTime с 1990 по 1992.

Цифровое уже придумали, но оно существовало где-то на далекой периферии и никого всерьез не интересовало.

Самый мультимедийный комплекс для просмотра видео того времени включал в себя Mac, телевизор и проигрыватель лазерных видео-дисков, соединенные проводами. Программа для управления комплексом была написана в HyperCard, и умела переключаться между частями видео и позволяла ориентироваться в нем.

Комплекс не был особенно быстрым: чтобы перейти из одного места на лазерном диске в другое, другое место нужно было еще найти, это занимало несколько секунд. Составление “индекса” стороны лазерного диска ускоряло поиск до почти мгновенного, но занимало 10 или 15 минут. Половину длительности просмотра. На диске можно было сохранить три или четыре индекса (для одного с половиной или двух лазерных дисков).

Но, тем не менее, это было уже ближе к теме, чем видео- и аудио-карты.

WWDC’90, Уорхол

Не обошлось и без невольного обмана. Дэн Кейси, высокопоставленный сотрудник отдела маркетинга Apple, на одной из сессий WWDC 1990 сообщил сторонним разработчикам о проекте “Уорхол”, и продемонстрировал им наработки группы продвинутых технологий.

Он попросил у сторонних разработчиков помощи. Пригласил их участвовать в проекте. В этой затее столько неразрешимых трудностей!

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

Фактически он обманул собравшихся. Проект “Уорхол” был в 1990 году уже прошлым, те кто им занимался теперь работали в отдельной группе, в здании через Mariani авеню от здания в котором располагались маркетинговый отдел компании и группа продвинутых технологий. Проект уже назывался QuickTime, и у него даже был свой флаг. Кейси просто не знал об этом.

Mariani авеню это несколько полос с очень интенсивным движением, просто так не перебежать.

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

То, что Кейси показал разработчикам, было замечательно и интересно, но в QuickTime ни единая строка кода из показанных им примеров новой технологии не вошла. Все это было использовано при создании Pencil Test, и забыто. Теперь все делалось по другому.

Творческие усилия сторонних разработчиков оказались никому не нужны. Работавшие в команде QuickTime (аврал, нервы, недосып) отнеслись к дилетантским предложениям не самым лучшим образом. Репутации Apple был нанесен реальный ущерб, но никто не был наказан. Скалли пришел к выводу, что сам виноват.

Начиная уже с WWDC’91, хорошо информированные обо всем в компании представители руководства и службы безопасности стали знакомиться с материалами сессий WWDC, на предмет избежания и предотвращения.

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

Взлет Apple в нулевые случился не сам по себе.

EduCom, осень 1990

Осенью 1990 года, в Атланте, штат Джорджия, участникам конференции EduCom было продемонстрировано первое мультимедийное приложение с использованием QuickTime, правда о самом QuickTime (еще не объявленном и секретном проекте) не было сказано ничего.

Подобные приложения называют “kiosk”, мне это название не нравится – но, насколько я понимаю, это был самый первый “kiosk” в мире.

Приложение было разработано совместно университетом Джорджии (Клейт Сандерс) и Apple Computer (Грег Гретч). Называлось оно “News Navigator”. По словам Грега, в честь ролика Джона Скалли “Knowledge Navigator”.

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

Приложение было реализовано в HyperCard, на главном экране был список заголовков новостей, с ссылками на связанные с этими новостями текст, фотографии и видео. Список новостей обновлялся в реальном времени (при наличии хорошего канала связи, например Ethernet 10 Mbit/s), видео предоставляла CNN. Видео-ролики конвертировались в формат QTFF, и сохранялись на файл-сервере.

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

Что ж, Apple – это магия. Примите к сведению…

В продолжении – раскрытие секрета магии, и объяснение некоторых необъяснимых явлений, происхождение MPEG-4 и зачем Apple Computer понадобился QuickTime для Windows.

System 7 отправляется в другие галактики

Проект назвали Star Trek. Неизвестно, что появилось раньше — лозунг “Смело идти туда, где ни одного Mac’а еще никогда не было”, позаимствованный из популярного телесериала Star Trek (с заменой слова “человек” на “Mac”) или название проекта. Это одна из самых ярких эпопей в истории Apple, завершившихся ничем.

У архитектуры IBM PC не было серьезных преимуществ перед другими платформами того времени, её коммерческий успех был результатом искренней веры масс в три волшебные буквы IBM, и не совсем чистых “политтехнологий”. Но в 1992 году об этих незначительных подробностях уже мало кто помнил.

Тем более что одна молодая и динамичная компания уже оттесняла Big Blue (прозвище IBM) от стремительно увеличивающихся финансовых потоков, заставив гиганта перейти к обороне. IBM уже сама была жертвой, еще не осознавая этого.

В 1992 году IBM PC и её клоны уже были самой массовой компьютерной платформой в мире. Настолько массовой, что сам термин PC, с некоторых пор, стал обозначать именно их.

Другие платформы персональных компьютеров в 1992 году – Commodore, Apple II, Mac, Amiga, Tandy и другие – всё еще были живы, популярны и играли важную роль, да и на самой платформе IBM PC все еще “цвели сотни тысяч цветов” (Мао, цитата приведена по памяти) нескольких операционных систем, но словом “PC” все чаще называли IBM PC с установленной на ней MS DOS.

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

Система Mac’а на архитектуре Intel, в 1985

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

IBM PC победоносно шествовала по планете, как вирус, от которого нет ни эффективной защиты, ни времени на её создание.

Реализация амбициозного прорывного проекта – это что-то вроде войны. Где не стреляют, не убивают (хотя случается и это, организм человека слабее овладевающих им замыслов), не страдает гражданское население, не захватываются языки для короткого и предельно жесткого допроса с летальным исходом. Но непрерывный стресс, напряжение всех сил, работа на пределе возможностей и за их пределами – это изматывает, и даже если все закончилось победой, остаётся горькое послевкусие. Нервы.

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

На волне такого послевкусия, в 1985 году, Билл Аткинсон придумал HyperCard. Дэн Эйлер, вице-президент Apple Computer по стратегическим инвестициям, предложил перенести систему Mac’а на Intel.

Но, обсудив все “за” и “против”, предложение отклонили. Apple Computer зарабатывала миллиарды на продаже компьютеров и периферии, и всего лишь десятки миллионов на операционных системах.

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

Новелла о Novell, 1992

В январе 1992 года Даррел Миллер, вице-президент по стратегическому маркетингу коммуникационного гиганта Novell (из Прово, штат Юта) прислал руководству Apple Computer необычное послание (текст, возможно, спрятан в подвалах Apple, и все еще засекречен), в котором высокопоставленные разработчики программного обеспечения Apple приглашались на встречу с техническим руководством Novell, если Apple Computer не будет против этого возражать.

Apple не возражала. В каком-то суде штата Калифорния готовилось разбирательство по поводу иска Apple к Novell из-за разработки последней “продвинутого варианта” DR DOS GEM, операционной системы с графическим интерфейсом, до неприличия похожим на интерфейс Mac’овской системы. Использование DR DOS GEM на Atari не вызывало такой реакции Apple – платформа была обречена. Но с Novell можно было содрать приличную сумму.

За год до этого Novell приобрела компанию Digital Research, со всеми её разработками. Novell интересовала Digital Research DOS GEM, и не из-за каких-то гуманных (спасти от алкоголизма и отчаяния Гари Килдала) или иных абстрактных соображений. У Novell была проблема.

Microsoft неудержимо захватывала рынок, используя для этого любые, в том числе самые “неспортивные”, приемы. В 1990 или 1991 году Microsoft объявила о разработке Windows NT, операционной системы с GUI (графическим пользовательским интерфейсом) и мощным арсеналом коммуникационных технологий. Windows NT разрабатывала команда выходцев из DEC, создатели фантастической VAX/VMS. Во главе с Дейвом Катлером, руководителем и идейным вдохновителем проекта VMS.

Первые три буквы названия Windows NT (WNT) можно получить из VMS заменив каждую их букв аббревиатуры на следующую за ней по алфавиту. Это, по одной из версий, вовсе не случайное совпадение.

Microsoft, создатели VAX/VMS, мощный арсенал коммуникационных технологий – все это создавало нешуточную угрозу NetWare (в русском жаргоне того времени она называлась “нетварь”), сетевой кросс-платформенной операционной системе, основному источнику доходов Novell.

Windows NT еще не было, ходили слухи что это очередной мыльный пузырь (vaporware “по-американски”, “парвер” по аналогии с “софтвер” и “хардвер”), но Novell уже ощущала на своей шее её удушающие объятия: продажи сократились, предложения о долгосрочном сотрудничестве практически исчезли из корпоративного почтового ящика. Novell решила дать агрессору бой. Поэтому она приобрела Digital Research (c 1981 по 1983 или 1984 DR была IDR, где ”I” расшифровывалось как “Intergalactic” – Межгалактические Цифровые Исследования”).

В день святого Валентина 1992 года, в офисе Novell, состоялась встреча, которая вполне могла стать эпической. На ней обсудили техническую возможность переноса System 7 на “вражескую” архитектуру Intel (вывод: сложно, но можно), и самые важные проблемы на пути этого переноса (вывод: решаемо), и составили протокол о взаимных намерениях, для заключения союзнического договора между Apple и Novell.

“Мы принимаем бой!”

Договор был доработан и заключен. Высокие договаривающиеся стороны обратились к главе Intel, Энди Гроуву – и получили с его стороны поддержку и обещание помощи. Intel тоже беспокоила активность Microsoft.

Проект был назван Star Trek. Команду разработчиков возглавил Крис ДеРосси (менеджер по общим вопросам) и Роджер Хейнен (технический менеджер). Команда состояла из 14 инженеров Apple и 4 инженеров Novell. Чтобы избавить разработчиков от опеки высшего руководства обеих компаний, команде выделили офис в маркетинговом департаменте Novell в Санта Клара, Калифорния, через дорогу от главного офиса Intel.

Энди Гроув предоставил 20 новеньких компьютеров с 486 процессором, “за так”. 17 июля все было готово к вступлению в бой: план, финансирование, техническая поддержка со стороны IBM. В тот день состоялось совещание, на котором был назначен срок готовности демонстрационной версии System 7 на Intel 486.

Им должен был стать Хэллоуин 1992 года (31 октября). Срок был более чем сжатый, но Apple и Novell сумели мотивировать команду соблюсти его. В случае соблюдения срока, каждый из участников проекта получал денежную премию (от 16 до 25 тысяч долларов) и оплаченные две недели отпуска на мексиканском курорте Канкун (All-Inclusive).

И у них “датские” сроки? Хэллоуин, надо же…

Нет, просто агрессия Microsoft набирала обороты, 26 апреля Microsoft выпустила Windows 3.1 – System 7 “рвала” её на британский флаг, встречное сражение этих систем на Intel сулило победу объединенным корпорациям, но надо было спешить. Кстати, к Хэллоуин они не успели, чуть-чуть, но выполнение условий было засчитано, и народ уехал отдыхать в Канкун, получив чеки на обещанные суммы.

Но мы забегаем вперед. В среду, 18 июля 1992 года, в 9 утра по тихоокеанскому времени, Star Trek отправился в межгалактическое путешествие.

Если бы переносилась System 6, было бы еще труднее (хотя по объему кода “шестерка” и уступала System 7, но практически вся система была написана на ассемблере 68000), но и в System 7 огромные фрагменты кода все еще были на ассемблере, причем, на нескольких диалектах 68000, 68000, 68020, 68030 и 68040, с поддержкой сопроцессоров, насыщенные всякой экзотикой в виде “трюков” и “танцев с бубном”.

Часть кода System 7 была “намертво зашита” в микросхему постоянной памяти, объемом в 512 килобайт – это были глубоко оптимизированные библиотеки Mac’овского тулбокса и системных утилит. Впервые инженеры самой Apple перенесли содержимое ПЗУ в файл на диске. В следующий раз это было сделано только в 1998 году, для первого iMac.

Бóльшая часть кода “семерки” была написана на Паскале, с этим кодом проблем было намного меньше, но его было очень много.

Презентация Star Trek состоялась 4 декабря 1992 года. Разработка демо-версии была закончена всего на месяц позже срока.

Сказать что видевшие эту презентацию были шокированы – ничего не сказать. Обычный Intel’овский бокс, издав фирменный “яблочный” музыкальный звук, усиленный колонками, показал улыбающийся экран стартующей “семерки”, затем загрузилась самая настоящая “семерка” – и она работала! Открывала файлы, запускала программы, связывалась по сети с Mac’ами и PC-шками с другими операционными системами (MS DOS и OS/2).

По словам Фреда Монро, одного из участников самого проекта и этой презентации, первая попытка запуска была неудачной, с диагностическим сообщением “Система не найдена” и грустным Mac’ом, которых увидели все собравшиеся.

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

Билл Гейтс отреагировал на информацию о презентации с обычной ухмылкой, коротко и не совсем понятно: “Это то же самое, что накрасить цыпленка губной помадой”. Защитники животных не возражали. Статистики по числу накрашенных, против их воли, цыплят в США и Канаде в декабре 1992 и январе 1993 у меня нет.

После презентации все разработчики, кроме руководителей проекта, уехали в Мексику, кутить и отдыхать. Руководство вовлеченных в проект компаний и проекта стали думать о следующих шагах проекта. Теперь о проекте знали не только они.

Им вдруг стало страшно.

Окончание следует

Apple и ее Unix в зоне турбулентности

Что случилось бы с A/UX в альтернативной реальности, если бы, например, Жан Луи Гассé не ушел из компании в 1990-м и стал бы главой Apple после отставки Скалли, мы никогда не узнаем. Система, после глубокой модернизации, вполне могла стать основой для будущих macOS – её потенциал не был использован и на сотую долю. Но…

В ноябре 1991 года Apple объявила A/UX 3.0. Перед этим A/UX 2.0, A/UX 2.0.1 и A/UX 3.0 были сертифицированы как отвечающие требованиям TCSEC (стандарта министерства обороны США, так называемой “Оранжевой книги”) по классу C2. Это предпоследний из шести возможных уровней безопасности операционной системы, но теоретически теперь для Apple путь к многомиллионным правительственным контрактам был открыт.

У системы теперь было столько разных сертификатов, что она была похожа на чемпиона собачьих конкурсов по экстерьеру. IEEE POSIX 1003.1-1988, AT&T SVID, ISO 9945-1, FIPS #151-1, а теперь еще и TCSEC С2.

Одним из оправданий политической активности Джона Скалли в 1992 году была работа в этом направлении. Теперь у него были такие связи, что заветная мечта компании могла бы стать реальностью – но не судьба. К тому же десять лет, проведенные на западном берегу США, не могли не изменить его взгляды на жизнь, и вся эта работа вполне могла быть не более чем предлогом. Он очень хотел стать президентом страны.

Завершение цикла. Начало здесь, предыдущие части здесь и здесь.

Жалобы и пожелания клиентов были учтены, а по простоте установки A/UX 3.0 долгое время не имела себе равных. Некоторые называли этот процесс “установкой в один клик”, но это гипербола. Если бы существовал AuxStore и 7-летний искатель приключений вдруг скачал эту непонятную штуковину на свой Macintosh IIfx или Macintosh Quadra, списав со счета ничего не подозревающих родителей кругленькую сумму, он бы её установил. Если бы в те времена существовали еще и системы онлайновых платежей.

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

Были и другие улучшения, но самым важным было будущее этой системы. Это был мега-супер-пупер-проект, имевший все шансы, публично объявленный, получивший поддержку, которого ждали с интересом и нетерпением, почти как Copland через несколько лет.

За месяц до этого Apple и IBM объявили о создании альянса, и общей стратегии захвата рынка (POE). A/UX 3.0 играла в этой стратегии важную роль.

A/UX 3.0

Презентация A/UX 3.0 стала одним из самых ярких событий Unix Expo в ноябре 1991 года, но не сама по себе, а как начало чего-то большого и грандиозного, что, как ожидалось, изменит мир и место Unix’ов в нем.

Сама A/UX 3.0 тоже была интересна, но теперь она была всего лишь первой ступенькой к невыносимо прекрасному “послезавтра”. Выход “трешки” был назначен на первый квартал 1992 года, а прекрасное послезавтра – на конец 1993 или начало 1994.

A/UX 3.0 все еще предназначалась для Mac’ов с архитектурой 68k (новые Motorola 68040 по своим тактико-техническим данным превосходили лучшие Intel’овские процессоры), но в A/UX 4.0 была обещана полная поддержка PowerPC, с архитектурой RISC.

A/UX 3.0 все еще строилась на основе SVR2.2 (System V Unix, релиз 2.2), но уже в A/UX 4.0 обещали радикально обновить “фундамент”, заменив SVR2.2 на SVR4. SVR4 – это лучший вариант System V на тот момент, он включал в себя полностью SVR3, 4.3BSD, Xenix и SunOS – добавляя к ним собственные функции.

Еще лучший релиз System V, SVR4.2 вышел в октябре 1992 года. Примерно через год.

Четвертая командная оболочка (интерфейс Mac, остальные три – Bourne, Korn и C, они же sh, ksh и csh) в A/UX 3.0 была почти точной копией System 7, с некоторыми дополнениями. С командой в меню “Unix CLI”, открывавшей продвинутый аналог утилиты Terminal из нынешней macOS. В любой момент пользователь мог запросить диалог ассистента, знавшего все об активной командной оболочке и о параметрах всех команд.

При желании можно было вовсю пользоваться Unix’ом, не встречаясь с ним вообще и не заглядывая в справочники, man или шпаргалки. Итоговая строка для CLI отображалась, для проверки и/или информирования пользователя о том, что он вводит, – что помогало в освоении лексики и грамматики языков командной строки.

Заиметь что-то такое в наши дни в macOS было бы очень неплохо. Может, что-то такое даже уже есть.

Система могла одновременно исполнять программы для System 7 (все), те программы для System 6, которые были совместимы с System 7 (32-битно чистые), программы для целого ряда Unix’ов, для X Window – а при наличии SoftPC и аналогов – еще и DOS 5.0. И Windows 3.0, только тсс! – для последнего требовалась лицензия от Microsoft.

Поддержка X Window была встроена в A/UX 3.0, и покупать её отдельно не требовалось.

A/UX 3.0 стала самой первой операционной системой с встроенной поддержкой QuickTime.

В среде разработки (A/UX Development Tools 1.1) поддерживались Mac’овские реализации Паскаля, Си, Си++ и ассемблера 68k. Фортран 77, который был в A/UX Development Tools 1.0, был из среды удален. Насколько мне известно, никто о нём не плакал. Все эти языки были оптимизированы для работы с A/UX.

Кроме того, в среде разработки были все стандартные Unix’овые средства разработки. И полные наборы инструментария для разработки Mac’овского программного обеспечения (программ, кодовых ресурсов, драйверов и т. п.), а также для разработки программ для X Window System (X11), чистого Unix’а и гибридных программ (Unix+Mac).

По многим параметрам A/UX превосходила все операционные системы для персональных компьютеров, таких как System 7 от Apple, Windows и DOS от Microsoft и OS/2 от IBM. На фоне других Unix’ов A/UX 3.0 выглядела вполне достойно, а если вспомнить о том, что стоила она раза в три дешевле всех превосходящих её конкурентов, то даже блестяще.

A/UX 3.0 поддерживала подключение нескольких мониторов к одной рабочей станции, она отлично работала с Quadra 900 и Quadra 950 (последний был самым мощным Mac’ом, отняв первое место у Mac IIfx). A/UX 3.0 на Quadra 950, увы, по производительности уступала IBM RS/6000 и Sun Sparcstation 2, и там где производительность была критична, A/UX была бы неуместна. По тем же причинам, что и Mac IIfx в паре с A/UX 2.0.

Прекрасное послезавтра

PowerOpen Environment, совместный проект Apple и IBM, объявленный на Unix Expo 1991 года, предполагал глубокую взаимную интеграцию следующих версий A/UX и AIX, и их переход на процессоры POWER и PowerPC (продуктом консорциума в составе Apple, IBM и Motorola6 который был только-только создан, всего месяц назад), с RISC-архитектурой и невероятной производительностью.

Всего три года прошло с презентаций обеих этих систем, состоявшихся в том же месте и в тот же час, на разных этажах, в 1988 году.

Теперь следующие версии обеих систем предполагалось построить вокруг ядра OSF/1, превратив его систему в ABI (Application Binary Interface) создаваемого PowerOpen Environment.

Будущее время обозначает “будущее в прошедшем”. Просто представьте себе, что вы в 1991… Через несколько месяцев после августа.

Обе компании, по словам Джона Скалли, продолжат развивать свои Unix’ы и будут продвигать их на рынок раздельно… Из чего можно досказать недосказанное: де факто это будут родственные варианты одной и той же системы, для разных сегментов рынка.

Или все-таки это будут разные системы? Точного ответа нет… по объективным причинам.

Обе системы будут соответствовать стандартам POSIX и X/Open.

Представитель Apple открыл посетителям Unix Expo страшную тайну: Apple Computer все еще не играет важной роли в Unix’овом мире, но теперь, благодаря PowerPC, альянсу с IBM и Motorola и новой стратегии, разработанной совместно Apple и IBM, это изменится.

Представитель IBM высказал встречные комплименты, и поделился своими мечтами о том, как общая с Apple операционная система (все-таки общая?) будет работать на устройствах самых разных типов и размеров, от PowerBook’ов до IBM RS/6000.

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

Реальное послезавтра

Мечтам не суждено было сбыться. Платформа PowerPC, разработанная консорциумом AIM, стала основой Mac’ов и некоторых других компьютеров разных компаний, игровых платформ (Apple Pippin и Microsoft Xbox), превзошла по объему выпуска процессоров Intel (правда, в основном за счет встраиваемых процессоров для различных промышленных и бытовых устройств).

Новый враг человечества и альянса достойных компаний, Microsoft (если называть вещи их настоящими именами), продолжила подъем к пику своего могущества.

А проект PowerOpen и A/UX 4.0 так никогда и не был реализован. «Википедия» связывает провал этих прекрасных инициатив с нашествием Linux’а на персональные компьютеры, но у меня своя версия.

На самом деле, у проекта PowerOpen +( A/UX + AIX) были шансы если не на монопольный захват мира (что ужасно, кто бы и с какими светлыми идеалами в душе за ним ни стоял), то на конкурентное противостояние с другими игроками большого разнообразного мира.

В 1993 году в Apple сменилось руководство. Новое руководство, столкнувшись с новым успешным конкурентом (Linux), просто подняло руки и залопотало “A/UX Kaput”.

A/UX 4.0 так никогда и не вышла. Команда разработчиков A/UX, по одному или группами, стала уходить из Apple. A/UX 3.x так никогда и не перенесли в PowerPC. Большие тяжелые Unix’ы в эмуляторах не живут, она была обречена.

Но системе нашли временную работу: в Apple Workgroup Server 90 и 95, построенных на основе 68040, специально адаптированная для них A/UX 3.1 (и 3.1.1) использовалась до 1995 года, при покупке пользователь мог выбрать между A/UX и стандартной Mac’овской системой. В последнем случае получалось дешевле, а никаких особых преимуществ A/UX AWS уже не давал…

В 1995 году проект был закрыт.

A/UX 2.0 покидает рай

В августе 1990 года первые копии A/UX 2.0 оказались в руках пользователей. Не было ни массовых акций протеста, пакеты с изображением надкушенного яблока или портреты Скалли, вырезанные из журналов, никто публично не сжигал. Успех?

A/UX 2.0 была настолько же хороша, насколько A/UX 1.0 и A/UX 1.1 были ужасны. Это и в самом деле был убийственно мощный зверь в шкуре Mac’а. Apple опубликовала список Mac’ов, совместимых с A/UX 2.0: список включал в себя Macintosh SE/30, Macintosh IIcx и Macintosh IIx, совершенно для нее не подходящие. Вреда от этого не было, скорее всего, приобретали A/UX 2.0 только те, кто знал, на что тратит немалые деньги.

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

Система в основном отвечала ожиданиям покупателей. Недостатки и проблемы были, но в рамках приличий. А ожиданиям руководства компании, судя по всему, нет. A/UX 2.0 не “продавала” самые дорогие Mac’и пришельцам с других платформ. Правительственные организации тоже не спешили с чеками на многомиллионные суммы. Об этом мало кто знал, но NeXT Computer, не слишком успешная у широких потребительских масс, банально перешла Apple дорогу. Место было занято. Правительственные организации и транснациональные корпорации хранили свои источники техники и технологий в тайне – в Apple так никто ничего и не узнал.

Ирония судьбы: именно ужас перед успехом NeXT толкнул Apple на создание собственного Unix’а, и именно NeXT не дала Apple “отбить” сотни миллионов, вложенных в проект.

Apple не сдавалась. Казалось, еще одно-два усилия – и A/UX очередной версии обернется для неё сверхприбылями.

Встреча A/UX 2.0 с реальностью

A/UX 2.0 не поддерживала расширенную клавиатуру. Вообще.

В именах файлов могли использоваться только символы 7-битной ASCII. То есть ни буквы с диакритическими знаками, ни кириллица в “верхней половине” ASCII в именах файлов не разрешались.

В именах ресурсов, например, не допускался символ “™”, очень распространенный в именах сторонних INIT’ов от независимых разработчиков.

С INIT’ами вышло нехорошо: во время “ухаживания” за потенциальными покупателями новой системы, Apple неоднократно заявляла о своей победе над проблемами с INIT’ами (кодовые ресурсы, исполняемые во время запуска системы) и cdev’ами (кодовые ресурсы, управляющие панелями управления, то есть настройкой Mac’овской части A/UX). С последними все было благополучно, а вот с INIT’ами возникли проблемы.

Но это не особенность системы, а баг. Их было очень мало, но куда же без них?

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

Кроме того, в A/UX 2.0 не поддерживалось подключение нескольких мониторов. Предмет заслуженной гордости Apple, но по каким-то серьезным причинам такая возможность в A/UX 2.х так никогда и не появилась. Вообще-то, второго монитора именно в Unix’е очень не хватало – но что делать…

Опытным путем пользователи (а у A/UX все пользователи были продвинутыми) установили, что минимальный объем оперативной памяти для однопользовательского режима должен быть не ниже 8 мегабайт (вместо 4, озвученных Apple), а в многопользовательском – не меньше 20.

В составе A/UX 2.0 были лучшие в индустрии коммуникационные и сетевые технологии, но продвинутые пользователи жаловались на избыточную сложность администрирования сетей, из-за того, что Apple не включила в состав системы еще и утилиту в Mac’овском стиле для этого.

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

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

В сетевом наборе были и не самые удачные реализации технологий. Например, UUCP (Unix-to-Unix Copy) в составе A/UX 2.0 был очень древним, со множеством багов.

Случилось в A/UX 2.0 и “горе от ума”: SCSI-менеджер в ней был асинхронным. Синхронные устройства работать с ним не могли. То есть почти все SCSI-устройства от Apple. Не беда: проблема решалась написанием новых драйверов для этих устройств. Команда A/UX 2.0 об этом позаботилась. Пользователи даже ничего не заметили. Пока A/UX 2.0 не столкнулась с бесконечностью и разнообразием мира, явившемся ей в обличье SCSI-устройств других производителей.

Все недостатки были или решаемы (со временем их и решили), или с ними можно было жить.

Mac IIfx + A/UX 2.0 в реальности

То, что A/UX 2.0 огромна и очень требовательна к ресурсам и поэтому быть очень быстрой она не может, понимали все.

Но Macintosh IIfx, с 68030 на 40 мегагерц, самый мощный и быстрый из всех Mac’ов эпохи 68030-процессоров, внушал радужные надежды.

Увы, несбыточные. На IIfx “яблочный” Unix оживал, шутя справлялся с задачами, на которые у Macintosh IIx уходила целая вечность. Но от мощных Unix’овых рабочих станций, которые стоили столько же, сколько Macintosh IIfx, или даже меньше, он безнадежно отставал.

Эксперты пришли к выводу, что A/UX 2.0 в этом не виновата. Подводило железо. Самый мощный и дорогой Mac не был оптимизирован для Unix’а. Специализированные рабочие станции использовали быстрые шины, встроенные в железо средства доступа к страницам памяти, и различные другие ускорители. Если бы не эти рабочие станции, Mac IIfx был бы одним из лидеров этой гонки.

И создателей Macintosh IIfx тоже винить не за что.

Они разрабатывали самый мощный в мире Mac для работы с System 6 и System 7 (которая уже приближалась к завершению), но ничего про A/UX 2.0 им не сообщали. Неудивительно, сотрудники работающие в соседних комнатах не знали, чем занимаются их соседи.

Когда Джобс вернулся в Apple (до этого оставалось всего 7 лет), в компании был полный бардак, все знали все, и никто не знал, что делать. Любой мало-мальски интересный секрет уже через несколько часов знала вся Кремниевая долина, а с ней и весь мир (Интернет!).

Одним из первых его шагов в качестве временного главы компании (iCEO, если кто-то уже забыл), было закручивание гаек по части секретности. Несмотря на отчаянное положение с финансами, он вложил в обеспечение “особого режима” немалые суммы. Говорят, органы безопасности Apple не уступают спецслужбам развитых государств.

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

Возвращаясь к теме, очень быстро выяснилось, что обитатели планеты Unix абсолютно не заинтересованы в смене обстановки и покупать Macintosh IIfx с предустановленной A/UX не хотят.

Конкуренты

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

Наверняка их было больше, но я в курсе только о двух. О первом расскажу сразу, пока не забыл и чтобы больше к нему не возвращаться. Система называлась MacMach (читается “макмак”), разработали её в университете Карнеги-Меллона из Питсбурга, Пенсильвания.

В ней использовалось микроядро Mach (разработка того же университета) версии 2.5, как и в тогдашней NeXTSTEP, и коммерческий Unix 4.3BSD от AT&T.

Mac’овская System 7 в MacMach запускалась как одна из задач Unix’а. Все работало, но коммерческого успеха не могло бы случиться никогда: пользователь должен был купить лицензию на Unix и копию System 7.

Это была скорее “научно-исследовательская работа студентов”. НИРС, как это называлось во времена моего студенчества.

В 1994 году, когда пришло время апгрейдить MacMach, оказалось, что все, кто знал, как это делать, уже ушли. И его отключили от электрической сети, о чем некая Мэри Томпсон написала меморандум и разослала его по университетской сети. Текст сохранился.

А вот MachTen (читается “мактэн”) от компании Tenon Intersystems из Санта-Барбары в Калифорнии, доставил Apple массу удовольствия. Mach 2.5, 4.3BSD. С самого начала эта наглая маленькая компания агрессивно и успешно продвигала свой проект, используя все недостатки и слабости A/UX 2.0, о которых не мог не знать ни один желающий поставить Unix на свой Mac.

MachTen 1.0 была выпущена в августе 1991-го. На настоящую рекламу у Tenon Intersystems денег не было, но в главных компьютерных СМИ регулярно публиковались небольшие, в телеграфном стиле, объявления от её имени.

По словам авторов, MachTen можно было установить на ЛЮБОМ Mac’е. Для её установки не требовалось делить жесткий диск на разделы, переписывать драйверы устройств, и занимала она половину от типичного в те времена 40-мегабайтного диска. В 4 раза меньше, чем A/UX 2.0.

И была она на PowerBook’ах ощутимо шустрее, чем A/UX 2.0 на куда более мощных Mac’ах, пока не сталкивалась с серьезной задачей – но об этом в лаконичных сообщениях Tenon Intersystems о себе и о своем продукте умалчивалось. Для минимизации текста, надо полагать.

И вообще, MachTen была на порядок слабее и менее полезна, чем A/UX 2.0, но напор и натиск принесли результаты. Теперь на Mac’ах был еще один Unix.

В MachTen 1.0 не поддерживалась System 7, не было среды разработки, а установка X Window System была вообще невозможна. И стоила она сопоставимо с A/UX 2.0 (версия для сервера – 835 долларов, версия для клиента – 595).

Зато была настоящая вытесняющая многозадачность, бескомпромиссная поддержка TCP/IP, поддержка Network File System (NFS), и вообще – Unix. Командные оболочки, процессы, потоки (Mach 2.5).

В ноябре в очередной “телеграмме” от Tenon Intersystems сообщалось, что в следующем месяце в систему будут добавлены варианты X Window System для сервера и клиента, а в первом квартале 1992-го – полная поддержка System 7. Среду для разработчика (с GNU C в качестве главного блюда) для MachTen теперь можно было купить за 395 долларов, а X Window System – за 175. В два раза дешевле, чем Apple брала за X Window для A/UX.

Юристы Apple разводили руками: эти выскочки все делают грамотно, не придраться.

К моменту выхода MachTen 2.0 у Tenon Intersystems, скорее всего, уже были деньги на полноценную рекламу – но она не потребовалось. Коротенькое сообщение в InfoWorld за 11 мая 1992 года сыграло роль детонатора. Пишущие люди из компьютерных СМИ пришли сами.

MachTen пережила A/UX 2.0, была перенесена на PowerPC. В 2009 году ей все еще пользовались как минимум несколько человек. Это была Power MachTen 4.1.4, для Mac’ов с PowerPC. После 2009-го – мрак. Вот такая «Санта-Барбара».

Продолжение следует. В следующих сериях (или серии) — A/UX 3.0, Apple Workgroup Server и A/UX 3.1.1.

Тим Кук рассказал о Стиве Джобсе и философии Apple

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

О том, думал ли Тим Кук о возможности баллотироваться на пост президента США:

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

О том, почему он решил оставить место в Compaq, приняв приглашение Стива Джобса работать в Apple:

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

Тим отметил, что переход в Apple стал ключевым моментом, добавив, что это было, возможно, самым правильным решением в его жизни.

О том, как глава Apple относится к негативным прогнозам аналитиков, касаемо финансовых показателей:

Возможно, когда-то это беспокоило, но это уже давно не так. Все решения, которые принимает Apple, – выверенные. Поэтому мне кажется странным стремление делать какие-либо выводы, опираясь лишь на квартальные показатели. Мы не ставим цель заработать денег в короткий период времени. Для нас важнее управлять компанией в долгосрочной перспективе.

Касаемо Apple Park:

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

Была затронута и тема конфиденциальности.

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

В завершение разговора Тим Кук ответил, почему iPhone оказался настолько успешен.


Это глубокий продукт. Это был продукт, меняющий правила игры. Если вы посмотрите презентацию первого iPhone, то почувствуете, насколько он был важным для Стива и для Apple в целом. Я это помню так же хорошо, как будто это было вчера.

Unix или чаша с ядом?

Одной из главных тем майского номера MacUser за 1990 год была только что объявленная новая версия A/UX. На обложке обещали “Unix, который вы полюбите”, обсуждение Unix’а и любви начиналось на 363 странице, с вопроса о Unix’е и чаше с ядом.

Статья Штефана Шóмодьи начиналась с вопроса: “Если бы типичному пользователю Mac’а предложили, на выбор, выпить чашу яда или перейти на Unix, что бы он выбрал?”.

По мнению Штефана, типичный пользователь впал бы в задумчивость.

Из дальнейшего текста можно было понять, что A/UX 2.0 – это совсем другой Unix. Живите и наслаждайтесь, отказывайтесь от чаши яда сразу. “Ты увидишь, он не страшен…”

У меня возник другой вопрос: как люди в то время в журнале в 430 страниц (пять шестых из которых – реклама) находили то, что их заинтересовало? Тем более что в оглавлении и “на месте” статьи назывались не так, как на обложке?

Продолжение. Начало здесь.

В апреле–мае 1990 года редкое издание компьютерной прессы не посвятило A/UX 2.0 пару-другую страниц, это явно было что-то нерядовое и необычное.

Типичный Mac’овский пользователь, Unix и завоевание мира

Интересно, а что бы выбрал типичный Mac’овский пользователь нашего времени, чашу или Unix? Знает ли хотя бы каждый тысячный из них о том, что внутри macOS – Darwin, Unix из клана BSD? Но массовое отравление маловероятно: теперь мало кто знает, что такое Unix. Это моющее средство, доисторический вариант “Ты супер” или что-то еще? Его едят, пьют, носят или им моются?

Да, на всякий случай, согласен называть Darwin не Unix’ом, а Unix-подобной системой. В нулевые несколько релизов Mac OS X Server успешно прошли все положенные испытания и были официально признаны “настоящими Unix’ами”, но статус “настоящего” необходимо подтверждать для каждого релиза отдельно, это та еще морока, стоящая денег, – а Apple наших дней играет на другом поле.

Провал A/UX 1.0 и A/UX 1.1, явно не подходивших на роль сверхоружия для завоевания мира, только раззадорил руководителей Apple. Страх перед Джобсом и NeXT Computer ушел в прошлое, цены на Mac’и изумляли – но их все равно покупали и даже испытывали к ним что-то вроде любви.

А на Apple Computer все еще надеялись заполучить федеральное правительство страны в список своих клиентов, поэтому в 1990 году, почти одновременно, была объявлена и показана A/UX 2.0, отличавшаяся от A/UX 1.x как небо от земли, и выпущен самый мощный Mac того времени, Macintosh IIfx. Выход A/UX 2.0 был публично назначен на август 1990 года.

Macintosh IIfx был еще и самым дорогим Mac’ом за всю историю. И одной из популярных моделей платформы – несмотря ни на что. Я тоже мечтал о IIfx.

Первое упоминание A/UX 2.0, найденное мной, датируется 2 апреля 1990 года. WWDC 1990 года проходило с 7 по 11 мая, то есть новая версия этой системы была объявлена не там, это точно.

Mac IIfx захватил половину рекламного пространства в Mac’овской прессе в мае, и начиная с того же мая о нем очень активно писали – тут вопрос остается открытым. Не без участия Apple, пресса теперь реагировала на события стремительно, и технически вполне реально, получив данные (и договор на приличную сумму) от Apple 7 мая, массированно обрушить их на читателей уже через несколько дней.

Но ни одной самой маленькой ссылочки на конференцию разработчиков в мае 1990-го я не нашел. Известно только, что WWDC-1990 состоялась.

И пока A/UX 2.0 не оказалась в руках пользователей, казалось, что мир уже у ног Apple.

Выход A/UX 2.0 был назначен на август 1990 года. У людей было время порадоваться и помечтать.

Инновации

В A/UX 2.0 32 инновации, а в Macintosh IIfx их вообще 53 – утверждала Apple Computer.

Повеяло чем-то родным и знакомым, правда? В эпоху Джобса инноваций насчитывали побольше (сотнями), а при ближнем рассмотрении не все из них тянули на инновации – но разве в этом дело? На войне как на войне, хороши все средства, приближающие победу.

A/UX 1.x был, с точки зрения пользователя, скорее Unix’ом, чем системой Mac’а. A/UX 2.0 –это Mac с Unix’ом внутри. Если пользователь не в курсе, он может вообще не заметить, что это другая операционная система. Внешний вид и ощущения (look and feel – самая главная ценность Mac’овского интерфейса) абсолютно Mac’овские.

При этом A/UX 2.0 – другая система. Она написана с нуля, на основе System 6, но в ней уже используются элементы еще не вышедшей System 7. Поразительно: кто-то, нарушив все драконовские правила параноидальной секретности, свел несколько разных команд вместе, для решения конкретной задачи – только глава компании имел на это право.

Из System 7 позаимствовано несколько мелочей вроде “Set Aside” (отложить в сторону), это команда, позволяющая спрятать все окна и диалоги открытого приложения, аналог нынешнего “Hide” и “Show”, и некоторые другие.

В A/UX 2.0 одновременно могли исполняться приложения для Mac’ов, для Unix’ов и для X Window System. Mac’овские программы, не нарушающие правило 32-битной чистоты, без проблем работали с вытесняющей (настоящей) многозадачностью. С X Window System не все было просто: в необозримо огромном базовом комплекте её не было. Её надо было покупать за свои кровные (350 долларов).

Появился и новый класс программ, “гибридные” – это Unix-программы использующие Mac’овские библиотеки. Ожидалось, что программы этого класса обязательно станут заметной чертой Mac’овско-Unix’ового ландшафта. Может, они и существовали, но мне попалось только упоминание, и только об одной – Intermedia, разработка университета Брауна. Больше я о них ничего не слышал и с ними не сталкивался. Я даже догадываюсь почему.

И если уж пошла такая пьянка, к списку одновременно работающих программ следует добавить программы для MS DOS и для MS Windows. SoftPC от Insignia Solutions стоила даже дешевле, чем поддержка X Window System, при этом очень качественно имитировала 386-й процессор. “Как живой” – по мнению очевидцев.

Между программами из всех поддерживаемых систем (вроде бы даже из DOS и Windows) работал Copy/Paste. В программах для Unix или для DOS это было очень необычно, лучше, чем у них “дома”.

В системе поддерживались три файловых системы – SVFS (из System V), FFS (из BSD, в наше время называется UFS) и Mac’овская HFS. С точки зрения пользователя, они ничем не отличались одна от другой. От сложностей и различий пользователь был изолирован тщательно отлаженным программным обеспечением.

Unix’овая сторона системы была облагорожена множеством небольших, но очень ценных утилит. Например, утилита Commando, облегчавшая ввод Unix’овых команд в командной строке. Клавиатурная комбинация Command-K выводила на экран, в котором пользователь мог, в обстановке дружелюбной к пользователю, вводить параметры нескольких сотен Unix’овой команд привычным для Macintosh’ника образом.

Commando позаимствована из MPW (Macintosh Programmer Workshop), как и текстовый редактор TextEditor для программирования, написания скриптов командных оболочек или просто текстов. Очень удобная штука для тех, кто сто лет не пользовался редакторами вроде “vi”.

В A/UX 1.x важные для Mac’овской системы исполняемые ресурсы типов INIT и cdev не работали, в A/UX 2.0 объявили о полной и безоговорочной их поддержке (а вот это вот и не получилось, проблем было много – но теперь они решались, переписыванием бастующих INIT и cdev).

Программы для Mac’а, не соблюдающие закон 32-битной чистоты, тоже могли работать в A/UX 2.0, но с ограничениями (никакой многозадачности вообще и тому подобными). То есть, если это требовалось “кровь из носа”, ничего невозможного не было.

И багов в Unix’овой части практически не было. Слышал мнение знающих людей – это был самый чистый порт System V за всю историю. Это тоже было необычно.

Остановлюсь: для перечисления всего хорошего и необычного в A/UX 2.0 потребовались бы годы и гигабайты статей… Наверное, хватит.

Было очевидно, что система – выдающаяся. Apple и её партнеры с UniSoft поработали над ней тщательно и с любовью, стараясь не упустить ни единой мелочи. И теперь им никто не мешал.

И с не меньшей очевидностью было ясно: ресурсов этой системе потребуется невероятно много. И тут, как бы совершенно случайно, на арене оказался новый Mac, Macintosh IIfx, самый мощный компьютер на процессоре 68030, и самый дорогой Mac в истории.

По производительности он обходил прежний самый мощный Mac (Mac IIci) на 70-100%. И был весьма популярен, несмотря на сумму на ценнике. О нем мечтали.

И было понятно, что платить за все это придется пользователям, и немало.

Мы за ценой не постоим! Или постоим?

Приобрести A/UX 2.0 можно было:

  • на дискетах (40 дискет!);
  • на CD/ROM (несколько штук);
  • на кассете QIC-100 для Apple Tape Backup 40 SC;
  • предустановленной на жестком диске или на компьютере.

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

Первые три способа были самыми дешевыми, хотя требования к аппаратному обеспечению A/UX 2.0 и экономия “на булавках”, как мне кажется, несовместимы в принципе. Но многие выбирали один из этих трудных путей – честь им и вечная память убитому ими времени.

Комплект на дискетах стоил 995 долларов. Дисковод для CD стоил намного больше 200 долларов, и этот вариант охотно покупали. Я бы не решился.

Вариант на CD/ROM стоил 795 долларов.

Кассета QIC-100 – 995 долларов. Обладателей кассетных устройств для бэкапа других моделей и/или производителей ждал облом: поставляемая кассета читалась только на Apple Tape Backup 40 SC, и даже если стороннее устройство было на 100% совместимо с “яблочным”, оно оказывалось бесполезным. Было ли это следствием какого-то бага или умышленным вредительством – вялый спор между немногими, кто был в курсе, кончился сам собой. Пользовательские группы помогали пострадавшим, предоставляя им на время собственные Apple Tape Backup 40 SC, за небольшую плату.

Установка требовала понимания процесса, внимания и осторожности и занимала (если все пошло как надо) примерно полтора часа.

Если “как надо” не получалось, установка могла занять несколько недель. Правда, люди уходили домой в положенное время и в выходные занимались своими делами – но эпопея была еще та. Самым сложным во всей этой истории было понять, почему это все все-таки вдруг установилось. Предложение вернуть все в исходное положение и попробовать еще раз понимания у администрации не вызвало. Тайна так и осталась тайной.

Самым практичным, на мой взгляд, был вариант с “фабричной” предустановкой A/UX 2.0, так как время и нервы – ресурс невосполнимый.

У этого варианта было три подварианта:

  • жесткий диск ёмкостью в 80 мегабайт, с A/UX 2.0 и SCSI-кабелем, за 2395 долларов;
  • Macintosh IIci, с 4 мегабайтами оперативной памяти и жестким диском на 80 мегабайт, и с A/UX 2.0, за 7269 долларов;
  • Macintosh IIfx, 4/80, за 10 469 долларов.

В начале 1991 года вышел Macintosh IIsi, для поддержки которого выпустили A/UX 2.0.1. Это был, наверное, лучший из модульных Mac’ов эпохи 68030 – он стоил дешевле, чем IIci, но по производительности был где-то посередине между Mac IIci и Mac IIfx. За сколько “давали” IIsi с A/UX 2.0.1, я не знаю, но это был единственный вариант, который я время от времени использовал.

Очень многое (документация в типографском исполнении, X Window System, и т. п.), с одной стороны, считалось неотъемлемой частью системы, с другой – поставлялось за отдельную плату. На диске часть документации была, но только часть.

Кроме того, 4 мегабайта оперативной памяти для A/UX 2.0 были ничтожно малы. Да и диск в 80 мегабайт был забит служебными файлами системы почти под завязку. Это я к тому, что на приобретении системы (в любом виде) затраты не заканчивались. И обходилось все это в копеечку…

Продолжение следует. В следующих сериях — A/UX 2.0 и реальность, A/UX 3.0, MachTen (конкурент!) и Apple Workgroup Server.

После WWDC: затмение 1988 года

WWDC 1988 почти не оставила следов в “яблочных” СМИ того времени. Никаких загадок, в феврале того же года в Далласе состоялась конференция Uniforum, она и затмила WWDC. Apple и Unix, 30 лет назад?

Apple Computer объявила на Uniforum 1988 года собственную Unix-подобную операционную систему, A/UX. Архивраг Apple, прогресса и всего человечества, IBM, одновременно с Apple (в зале двумя этажами выше), объявила AIX, свою Unix-подобную систему. А еще, и это не ускользнуло от внимания журналистов, Apple и IBM проявили друг к другу особый интерес. Любовь?

“Отношения” IBM и Apple достойны поэзии и высокой прозы, в них было все. От ненависти до любви и обратно. Углубляться в эту тему не будем, отложим её до другого раза.

Uniforum 1988 года был очень важен и для Unix, превратив постепенное и почти невидимое широким компьютерным массам проникновение Unix и Unix-подобных систем в индустрию персональных компьютеров в открытое агрессивное вторжение.

Загадка рождения

Возникают вопросы.

Во-первых, в Apple Computer второй половины 80-х годов никто не занимался переносом Unix на Mac. Этим занимались разработчики операционной системы для BigMac, одного из самых любимых проектов Стива Джобса, но его уход поставил на этом проекте крест. Все, кто имел отношение к BigMac, в 1985 году или покинули Apple, или перешли в другие проекты. Откуда у Apple в 1988 году взялась пусть и сыроватая, но настоящая Unix-подобная система?

Во-вторых, руководство компании в это самое время еще не до конца понимало важность операционных систем для благополучия компании. Я сомневаюсь, что Джон Скалли знал о существовании Unix и Unix-подобных систем – не говоря уже о понимании им значимости этих явлений природы. Кто и когда дал команду и выделил финансирование?

С A/UX мне приходилось пересекаться не раз, но её происхождение и другие подробности её судьбы меня тогда не интересовали – жаль. Один из сотрудников компании, в которой я тогда работал, принимал участие в её создании, но он никогда не работал на Apple. Я мог бы столько всего узнать!

Но ответы на эти вопросы удалось найти и без полевого допроса свидетелей.

Начну с ответа на второй. A/UX – порождение кошмара, охватившего Скалли и его ближних соратников, когда ушедший в никуда и в депрессию Стив Джобс основал NeXT Software, а в индустрии пошли слухи о его намерении скрестить персональный компьютер с Unix.

На срочно созванном совещании было принято решение разгромить выскочку на его поле, создав свой, “правильный” Unix. С графическим пользовательским интерфейсом Mac’а, о котором и в самом деле (что бы ни понаписали в конце 90-х критики Apple) мечтали едва ли не все лидеры индустрии, и с не совсем понятными дилетантам, но многообещающими, по мнению экспертов, “сверхспособностями” Unix.

Для создания сверхоружия решили обратиться к специалисту, к компании UniSoft. С 1981 года до конца 90-х UniSoft зарабатывала на жизнь переносом Unix на разные платформы, у нее не было достойных соперников – и брала она за свои услуги недешево.

Кроме того, с 1985-го UniSoft разрабатывала для Open Group инструментарий для проверки соответствия Unix’ов стандарту X/Open. Другими словами, насколько тот или иной Unix на самом деле Unix. У Apple была (теоретическая) возможность заработать на федеральных программах, где на кону были огромные суммы, чтобы подступиться к ним, нужен был Unix с сертификатом о соответствии POSIX. До известия о планах Джобса это направление было закрыто, по причине неспособности компании получить такой сертификат, а тут все так удачно сложилось.

О чем и на каких условиях договорились Apple Computer и UniSoft, неизвестно. Судя по его результатам, за этот договор Apple Computer можно было бы смело поставить “неуд”. Для UniSoft это была задача, подобная десяткам уже выполненных, все подводные камни и всё, что могло случиться при её реализации, сотрудники UniSoft отлично знали, а репутация для них была очень важна.

По договору Unix-подобную систему с Mac’овским интерфейсом следовало завершить к июлю 1987 года. На UniSoft еще не были знакомы с взбалмошной дамой по имени Apple, и, скорее всего, именно из-за особенностей её характера и стиля ведения дел получилось то, что получилось.

С опозданием на 7 месяцев, A/UX 1.0 была объявлена на Uniforum 1988. Качество A/UX не соответствовало обычному для UniSoft настолько, что эта компания даже не пострадала. Все решили, что ей кто-то упорно и настойчиво мешал.

В те времена Apple отстаивала свои интересы, не считаясь ни с чем, даже с собственными интересами. Было такое, и не раз. Хотя в случае A/UX это только предположение. UniSoft сохранила подробности в тайне.

Презентация

В феврале 1988 года всем, кому это было интересно, показали чудо: на самом обычном Mac II, в обличье самой обычной System 6 (6.0.5), работал настоящий Unix. Сертификацию на звание Unix он бы не прошел, но это совершенно точно была Unix-подобная система, и овации собравшихся были уместны.

Основой A/UX стала System V, релиз 2.2, от AT&T. В конце 1988-го AT&T выпустила релиз 4, но, видимо, у UniSoft были какие-то серьезные причины использовать не самый новый релиз Unix’овой основы. В A/UX были включены элементы из SV5R3 и SV5R4 (Систем версии 5, релизов 3 и 4), и из 4.2BSD и 4.3BSD.

Виртуальная память, вытесняющая многозадачность, поддержка трех командных оболочек (Bourne, C и Korn; они же sh, csh и ksh) и многое другое. Настоящий Unix!

В одной из ближайших версий были обещаны полная совместимость со стандартом POSIX и реализация X Window System. Обещание было выполнено в A/UX 1.1, в 1989 году.

Во время демонстрации, как положено, острые углы были аккуратненько обойдены. A/UX сияла, возбуждала аппетит и надежды на волнующе прекрасное будущее. Apple в первых рядах!

Потребности “яблочного” Unix’а тоже впечатляли – он требовал как минимум 4 мегабайта оперативной памяти, для его установки требовался 80-мегабайтный диск. Естественно, для работы A/UX были необходимы процессор 68020 и PMMU-сопроцессор 68851 от Motorola.

Впечатляла и цена: за Mac II c 2 мегабайтами оперативной памяти (меньше минимальных 4 мегабайт – почему?), 12-дюймовым черно-белым монитором, 4-битной видеокартой и 80-мегабайтным жестким диском с установленной на нем A/UX 1.0 просили 8597 долларов 1988 года.

Если вычесть из 8597 долларов стоимость оборудования, цена A/UX получалась меньше тысячи долларов – коммерческие Unix’ы стоили раза в три дороже, поэтому впечатляющие цены не могли омрачить восторг.

Немного (и немногих) настораживали некоторые моменты демонстрации: например, никто и ни разу не показал несколько одновременно работающих Mac’овских приложений. И всё, что касалось Unix’а, показывали на одном Mac II, а Mac’овский интерфейс – на другом.

Когда A/UX 1.0 попала в руки жаждущих, все оказалось даже еще хуже.

Реальность

В 2 мегабайтах оперативной памяти A/UX едва могла дышать. В 4 мегабайтах даже самые элементарные задачи вызывали одышку и часто “крэшили” систему. Опытным путем было установлено, что минимальный объем оперативной памяти, при котором A/UX способна на что-то, – 8 мегабайт.

В режиме 24-битной адресации это максимальный размер оперативной памяти, которая может быть использована. Установить её можно и больше, но…

При 32-битной адресации максимальный объем оперативной памяти в 1988 году был почти бесконечным – 4 гигабайта! Нашлись даже умники, вычислившие, что оперативная память в 4 гигабайта нанесет непоправимый ущерб экологии земного шара. В Mac’е, на котором я пишу этот текст, оперативной памяти в два раза больше (прости меня, экология), этого мне еще и не хватает.

Другие умники (и я был в их числе) считали дурным тоном использовать для чтения и для изменения значений флажков блока памяти написанные для этого API. Где эти флажки располагались в “лишнем” байте адреса, знали все, даже, наверное, мой кот. Из-за этих умников экология была в безопасности, но в системе с 32-битной адресацией программы-нарушители тупо не работали.

А по-хорошему, A/UX 1.0 требовала 32 мегабайт. Или хотя бы 16. Тогда это изделие превращалось в работающее нечто. Но это все равно был “не айс”: в Unix’овой части число багов зашкаливало. Ни в одном из Unix’ов от UniSoft такого, скорее всего, не было. На их счету 225 переносов, о всех судить не могу. Если бы такое повторилось раза два или три, не было бы у них отличной репутации.

Но баги в Unix’е ерунда по сравнению с багами в “четвертой командной оболочке” A/UX, System 6. И не только с багами – с особенностями реализации, так сказать.

Для переключения между Unix’ом и System 6 надо было перезапускать компьютер. И горе вам, если вы при этом забыли сохранить незавершенное.

Одновременно могли работать только… Могла работать только одна программа для Mac’а, если повезет. Несмотря на наличие в системе MultiFinder, системной программы, с помощью которой в System 6 была реализована кооперативная многозадачность.

Вообще, в режиме System 6 глючило все, что только могло.

Для кого эта система?

Инициаторы создания A/UX, видя, с какой завистью смотрят конкуренты на графический пользовательский интерфейс Mac’ов, полагали, что Unix с таким интерфейсом станет если не бестселлером, то во всяком случае хорошенько потеснит всякие другие Unix’ы, в том числе и те, которые еще только должны выйти (NeXT).

Увы. В те времена даже Стив Джобс ошибался чаще, чем допустимо. А уж Скалли…

Пользователям Unix A/UX был интересен, но скорее как курьез. Они прекрасно обходились без Mac’овского интерфейса, и платить за него лишнее никто не хотел. К тому же Unix-станции были в разы производительнее (раза в два, как минимум) и, как правило, стоили дешевле, чем Mac’и в аналогичной конфигурации.

Для обычных пользователей Mac’ов это был явный перебор. Столько лишних сложностей и лишних ограничений – и ничего реально полезного взамен.

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

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

Во время презентации Скалли сообщил, что в Apple уже готовы 100 000 комплектов с A/UX 1.0 для продажи. Сомневаюсь, что все эти комплекты нашли покупателя. Данных об объемах продаж этой системы нет. Во всяком случае, я их не нашел. Хорошо, если тысяч 10 смогли продать или подарить.

Первой реально продаваемой версией стал A/UX 2.0.

Продолжение следует. В следующих сериях A/UX 2.0, A/UX 3.0, MachTen (конкурент!) и Apple Workgroup Server.

Ультиматум и штурм в Apple

В конце 80-х в одной из групп Apple Computer случился бунт. Он завершился штурмом и привел к серьезным изменениям в политике компании.

В 1997 году, без самоотверженного вмешательства Джобса, Apple Computer прекратила бы свое существование. Вскрытие выявило бы множественную патологию, ошибок компания совершила очень много, но непосредственная причина конца была бы очевидна: в конце 90-х у компании не было ни “современной” операционной системы, ни надежды сколько-нибудь быстро подобную систему заиметь.

Примерно за 10 лет до этого у компании, если не в руках, то на расстоянии вытянутой руки, такая система уже была. Цель была сформулирована, реальна, и это было то самое “следующее великое нечто”, о котором мечтали все инженеры Apple.

Предыстория

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

С 1984 по 1988 год в операционную систему Mac’а были вложены сотни тысяч человеко-часов квалифицированного труда, её научили работать с разными процессорами, с периферией сторонних производителей, добавили в неё десятки остроумных изобретений, но по сути это была все та же операционная система самого первого Mac’а.

Вместо прорывов и инноваций, изменения мира и “следующего великого нечто” инженеры занимались рутинной и не слишком увлекательной работой. А инженеры Apple – особая каста. Работать в компании мечтали очень многие, был конкурс и очень жесткий отбор. Люди (талантливые и амбициозные) стремились сюда, чтобы принять участие в чем-то великом.

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

Уходящие подписывали NDA (обязательство неразглашения) и обещание не работать в конкурирующих компаниях в течение полгода или года, за что им выплачивалась денежная компенсация. Отделение Macintosh System Software превратилось в институт повышения квалификации и самооценки.

Но не только неудовлетворенные амбиции и скука были причиной брожения в коллективе, в 1988 году операционная система Mac’ов уже отставала от Unix’ов и OS/2 по важнейшим параметрам, а от знакомых, ушедших в NeXT, люди были в курсе о “следующем великом нечто”.

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

Нельзя сказать, что об этом не задумывались. Жан Луи Гассé расписывал стратегию создания новой компьютерной платформы, на смену Mac’ам должны были прийти Ягуары, двух совместимых по железу и программному обеспечению, но различных по назначению пород, для профессионалов и для широких масс, в ценовых диапазонах от 999 до 9999 долларов.

Mac сделал свое дело, Mac должен уйти. На вершине компании свирепствовали буйные фантазии, близость к звёздам мешала трезво оценить происходящее. Никто еще не знал толком, как управлять большими компаниями в молодой компьютерной индустрии, так что ни Скалли, ни Жан Луи… ни в чем не виноваты. Это судьба.

В 1988 году, когда разработка System 6 была завершена и вот-вот должна была выйти на арену, под аплодисменты и улюлюкание публики, случилась эта история.

Бунт и “банда пятерых”

Оуен Линзмайер упоминает в Apple Confidential 2.0 об этой истории, не слишком подробно, а сообщаемая им дата (март 1987) опровергается свидетельствами её участниками и, что даже еще важней, временем выхода System 6. Самой лучшей и совершенной операционной системы Mac’ов раннего классического периода.

Выполнив свой долг, пять нерядовых инженеров из Macintosh System Software предъявили руководству компании ультиматум, текст которого вручили, для передачи наверх, главе отделения Гиффорду Календе и его заместителю Шейле Брейди. Они не просили, они угрожали и ставили условие: либо они уходят из компании, либо компания вырабатывает стратегию создания развития операционной системы и начинает работать над ней.

Гиффорд и Шейла оценивали бунтовщиков очень высоко и считали, что их уход нанесет Apple труднопоправимый ущерб. И, проинформировав Скалли и Жана Луи (руководителя всех проектов в компании, своего непосредственного начальника), пообещали проблему решить.

Если вы когда-нибудь смотрели телевизор (или видео), вы знаете, как руководство больших корпораций “решают” вопросы. Примерно так все и было.

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

Сначала самого высокопоставленного из бунтарей (Эриха Рингевальда) пригласили к Жану Луи, “на ковер”. Во время разговора к ним заглянул Скалли. И…

Штурм

Жан Луи Гассé организовал для менеджеров и ведущих инженеров Macintosh System Software, а также для их семей выезд на тихоокеанское побережье, снял (целиком) отель и вечером, в одном из конференц-залов, состоялся мозговой штурм. Классический прием поиска решений сложных проблем, с конца 30-х годов прошлого века, когда этот метод был придуман одним из основателей BBD&O Алексом Осборном, каждый год такие штурмы проводятся тысячи тысяч раз, но этот штурм оставил след в истории.

Роль комиссии по разбору и оценке предложений исполнили Жан Луи Гассé, Гиффорд Календа и Шейла Брейди. Штурмовикам раздали стопки стандартных отельных карточек небольшого размера и трех цветов (всех цветов, которые были в ходу в отеле) – голубые, розовые и красные.

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

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

В синей системе (Blue) предлагалось реализовать виртуальную память, многозадачность (кооперативную), векторные шрифты (хотя бы и PostScript, но лучше свои собственные), коммуникация между разными приложениями (Publish и Subscribe, если кто-то помнит о них), 32-битную адресацию и много других интересных вещей. По мнению участников и комиссии, на разработку синего проекта требовалось два года. Другими словами, 1990.

В розовой системе (Pink) предполагалась уже вытесняющая многозадачность, микроядро, поддержка легких потоков (threads) на уровне этого ядра, виртуальная память с защитой памяти, графические библиотеки нового поколения и многое еще. Система должна была быть объектно ориентированной (как NeXTSTEP и все операционные системы наших дней). Её разработка должна была завершиться выходом на рынок новой системы (System 8) в 1992 или 1993 году.

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

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

По итогам этого события, в Macintosh System Software появились группы Blue (несколько сотен человек) и Pink (20 человек, самых продвинутых и увлеченных), и работа закипела.

System 7 (Blue)

Синяя команда провела еще с десяток мозговых штурмов, проект системы (которую назвали Big Bang – тот самый “большой взрыв”, с которого началась история вселенной) был амбициозен и реалистичен.

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

Система получалась намного более требовательной к размеру оперативной памяти, но это обстоятельство было признано приемлемым. Тем более что прогресс не стоял на месте, а полная 32-битная адресация, одна из особенностей Big Bang, могла поддерживать почти безграничные её объемы – до 4 гигабайт. В 1988-м это было фантастикой. Казалось, что до этого не дойдет никогда.

Алиасы (псевдонимы), базовая поддержка сетевых технологий и файл-шеринга добавились в процессе реализации.

На WWDC 1989 года новая система была представлена публике, но стала новостью номер один в Mac’овской и в анти-Mac’овской прессе. На конференции показывали действующую раннюю версию System 7, впечатление от этих демонстраций было потрясающим.

Скалли пообещал, что система выйдет на рынок в первом квартале 1990 года – для человека с Восточного побережья, воспитанного в строгих традициях ведения бизнеса, это было естественно. В 1988 году руководители Macintosh System Software пообещали выпустить систему в 1990-м, значит, так и должно быть.

В 1991 году новая система (точнее, её ранняя бета-версия, в которой еще не все новшества работали) была насильно установлена на всех Mac’ах в компании (и её дочерней компании Claris). Люди мучились от её нестабильности, выявляли баги в самых неожиданных местах, проявляли несдержанность (мне рассказывали жертвы этого садистского эксперимента), и в 1992 году, устав от стонов и жалоб, руководство компании разрешило всем желающим, за исключением тех, кто работал в Macintosh System Software, вернуться к старой доброй “шестерке”…

За очень редким исключением все остались в System 7. Тем более что с каждым месяцем она становилась надежнее, а настоящие боевые инженеры-разработчики, исполнявшие роль технической поддержки, прибегали по первому требованию и справлялись с самыми трудными проблемами. А жалобы даже записывали на диктофон.

Кажется, в 1991 году, когда Microsoft ответила на объявление System 7 обещанием новой операционной системы, с кодовым наименованием Chicago, у System 7 появилось еще одно кодовое наименование – Capone. В честь Аль Капоне, известного гангстера, который держал в страхе весь Чикаго.

Система вышла 13 мая 1993 года. Она распространялась на CD ROM или на 15 дискетах ёмкостью в 1,44 М. Ей суждено было оставаться главной операционной системой Mac’ов до начала нашего века.

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

Mac OS 9 тоже была System 7, на этот раз переименовали для красоты, и чтобы MacOS X (это “десять”, а не “икс”!) выглядела очередной версией.

System 8 (Pink)

А вот с System 8 с самого начала что-то не задалось. Из-за параноидальной секретности, о происходящем в других компаниях разработчики группы были информированы лучше, чем о других проектах на Apple.

Объектно ориентированные операционные системы разрабатывали в командах Newton и PocketCrystal, над графикой следующего поколения (QuickDraw GX и QuickDraw 3D) тоже уже работали, все проблемы и сложности приходилось решать самим – и до 1990 года почти ничего не удалось достичь.

Трое из бывшей банды пятерых вскоре ушли из компании.

А высшее руководство компании, усвоив, что операционные системы – это важно и очень престижно, и решив, что операционные системы от Apple должны завоевать все мировые платформы, принялось воплощать свои наполеоновские замыслы.

В 1990 в команду пришли сотни людей, и через два года ранняя, но очень неплохая, её бета-версия уже производила впечатление. Её показали инженерам IBM, она работала на компьютере с процессором Intel – и началась другая история.

Совместно с Novell была разработана еще одна операционная система на основе Pink, StarTrek.

Все это было увлекательно, читать новости “с полей” было захватывающе интересно, но никто не догадался продумать свои планы хотя бы на два шага вперед. К чему это все могло привести, аналитики писали с самого начала. Но…

В результате труд сотен человек был развеян по ветру. Apple утратила все свои наработки по новой системе, и в 1995 году пришлось все начинать сначала. Mozart (7.5), Copland (8.0) и Gershwin (9.0).

Но это уже другая история.