Миллиардер из Кремниевой долины. История соучредителя Microsoft - Аллен Пол. Страница 15
Программисты составляли дружный, хоть и пестрый коллектив – от классических корпоративных служащих в белых рубашках с коротким рукавом и галстуках-«бабочках» до разгильдяйского вида Боба Барнетта, ветерана Вьетнама, который все растолковывал нам с видом чокнутого профессора. Билл получал маленькие задания, а мне сразу дали крупное поручение – разработать восстанавливающий модуль, чтобы сделать новую автоматическую систему безотказной (когда речь идет о производстве энергии для миллионов потребителей, остановка станции – не вариант). Если первичная PDP-10 даст сбой, моя система должна скомандовать резервному компьютеру взять управление.
Стараясь обезопасить себя от случайностей, TRW проводила всевозможные экстремальные испытания – например, проверялось, как повлияет серьезное короткое замыкание на компьютеры под землей. Присоединив стальной кабель сечением в четверть дюйма к линии 250 киловольт и к вкопанному в землю столбу, мы пошли смотреть, кто повернет рубильник. Внезапный жуткий треск заставил нас подпрыгнуть. Кабель превратился в полоску испарившейся стали и исчез. Компьютеры, к счастью, продолжали работать.
– Ух ты, – воскликнул я. – Вот это да!
На что менеджер TRW заметил:
– Нет, «ух ты» было, когда Джо забыл опустить люльку на ремонтной машине и въехал в линию электропередачи.
– И что с ним?
– Искры – дождем, шины в землю вплавились, – рассказал менеджер. – А Джо просто очумел. Но с ним все в порядке – грузовик сработал как клетка Фарадея.
(В 1830-е годы британский физик Майкл Фарадей показал, что электрический ток, протекая по поверхности проводящей структуры, не оказывает влияния на внутреннюю область.)
Ребята из TRW захохотали, а я подумал: «Господи, вот это уже серьезное электричество!»
Бок о бок с чудными работниками, в лишенных солнечного света подвалах, я порою чувствовал, что попал в очень странное место.
Мы с Биллом были младшими в группе и, естественно, получали меньше всех, но Боб и остальные начальники не давали нам ни малейшей поблажки. Работая над RODS, мы убедились, что не уступаем лучшим местным программистам. Мне пришлось написать тысячу строк на Ассемблере – не слишком тяжелая работа, но достаточно хитрая. Два других программиста пытались меня обойти, однако их программа не справлялась с «критическими случаями» вроде одновременного отказа двух и более устройств. Я с самого начала писал структурированно и с полными комментариями, как привык в CCC. Я долгие часы проводил, проверяя написанное, – в программе не должно было быть ошибок. Впервые в жизни я писал прямо на работающей операционной системе. И мне очень понравилось.
Мы с Биллом, свободные от школы и от требований семьи, радостно ныряли в программирование и тестирование – циклы проверки занимали по 12 часов и больше. Мы оба от природы были «совами» – работоспособность достигала пика в десять-одиннадцать вечера и оставалась на уровне еще долго. Когда требовалось найти последнюю ошибку, мы не обращали внимания на время. Если Билл чувствовал, что слабеет, он хватал банку растворимого напитка «Танг», сыпал немного порошка на ладонь и слизывал, получая чистый сахарный кайф (в то лето его ладонь приобрела устойчивый оранжевый оттенок). Мы могли проработать двое суток кряду, а потом рухнуть часиков на восемнадцать – двадцать. Билл называл это «успаться».
Но сон был не главным. Необходимо было закончить работу для Лейксайда к началу семестра, и ночная смена в RODS казалась нам идеальным решением. Программа школьного расписания сильно нагружала центральный процессор, и порой Боб Барнетт, зайдя вечерком, обнаруживал, что PDP-10 ползает со скоростью улитки. Он топал ногами и кричал, изображая негодование:
– Гейтс и Аллен, вы где прячетесь? Немедленно выключите свое расписание!
Если я не писал программы, я играл на акустической гитаре дома или слушал последние новости по поводу Уотергейта. Вечерние и ночные развлечения в Ванкувере сводились в основном к «классическому завтраку» у Дэнни, нашей главной еде в три утра: яйца, бекон, блин, картофельные оладьи. Чтобы добавить острых ощущений, Билл ездил с Бобом на собачьи бега в Грешеме; они выбирали, на кого ставить, по номерам машин на стоянке. Я несколько раз съездил в Портланд Мидоуз – Боб от надежных людей слышал о жеребце Ред Робби, совершенно безнадежном на дистанции в четверть мили. Однажды его выставили на длинную дистанцию, и Боб уговорил нас рискнуть нашими кровными. Ред Робби, как всегда, неспешно трусил последним, затем, к середине дистанции, набрал ход и пришел первым. Мы сорвали солидный куш.
Мы с Биллом постоянно ходили в кинотеатр на северо-востоке Портленда на фильмы «про черных». Мы с восторгом смотрели «Суперфлай» и подобные, пока однажды кто-то не подкатил к нам во время заключительных титров:
– А чего тут делают белые парни?
Нас выкинули, но через неделю мы вернулись. Эти фильмы казались нам захватывающими.
Живя в одной квартире с Биллом, я открыл в нем нечто новое. Моя мама по-своему называла адреналиновых наркоманов, людей, любящих риск ради риска.
– Это человек, – говорила она, – ходящий по краю.
Билл Гейтс ходил по краю. Он гордился, что как-то ночью на своем «Мустанге» сделал сто шестьдесят миль от Сиэтла до Ванкувера меньше чем за два часа, вдавив педаль в пол. Я сторонился физической опасности, а Билл, казалось, наслаждался ею. Однажды он появился на пороге с загипсованной ногой. Я спросил, что случилось.
– Катались на водных лыжах с Барнеттом, – ответил Билл.
Они с обеда поехали на озеро Лакамас. По словам Барнетта, он сделал последний круг и собрался возвращаться в RODS, но Билл решил проехать еще раз – на одной лыже. Второпях он и не подумал подогнать оборудование – а это важно, если желаешь прыгать на волнах от катера. Билл упал и сломал ногу; врачи сказали, что ему придется на шесть недель отправиться в Сиэтл лечиться. Билл объявился в Ванкувере – с синей ногой, но без гипса, – через три.
– Я поеду кататься на водных лыжах с Бобом, – заявил он.
Отговорить его мне не удалось. Нога каким-то образом осталась цела.
В основном мы жили довольно дружно, но иногда Билл раздражался, особенно за шахматной доской. Я играл более системно и пользовался строгими дебютами; Билл агрессивно импровизировал. Как-то, проиграв, он от злости смахнул фигуры на пол и закричал:
– Это был самый идиотский ход в моей жизни!
После нескольких подобных случаев мы вовсе перестали играть.
Определившись с подходом, я мог настрочить код для системы управления достаточно быстро. Слабым звеном оказался глючный модуль связи, который не позволял протестировать мою программу в реальном времени, пока я не вернулся осенью в штат Вашингтон (RODS официально запустят лишь через год с лишним, в декабре 1974-го, после бесчисленных штрафов со стороны TRW). До моего отъезда я успел получить одобрительный отзыв от Джона Нортона, легендарного системного программиста, объявившегося однажды с инспекцией. Нортон мог взять пачку распечаток в дюйм толщиной, проглотить все за день и отложить в сторону. После этого, стоило обратиться к нему с вопросом, он прикрывал глаза и говорил:
– Посмотри 57-ю страницу, там нужная подпрограмма.
Когда моя работа выдержала его проверку, я был счастлив.
В свободное время я продолжал работать с симулятором Traf-O-Data. Центральный процессор PDP-10 весил почти тонну, но для моей программы он должен был действовать как чип размером с полпачки жвачки. Для начала мне нужно было определить набор примерно из трех десятков «макросов» – словесных команд, которые должны генерировать управляющие байты для процессора Intel 8008. За несколько дней я провел успешную «пересадку мозгов». Ассемблер PDP-10 не догадывался, что стал теперь Ассемблером для 8008-го.
Следующим шагом было создание собственно симулятора – программы, которая заставит работать «пересаженные мозги». Симулятор, написанный на Ассемблере для PDP-10, будет имитировать команды микрочипа. Программирование шло гладко; словно все, что я усвоил в CCC и Information Services Inc., вело меня к этой точке. К счастью, я мог завершить мое недельное задание от Боба Барнетта за двадцать часов и переключиться на Traf-O-Data. После недели упорных трудов все было готово.