Было поставлено два условия: когда компьютер зависал, нужно было подробно описать, что они для этого сделали, и повторять эти действия было нельзя, пока их снова не попросят. По словам Гейтса, их наняли для поиска ошибок, как дрессированных обезьянок. “Мы должны были выжать из компьютера максимум, просто гонять его на полной мощности”. У PDP-10 было три магнитных ленты, и удальцы из Лейксайда нагружали компьютер так, что работали все ленты сразу, а затем запускали с десяток программ, чтобы задействовать как можно больше оперативной памяти и вывести машину из строя. Гейтс считал это крайне глупым занятием20. Они испытывали системы PDP-10 на прочность, а взамен могли сколько угодно долго писать на нем свои программы. Они создали электронную версию игры “Монополия”, где число, выпадающее на кубиках, определял генератор случайных чисел. Гейтс не отказал себе в удовольствии и разработал сложную военную игру — он очень почитал Наполеона, тоже блестящего математика. “В ней ты получал армии, которые должны были сражаться, — вспоминает Аллен. — Программного кода к игре было так много, что понадобилось бы 50 метров бумаги для телетайпа, чтобы его распечатать”21.
На автобусе друзья доезжали до C–Cubed и целые вечера и выходные проводили у компьютерного терминала. “Я крепко подсел, — рисуется Гейтс. — Мы оттуда не выходили целыми сутками”. Они программировали, пока не начинали умирать от голода, а затем переходили улицу и шли в хипповое местечко Morningtown Pizza. Гейтс помешался. Его комната была ровным слоем завалена одеждой и распечатками с кодом. Родители пытались установить в доме “комендантский час”, но не помогло. “Трей был настолько увлечен, что иногда после отбоя убегал из дома через дверь в подвале и всю ночь программировал”22, — рассказывает Гейтс-старший.
Их куратором от C–Cubed стал не кто иной, как Стив “Слаг” Рассел, ироничный и талантливый программист, который во время учебы в МТИ написал игру Spacewar. Теперь он передавал эстафетную палочку молодежи. Расселу приходилось постоянно напоминать Гейтсу и Аллену, что нельзя повторять действия, из-за которых компьютер завис, до того, как им будет разрешено23. Но они не всегда сдерживались. “Когда я к ним заглядывал, то получал вопрос или десяток вопросов, а я из тех, кто отвечает на все очень обстоятельно”24, — вспоминает Рассел. Особенно его удивляло, что Гейтс угадывал, какой из программистов DEC просчитался. Обычно его сообщения об ошибках звучали так: “В этой строчке кода у мистера Фаболи опять та же самая ошибка — он не проверял состояние семафора при смене статуса. Если вот сюда добавить эту строчку, то все заработает”25.
Гейтс и Аллен осознавали всю важность операционной системы — она выполняла роль нервной системы компьютера и отвечала за логистику. Это позволяло центральному процессору производить вычисления, переключаться между программами, записывать данные в память компьютера, передавать и получать информацию через модем или дисководы и печатать документы. Операционная система для PDP-10 называлась TOPS-10, и Рассел принес приятелям руководства к ней. Их нельзя было брать домой, поэтому друзья часто засиживались в C–Cubed до утра.
Гейтс понял, что они не смогут понять все тонкости работы операционной системы без исходного кода и комментариев к нему, в которых разработчики описывают смысл каждого действия. Но эта информация была доступна только главным программистам компании, а никак не школьникам из Лейксайда. Это делало запретный плод еще слаще. Однажды на выходных они выяснили, что рабочие распечатки с кодом выбрасываются в мусорный контейнер на заднем дворе здания. “Гейтс весил килограммов пятьдесят, не больше”, — думал Аллен, поэтому он решил его подсадить, сложив руки в замок. Гейтс нырнул в контейнер и принялся рыться в офисном мусоре. Наконец, он нашел пачку испачканной и сложенной в гармошку бумаги. “Мы отнесли драгоценные распечатки в комнату с терминалом и часами внимательно их изучали, — говорит Аллен. — Розеттского камня[83] у меня не было, поэтому я понимал максимум одну или две строчки кода из десяти, но я все равно был в полном восторге от того, как компактно и элегантно написан код”.
Получив часть мозаики, Гейтс и Аллен захотели погрузиться еще глубже, понять архитектуру операционной системы. Для этого было необходимо изучить язык ассемблера, разобраться с базовыми командами вроде Load B. Add C. Store in A, которые понятны непосредственно машине. “Рассел приметил мой новый интерес и со словами: «Ты должен это прочесть» протянул мне документацию по ассемблеру в блестящей пластиковой обложке”26, — вспоминает Аллен. Они с Гейтсом проштудировали весь текст, но поняли не все. Тогда Рассел принес им другое руководство со словами: “А теперь вам нужно прочесть вот это”. В итоге они стали хорошо разбираться как в базовых вещах, так и в тонкостях. Это сочетание позволяло писать эффективный и элегантный код для операционной системы.
Когда все ошибки в PDP-10 были устранены и система была признана стабильной, клуб из Лейксайда больше не мог пользоваться компьютером бесплатно. “Они как будто сказали: «Обезьянки, всем спасибо, все свободны»”27, — говорил Гейтс. Им немного помог “Клуб матерей Лейксайда”, который оплачивал юным программистам часы на удаленном компьютере, однако имелись ограничения по времени и потраченной сумме. Гейтс и Аллен понимали, что им никак не уложиться в отведенный лимит, и решили обмануть систему. Друзья получили доступ к внутреннему файлу школьной бухгалтерии, взломали защиту и узнали пароль администратора, при помощи которого бесплатно подключались к PDP-10. Но их поймали еще до того, как они успели натворить дел: учитель математики нашел у них распечатку с логинами и паролями. Новость об их проказе дошла до самых высоких начальников в C–Cubed и DEC, и в школе в кабинете директора прошла серьезная встреча с участием представителей обеих компаний. Гейтс и Аллен приняли максимально виноватый вид и изображали глубочайшее раскаяние, но это не помогло. Им запретили входить в систему до конца семестра и все лето.
“Я немного отвлекся от компьютеров, попробовал побыть нормальным, — говорит Гейтс. — Я решил доказать всем, что могу получить пятерки по всем предметам, даже не открывая учебник. Вместо этого я читал биографию Наполеона и романы вроде «Над пропастью во ржи»”28.
Почти год “Клуб программистов Лейксайда” находился в спячке. Осенью 1970 года школа стала покупать рабочее время на PDP-10 у компании Information Sciences, Inc (ISI) в городе Портленд, штат Орегон. Стоило это дорого, пятнадцать долларов в час. Гейтс и его друзья быстро нашли способ подключаться к компьютеру бесплатно, но их опять поймали. Тогда они отправили в ISI письмо, в котором предлагали свои услуги взамен на возможность работать на PDP-10.
(adsbygoogle = window.adsbygoogle || []).push({});