То есть я хочу сказать софтверной. Не так уж мы много играли в софтбол: ни одна лига Кремниевой Долины не хотела нас принимать, пока мы не скажем, чем занимаемся.
Не знаю, насколько компания Transmeta известна. Сейчас, когда я печатаю этот текст, мы сидим тихо в ожидании выхода на биржу (пожалуйста, ради бога, купите наши акции), то есть период секретности уже миновал, но теперь мы вынуждены молчать, подчиняясь правилам Комиссии по ценным бумагам и биржам в отношении первоначального выпуска акций в открытую продажу. Будем надеяться, что к моменту выхода этой книги каждая собака будет знать о компании Transmeta и купит себе парочку наших (внушение на уровне подсознания: АКЦИЙ) процессоров. Потому что Transmeta делает именно их – процессоры. Железо.
Но Transmeta выпускает не просто железо. И это очень хорошо, потому что, честно говоря, я в упор не отличаю транзистор от диода. Transmeta делает простое железо, которое опирается на хитрое ПО, так что элементарный ЦП прикидывается гораздо более сложным – например, стандартным Intel-совместимым х8б. А чем меньше и проще становится железо, тем меньше транзисторов содержит ЦП, а следовательно, он потребляет меньше энергии – что, как всем понятно, становится все важнее в нашем мобильном мире. Из-за своего хитрого ПО Transmeta нужна большая команда программистов, и я в том числе.
Меня все это очень устраивает. 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? Я не видел в ней ничего интересного. И я не ставил целью своей жизни завоевание рынка настольных компьютеров. (Сейчас дело идет именно к этому, но я никогда не ставил себе такой цели.)