Их куратором от C–Cubed стал не кто иной, как Стив «Слаг» Рассел, ироничный и талантливый программист, который во время учебы в МТИ написал игру Spacewar. Теперь он передавал эстафетную палочку молодежи. Расселу приходилось постоянно напоминать Гейтсу и Аллену, что нельзя повторять действия, из-за которых компьютер завис, до того, как им будет разрешено[721]. Но они не всегда сдерживались. «Когда я к ним заглядывал, то получал вопрос или десяток вопросов, а я из тех, кто отвечает на все очень обстоятельно»[722], — вспоминает Рассел. Особенно его удивляло, что Гейтс угадывал, какой из программистов DEC просчитался. Обычно его сообщения об ошибках звучали так: «В этой строчке кода у мистера Фаболи опять та же самая ошибка — он не проверял состояние семафора при смене статуса. Если вот сюда добавить эту строчку, то все заработает»[723].
Гейтс и Аллен осознавали всю важность операционной системы — она выполняла роль нервной системы компьютера и отвечала за логистику. Это позволяло центральному процессору производить вычисления, переключаться между программами, записывать данные в память компьютера, передавать и получать информацию через модем или дисководы и печатать документы. Операционная система для PDP-10 называлась TOPS-10, и Рассел принес приятелям руководства к ней. Их нельзя было брать домой, поэтому друзья часто засиживались в C–Cubed до утра.
Гейтс понял, что они не смогут понять все тонкости работы операционной системы без исходного кода и комментариев к нему, в которых разработчики описывают смысл каждого действия. Но эта информация была доступна только главным программистам компании, а никак не школьникам из Лейксайда. Это делало запретный плод еще слаще. Однажды на выходных они выяснили, что рабочие распечатки с кодом выбрасываются в мусорный контейнер на заднем дворе здания. «Гейтс весил килограммов пятьдесят, не больше», — думал Аллен, поэтому он решил его подсадить, сложив руки в замок. Гейтс нырнул в контейнер и принялся рыться в офисном мусоре. Наконец, он нашел пачку испачканной и сложенной в гармошку бумаги. «Мы отнесли драгоценные распечатки в комнату с терминалом и часами внимательно их изучали, — говорит Аллен. — Розеттского камня[724] у меня не было, поэтому я понимал максимум одну или две строчки кода из десяти, но я все равно был в полном восторге от того, как компактно и элегантно написан код».
Получив часть мозаики, Гейтс и Аллен захотели погрузиться еще глубже, понять архитектуру операционной системы. Для этого было необходимо изучить язык ассемблера, разобраться с базовыми командами вроде Load B. Add C. Store in A, которые понятны непосредственно машине. «Рассел приметил мой новый интерес и со словами: „Ты должен это прочесть“ протянул мне документацию по ассемблеру в блестящей пластиковой обложке»[725], — вспоминает Аллен. Они с Гейтсом проштудировали весь текст, но поняли не все. Тогда Рассел принес им другое руководство со словами: «А теперь вам нужно прочесть вот это». В итоге они стали хорошо разбираться как в базовых вещах, так и в тонкостях. Это сочетание позволяло писать эффективный и элегантный код для операционной системы.
Когда все ошибки в PDP-10 были устранены и система была признана стабильной, клуб из Лейксайда больше не мог пользоваться компьютером бесплатно. «Они как будто сказали: „Обезьянки, всем спасибо, все свободны“»[726], — говорил Гейтс. Им немного помог «Клуб матерей Лейксайда», который оплачивал юным программистам часы на удаленном компьютере, однако имелись ограничения по времени и потраченной сумме. Гейтс и Аллен понимали, что им никак не уложиться в отведенный лимит, и решили обмануть систему. Друзья получили доступ к внутреннему файлу школьной бухгалтерии, взломали защиту и узнали пароль администратора, при помощи которого бесплатно подключались к PDP-10. Но их поймали еще до того, как они успели натворить дел: учитель математики нашел у них распечатку с логинами и паролями. Новость об их проказе дошла до самых высоких начальников в C–Cubed и DEC, и в школе в кабинете директора прошла серьезная встреча с участием представителей обеих компаний. Гейтс и Аллен приняли максимально виноватый вид и изображали глубочайшее раскаяние, но это не помогло. Им запретили входить в систему до конца семестра и все лето.
«Я немного отвлекся от компьютеров, попробовал побыть нормальным, — говорит Гейтс. — Я решил доказать всем, что могу получить пятерки по всем предметам, даже не открывая учебник. Вместо этого я читал биографию Наполеона и романы вроде „Над пропастью во ржи“»[727].
Почти год «Клуб программистов Лейксайда» находился в спячке. Осенью 1970 года школа стала покупать рабочее время на PDP-10 у компании Information Sciences, Inc (ISI) в городе Портленд, штат Орегон. Стоило это дорого, пятнадцать долларов в час. Гейтс и его друзья быстро нашли способ подключаться к компьютеру бесплатно, но их опять поймали. Тогда они отправили в ISI письмо, в котором предлагали свои услуги взамен на возможность работать на PDP-10.
Менеджеры ISI сомневались. В итоге четверо школьников вооружились распечатками со своим программным кодом и отправились в Портленд, чтобы продемонстрировать свой уровень. Каждый описал свой опыт и предоставил резюме, шестнадцатилетний Гейтс написал свое карандашом на линованной бумаге. Им поручили разработать программу, которая бы рассчитывала зарплату с учетом различных вычетов, удержаний и налогов и подготавливала чеки для выплат[728].
Именно в тот период отношения между Гейтсом и Алленом ухудшились. Программу нужно было написать не на BASIC, любимом языке Гейтса, а на COBOL, более сложном языке, который был разработан Грейс Хоппер и ее коллегами и стал бизнес-стандартом. Рик Вейланд COBOL знал и написал среду разработки под COBOL для системы ISI, и Аллен быстро освоил этот редактор. В тот момент они решили, что работы хватит только им двоим и лучше получить себе побольше рабочего времени на компьютере, поэтому Гейтса и Кента Эванса они не позвали[729].
Следующие полтора месяца Гейтс читал книги по алгебре и старался избегать Аллена и Вейланда. «А потом до Пола и Рика дошло: вот отстой, у них проблема», — вспоминает Гейтс. Для написания программы нужно знать не только COBOL, но и разбираться во всяких социальных вычетах, федеральных налогах и госстраховании по безработице. «И тут они говорят мне, что у них трудности и не мог бы я вернуться к ним и помочь». Тогда Гейтс грамотно разыграл партию и навсегда определил их с Алленом будущие взаимоотношения: «Я согласился. Но сказал, что буду главным. И что я привыкну быть главным, и что потом со мной будет очень тяжело иметь дело, если я вдруг не буду главным. Если они согласны поставить меня во главу сейчас, то я буду главным всегда и везде»[730].
(adsbygoogle = window.adsbygoogle || []).push({});