Меня все это очень устраивает. Transmeta, во-первых, не специализируется на Linux, а во-вторых, занимается интересными техническими штучками (и это еще слабо сказано: я до сих пор не слышал о другой компании, которая бы всерьез попыталась сделать что-то похожее). Причем в области, которую я знаю досконально: низкоуровневое программирование совершенно специфического семейства процессоров 80x86. Как вы наверняка помните, я затеял разработку Linux в первую очередь для того, чтобы разобраться в процессоре своего первого PC.
То, что Transmeta не была Linux-компанией, тоже было для меня очень важно. Поймите меня правильно: мне нравилось решать проблемы Transmeta с Linux и участвовать во внутренних проектах на базе Linux. (Сейчас, пожалуй, невозможно найти серьезную технологическую компанию, в которой не было бы таких проектов.) Но Linux для Transmeta была на втором плане – именно к этому я и стремился. Я мог продолжать работать над Linux, но при этом мне не приходилось идти на технические компромиссы в интересах компании и в ущерб самой Linux. Я мог по-прежнему рассматривать Linux как хобби, руководствуясь в своих решениях только стремлением к техническому совершенству.
Итак, днем я работал в Transmeta. Я писал и обслуживал интерпретатор х86, который мы и сегодня используем (хотя обслуживают его теперь другие). Интерпретатор по существу является составной частью программного обеспечения Transmeta: его задача брать команды Intel одну за другой и выполнять их (т. е. покомандно интерпретировать язык архитектуры 80x86). Позже я занялся другими вещами, но тогда я впервые столкнулся со странным и восхитительным миром эмуляции аппаратных средств.
По ночам я спал.
Мое соглашение с Transmeta было недвусмысленным: я имел право заниматься Linux даже в рабочие часы. И поверьте: я полностью этим правом пользовался.
Многие люди готовы подолгу работать в две, три или даже четыре смены. Ко мне это не относится. Ни Transmeta, ни Linux никогда не могли помешать мне хорошенько выспаться ночью. По правде сказать, я вообще большой фанат сна. Некоторые думают, что это просто лень, но я готов забросать их подушками. У меня есть совершенно неотразимый аргумент, и тут меня не собьешь: если спать, например, по десять часов в сутки, то можно потерять на этом несколько рабочих часов, но зато во время бодрствования вы будете в форме и ваш мозг будет работать на полную катушку. А то и на две.
IV
Добро пожаловать в Кремниевую Долину. В этой странной галактике мне сразу пришлось столкнуться со звездами.
Я получил мейл от секретаря Стива Джобса о том, что тот будет рад со мной встретиться, если я смогу уделить ему час-другой. Я ответил: конечно, хотя и не понимал, к чему бы это.
Встреча состоялась в штаб-квартире Apple в аллее Бесконечного цикла. Меня встретили Джобе и его главный технарь Эви Теванян. В то время Apple как раз начала работать над OS X, операционной системой на базе Unix, которую им удалось закончить только к сентябрю 2000-го. Встреча проходила неформально. Сначала Джобе пытался меня уверить, будто в области настольных компьютеров есть всего два игрока: Microsoft и Apple, и что для Linux, будет лучше всего, если я подамся в Apple и привлеку сообщество, работающее с открытыми исходниками, к созданию Mac OS X.
Я продолжал разговор, потому что мне хотелось побольше узнать об их новой операционной системе. В ее основе лежит микроядро Mach, разработанное в Университете Карнеги – Меллона. В середине 90-х ожидалось, что Mach станет венцом операционных систем, и многие им интересовались. На самом деле IBM и Apple использовали Mach как основу своей злополучной совместной операционной системы Taligent.
Джобе особо упирал на то, что низкоуровневое ядро Mach является открытым. Тут он несколько блефовал: какой толк от того, что базовая операционная система – слой нижнего уровня – открыта, если над ней лежит Mac-уровень и он закрыт?
Понятно, Джобе не знал, что сам я невысокого мнения о микроядре Mach. Если честно, я считаю его полной мурой. Оно содержит все конструктивные ошибки, какие только можно придумать, и еще некоторые сверх того. Одним из аргументов против микроядер всегда была их низкая производительность. Поэтому существовало множество исследований для определения того, как заставить микроядро по-настоящему хорошо работать. Все полученные рекомендации были воплощены в Mach. В результате получилась очень сложная система со своими собственными законами. Но она все равно была не слишком эффективной.
Эви Теванян работал над Mach еще на стадии университетского проекта. Мне было интересно обсудить проблемы, волновавшие их со Стивом. В то же время мы принципиально расходились по техническим вопросам. Я не видел смысла для специалистов по открытым исходникам и Linux ввязываться в это дело. Конечно, я понимал, зачем они хотели привлечь разработчиков открытого ПО к своей системе: они видели огромный потенциал Linux-сообщества. Не думаю, впрочем, что они осознавали его полностью. Вряд ли Джобе понимал, что у Linux потенциально больше пользователей, чем у Apple, хотя пользовательская база у них и разная. И вряд ли Стив так же решительно отмел бы Linux в качестве операционной системы для настольных компьютеров сегодня, как сделал это три года назад.
Я объяснил, чем мне не нравится Mach. Легко понять, что это не вызвало у моих собеседников энтузиазма. Безусловно, они и раньше слышали эти аргументы. Я был явно зациклен на Linux, а Теванян – на Mach. Было интересно послушать их рассуждения о технических вопросах. Одна из очевидных для меня проблем заключалась в поддержке новой операционной системой старых Mac-приложений. Они планировали справиться со всеми старыми программами с помощью уровня совместимости. Все старые приложения должны были работать с помощью нового дополнительного процесса. Но один из главных недостатков старой Mac-системы – это отсутствие защиты памяти, а такое решение его никак не устраняло. Получалось, что защита памяти будет реализована только для новых приложений. Мне это казалось бессмысленным.
Наши взгляды на мир расходились кардинально. Стив был Стивом, точно таким, каким его рисует пресса. Он был поглощен своими целями, в особенности маркетингом. Меня интересовала техническая сторона и не очень волновали ни его цели, ни аргументы. Основной его аргумент был в том, что если я хочу завоевать рынок настольных компьютеров, то должен объединить силы с Apple. А мне это было до лампочки. Зачем мне нужна Apple? Я не видел в ней ничего интересного. И я не ставил целью своей жизни завоевание рынка настольных компьютеров. (Сейчас дело идет именно к этому, но я никогда не ставил себе такой цели.)
Его аргументация не блистала разнообразием. Он просто считал само собой разумеющимся, что я буду заинтересован. И оказался в тупике – у него в голове не укладывалось, что кого-то может совершенно не волновать увеличение рыночной доли Маков. Похоже, он был искренне поражен, как мало меня волнует размер рынка Маков и размер рынка Microsoft. И его трудно винить в том, что он не знал заранее, как сильно я не люблю Mach.
Но хотя мы разошлись с ним почти во всем, мне он в общем-то понравился.
Потом я впервые встретил Билла Джоя. Или, точнее, ушел со встречи с ним.
Честно говоря, когда я его встретил впервые, то не знал, кто это. Дело было на предварительном показе Jini. Jini – это созданный Sun Microsystems язык агента взаимодействия, расширение Java. Он обеспечивает гладкое сетевое взаимодействие совершенно разных систем. Если у вас есть принтер с поддержкой Jini, то любое устройство, включенное в ту же сеть и говорящее на Jini, сможет автоматически его использовать.
Sun Microsystems пригласила меня вместе с дюжиной других представителей движения открытых исходников и технических специалистов на закрытый предварительный показ, который происходил в одном из центральных отелей Сан-Хосе во время выставки Java World. Почему нас позвали – они использовали для Jini то, что в Sun Microsystems считается открытыми исходниками.
Когда я туда шел, я вообще-то знал, что там будет Билл Джой. Он был ведущей фигурой в разработке BSD Unix, a позднее стал в Sun главным научным специалистом. До этого мы с ним не встречались. А тут он подошел ко мне и сказал, что он Билл Джой, а я как-то не среагировал. Я пришел туда не для встречи с ним, а чтобы узнать, что думает Sun по поводу открытых исходников и как они собираются их использовать. Через несколько минут Билл стал сам объяснять причины, по которым они остановились на открытых