3. «Космические войны».
3. «Космические войны».
Летом 1961 года, Алан Коток и другие хакеры из TMRC узнали, что свежеиспеченная компьютерная компания скоро привезет в МТИ абсолютно новый компьютер, который представляет собой следующий шаг в развитии вычислительной техники. Это был компьютер, который сделал несколько шагов вперед в плане развития интерактивных способностей TX-0. Это была машина, которая была гораздо лучше, чем TX-0.
PDP-1. Этот компьютер навсегда изменит мир вычислений. Он сделает все еще неясную хакерскую мечту немногим ближе к реальности.
Алан Коток очень хорошо зарекомендовал себя на TX-0, поэтому его, вместе с Сандерсом, Вагнером, Самсоном и несколькими другими ребятами, Джек Деннис взял на работу в состав группы системного программирования TX-0. Работа оплачивалась исходя из необычайно щедрых $1.60 в час. Для некоторых из хакеров, работа была еще одной отмазкой от посещения занятий, поэтому такие люди как Самсон, рисковали никогда не окончить институт, но они были слишком заняты процессом хакерства, чтобы думать и жалеть об этом. Тем не менее, Коток был не только в состоянии учиться, но и зарекомендовал себя «каноническим» хакером. В пределах TX-0 и TMRC он приобрел легендарный статус. Один из хакеров, который тогда еще только поступил в МТИ, вспоминал, как Коток показывал новичкам, как работает TX-0: «У меня создалось впечатление, что у него были проблемы с щитовидкой или что-то этом роде», — говорил Билл Госпер, который также станет со временем каноническим хакером, — «Он говорил очень медленно, был весьма круглолиц и его глаза были постоянно полузакрыты. Но это было полностью неверным представлением. [В отношении TX-0], Коток пользовался бесконечным моральным авторитетом. Он написал программу для игры в шахматы. Он понимал, как работает железо». Последнее замечание представляло собой весомый комплимент. «Понимание работы железа» было сродни постижению Дао окружающей природы.
Тем летом, когда начали появляться слухи о PDP-1, Коток работал на Western Electric. Эта была работа, о которой можно было только мечтать, так как из всех возможных систем телефонная система содержала в себе большинство свойств. Клуб Моделирования Железной Дороги часто предпринимал походы в районные офисы телефонной компании. Большинство из этих вояжей было сродни посещению музея людьми, которые интересовались живописью. Коток сделал для себя небольшое открытие: оказывается, несмотря на весь рост компании за последние десятилетия, только некоторые из ее инженеров хорошо понимали все связи внутри системы. Тем не менее, инженеры были в состоянии рассказать подробности о некоторых специфических компонентах системы, таких, например, как координатные коммутаторы или шаговые искатели. Коток и остальные бегали по пятам за этими хранителями информации, и инженеры, довольные оказанным им вниманием, охотно беседовали с ними, даже не догадываясь о том, как эти супервежливые ребята из колледжа на самом деле будут использовать полученные знания.
Участие в этих экскурсиях Коток считал для себя обязательным, потому что во время их проведения он имел возможность заглянуть в некоторые технические руководства, которые попадались ему в руки, и проверить, куда бы он мог добраться, набирая различные номера на сложной и малопонятной телефонной системе МТИ. Это было исследование, сродни познанию возможностей TX-0. Во время прошлой зимы 1960-61 года, хакеры TMRC занимались тем, что они называли «построением плана телефонной сети», записывая все места, до которых они могли дозвониться из телефонной системы МТИ. Хотя они и не подсоединялись к телефонным сетям общего пользования, телефонная система института позволяла им подключаться к Lincoln Lab, а оттуда к ее военным подрядчикам по всей стране. Дело было только за записью и проверкой. Сначала пробовался один код выхода на линию, после чего, добавляя к нему различные цифры, они слушали, кто отвечал на другом конце провода. Людей, поднимавших трубку на том конце, спрашивали о том, кто они, и куда они попали, а затем добавляли цифры к этому номеру для того, чтобы проскочить еще дальше. Иногда, если у ничего не подозревающей телефонной компании было непредусмотренное подключение, то вы могли бы попасть за пределы университетского городка — в пригород. Коток, позднее, говорил: «Если при проектировании телефонной системы была допущена ошибка, а в особенности такая, которая позволяла проходить вызовам туда, куда они не должны были попадать, я не чувствовал за собой никакой вины, это была их проблема — не моя».
Основным побудительным мотивом было исследование, а не мошенничество, которое рассматривалось как крайне дурная форма извлечения выгоды из этих странных соединений. Иногда люди со стороны не могли этого понять. Например, товарищи Самсона по комнате в общежитии Бартон Холл, которые не были хакерами, считали нормальным извлекать выгоду из системных ошибок, не руководствуясь святым оправданием исследования системы. После того, как они в течение многих дней терроризировали Самсона просьбами, он, в конце концов, сдался и всучил им двадцатизначный номер, который по его словам, позволял добраться до весьма любопытного места. «Вы можете набрать этот номер с телефона в холле», —сказал он им, —«но я не хочу присутствовать рядом». Они начали боязливо набирать номер, а Самсон, тем временем спустился к телефону на этаж ниже, который зазвонил сразу же, как только он к нему подошел. «Это Пентагон», —сказал он в трубку как можно более официальным голосом. « Назовите, пожалуйста, ваш секретный код доступа». Из телефона сверху донеслось прерывистое дыхание человека, объятого ужасом, после чего раздался щелчок рычага, на который положили трубку.
Запись карты сети была тривиальным занятием, столь свойственным хакерской натуре, чье желание познать работу системы перевешивало страх попасться.
Хотя эзотерика телефонной компании и привлекала Котока, перспектива PDP-1 превосходила ее по своей важности. Возможно, потому что он чувствовал, что ничто, даже телефонный хакинг, не может с ней сравниться. Люди, которые спроектировали и продавали этот новый компьютер были совсем не похожи на пиджачно-галстучное сборище обычной компьютерной компании. Эта компания была образована совсем недавно и называлась Digital Equipment Corporation (DEC). Некоторые из пользователей TX-0 знали, что самыми первыми продуктами DEC были интерфейсы для TX-0. Было удивительно, но некоторые из основателей этой компании имели свой взгляд на вычислительную технику, отличавшийся от традиционного взгляда, которого придерживалась IBM, со своими машинами, работавшими в режиме пакетной обработки. Было удивительно, но инженеры из DEC придерживались той же свободной, интерактивной, импровизационной и всепоглощающей манеры работы, которую практиковало сообщество TX-0. В DEC создали компьютер, который очень много реализовывал из данного поведения. PDP-1, чье названием расшифровывалось как Programmed Data Processor[18], что выглядело куда как менее устрашающе, чем «компьютер», от которого веяло неуклюжими гигантами, был известен как первый миникомпьютер, который разрабатывался для небольших объемов вычислений — для научных исследований, математических расчетов и для… хакинга. Он был настолько компактен, что полностью смонтированная система занимала места не больше чем три холодильника. Ему не было нужно интенсивное кондиционирование, и процедура его запуска не требовала целой группы обслуживающего персонала, которому надо было последовательно подавать в правильном порядке питание на отдельные блоки или запускать тактовый генератор, и все это помимо прочих задач, также требовавших повышенного внимания. Стоимость машины составляла $120,000, это было достаточно дешево, так что большая часть народу, жаловавшегося на высокую стоимость машинного времени, могла успокоиться. Тем не менее, компьютер, который был вторым по счету, не стоил МТИ ни цента (первую машину приобрела научная фирма Болта Беранека и Ньюмана (BBN), находившаяся по соседству). Он был предоставлен фирмой DEC для лаборатории RLE. Теперь у хакеров появилось гораздо больше времени для своих занятий, чем было на TX-0.
Машина PDP-1 поставлялась с простым набором программного обеспечения, которое хакеры сочли полностью непригодным для использования. У хакеров TX-0 уже вошло в привычку работать с самым продвинутым и интерактивным программным обеспечением, которое представляло собой ошеломляющий набор программ, написанными хакерами для самих себя и неявно реализовавших их непрестанные требования контроля над компьютером. Юный Петер Дейч, которому было всего 12 лет, когда он открыл для себя TX-0, выполнил свое обещание написать более совершенный ассемблер, а Боб Сандерс разработал более быструю и меньшую в размерах версию отладчика FLIT, которую он назвал Micro-FLIT. Эти программы использовали расширенный набор инструкций TX-0, которые были не предусмотрены ее создателями. История этого такова: однажды, после обстоятельного планирования и проектирования, выполненных Сандерсом и Джеком Деннисом, TX-0 была остановлена, и группка инженеров залезла в ее внутренности и прошила несколько новых инструкций. Эта сложно реализуемая задача позволила использовать в ассемблере несколько новых команд. Когда плоскогубцы и отвертки были отложены в сторону, а машина — аккуратно запущена, все дружно сели переделывать и бамить свои старые программы с использованием новых команд.
Набор инструкций PDP-1, с которым ознакомился Коток, не сильно отличался от расширенного набора команд TX-0, поэтому уже в самом начале лета Коток начал писать системное программное обеспечение, используя все свое свободное время, которое он мог найти. Понимая, что как только машина прибудет, то все сразу же бросятся ее осваивать, он написал вариант отладчика Micro-FLIT, для того чтобы создание программного обеспечения для «Единицы» стало более легким процессом. Самсон немедленно обозвал отладчик Котока «DDT», и это прозвище прилипло к программе, хотя в дальнейшем она еще неоднократно была модифицирована другими хакерами, которые хотели добавить в нее новые свойства или бамнуть ее код, чтобы убрать из нее несколько лишних инструкций.
Коток не один готовился к пришествию PDP-1. Как набор вещей для будущего малыша, рождения которого ожидают родители, остальные хакеры усердно пряли программные «пинетки» и «распашонки» для нового младенца, готовящегося войти в семью. Приход благородного наследника компьютерного трона ожидался в конце сентября.
Наконец этот радостный момент наступил. Хакеры помогли внести PDP-1 в ее новый дом, в Клудж Комнату, которая была рядом с комнатой, в которой стояла TX-0. Новая машина была прекрасна: сидя за консолью, которая была на половину короче, чем консоль Tixo, вы могли бы видеть небольшую панель с переключателями и лампочками. Рядом с ней находился дисплей, в ярко-синем, шестиугольном корпусе, с отделкой под стиль «деко». За ним стояли высокие шкафы, размером с холодильник и примерно в три высоты в глубину, заполненные проводами, платами, реле и транзисторами, доступ к которым был, естественно, запрещен. Здесь же стоял Flexowriter, для вывода данных из системы (пользователи жаловались на невероятный шум, который он производил, и, в итоге, его заменили устройством вывода фирмы IBM, которое работало существенно тише), а также высокоскоростной считыватель перфолент, для ввода информации в машину. По всем признакам, это была определенно «тяжелая» игрушка.
Джеку Деннису нравилось некоторое программное обеспечение, написанное фирмой BBN для прототипа PDP-1, а в особенности ассемблер. Котока, однако, при виде этого ассемблера начинало тошнить. Ассемблер работал в режиме, абсолютно не соответствующем его стилю, в котором он привык все делать «на лету». Так что он, и еще несколько его товарищей сказали Деннису, что им хотелось бы написать свой собственный вариант. «Это плохая идея», — сказал Деннис, который хотел, чтобы ассемблер был запущен на системе как можно скорее. Он понимал, что у хакеров уйдет на это несколько недель.
Коток и остальные были непреклонны: этой программой им предстояло пользоваться каждый день, и она должна быть совершенна. (Конечно, ни одна программа не была совершенна, но это их не останавливало.)
«Точно говорю тебе», — сказал Коток, гениальный двадцатилетний программист, с такой же полуулыбкой и такой же полнолицый как сам Будда, в адрес настроенного скептически, но благожелательного Джека Денниса: «Если мы напишем эту программу за выходные, и она будет работать, оплатишь ли ты нам время?».
Стоимость подобного объема работы, в соответствии с действующей сеткой оплаты, составляла чуть меньше пяти сотен долларов. «Это более или менее справедливо», — сказал Деннис, и они ударили по рукам.
Коток, Самсон, Сандерс, Вагнер и еще два человека начали работу вечером в пятницу. Они знали, что работать следует над ассемблером TX-0, оригинал которого был написан Деннисом, и который был поправлен, среди прочих, Питером Дейчем. Они не стали трогать ввод и вывод, и они не хотели переделывать алгоритмы. Вместо этого, каждый хакер брал кусок кода TX— 0 и конвертировал его в код PDP-1. Спать они не собирались. Шесть хакеров за выходные наработали 250 человекочасов, создавая код, отлаживая его, и уничтожая попутно коробки с китайской едой и запивая их большим количеством Кока-Колы, приносимой из клубной комнаты TMRC. Это была самая настоящая оргия программирования. Когда Джек Деннис пришел в понедельник, то он поразился, увидев загруженный на PDP-1 ассемблер, который в качестве демонстрации ассемблировал свой собственный код в бинарный.
Под сильным влиянием хакерства, хакеры TX-0, нет, теперь уже хакеры PDP-1, за выходные создали программу, на которую компьютерная индустрия потратила бы недели, а то и месяцы. Это был проект, к которому компьютерная индустрия не приступила бы без длительного и скучного процесса постановки задачи, исследований, многочисленных рабочих встреч и исполнительской нерешительности, и весьма вероятно — с существенными компромиссами на всем пути разработки. Весьма вероятно, что оно вообще никогда не было бы завершено. В то же время данный конкретный проект был полным триумфом Этики Хакеров.
К новой машине хакерам был предоставлен еще более свободный доступ, чем они имели на TX-0, и большинство из них переключилось на работы в Клудж Комнате. Несколько упертых товарищей все еще сидели за Tixo, что давало хакерам PDP-1 почву для насмешек в их адрес. Чтобы еще более раздразнить их, хакеры подготовили небольшое представление на основе мнемоник системы команд новой машины, которое включало в себя такие экзотические команды как DAC (Deposit Accumulator), LIO (Load Input-Output), DPY (Deploy) и JMP. Группа хакеров PDP-1 выстраивалась в шеренгу и начинала хором орать:
LAC,
DAC,
DIPPY DAP,
LIO,
DIO,
JUMP!
Когда они выкрикивали последнее слово «JUMP» они все прыгали вправо. Отсутствие хореографии хорошо компенсировалось энтузиазмом: они были полностью очарованы красотой машины и привлекательностью компьютеров вообще.
Тот же энтузиазм наблюдался в ставшем еще более спонтанным программировании, происходившим на PDP-1, начиная от серьезных системных программ, такими, например, которые управляли простыми роботизированными манипуляторами, до весьма эксцентричных хаков. В основе одной из последних выходок лежало соединение TX-0 и PDP-1 коммуникационным кабелем, по которому могла передаваться побитно информация между двумя машинами. По рассказу Самсона, хакеры позвали многоуважаемого основоположника искусственного интеллекта Джона Маккарти и усадили его за консолью PDP-1: «Профессор, посмотрите, пожалуйста, на нашу новую программу для игры в шахматы!». Они позвали еще одного преподавателя и посадили его за консоль TX-0. «Вот программа для игры в шахматы. Наберите ваш ход». После того как Маккарти сделал свой первый ход, и он отпечатался на Flexowriter-e рядом с TX-0, они сказали другому преподавателю, что он только что увидел, как TX-0 сделала ответный ход. «Теперь ваш ход!». После нескольких ходов, Маккарти заметил, что компьютер стал выдавать ходы по букве за раз, иногда с подозрительной паузой между ними. В конце концов, Маккарти заметил кабель и пошел по нему, пока не столкнулся со своим оппонентом из плоти и крови. Хакеры покатились со смеху. Причем, все это случилось незадолго до того, как они начали, уже без всяких шуток, устраивать турниры шахматных программ между компьютерами.
PDP-1 дала отмашку хакерам на программирование без всяких лимитов. Как-то само собой получилось, что Самсон взялся за хакинг таких вещей как календарь Майя, который работал на основе двадцатиричной системы исчисления, и сверх того, он работал над версией своей музыкальной программы, написанной еще для TX-0, которая реализовывала преимущества расширенных звуковых возможностей на PDP-1. Он переписал для нее фугу Баха для трех голосов и звучащая компьютерная музыка начала вырываться за пределы старой доброй Клудж Комнаты. Инженеры из DEC узнали про программу Самсона и попросили ее довести до ума на PDP-1. В конце концов, на ней стало можно вводить музыкальную партитуру, переводя ноты в буквы и цифры, а компьютер отвечал на это трехголосной органной сонатой. Еще одна группа хакеров закодировала таким же образом оперетты Джилберта и Салливана.
Самсон с гордостью представил этот музыкальный компилятор компании DEC, с тем, чтобы она распространяла его всем желающим. Группа хакеров, которая работала над новым ассемблером, считала точно также. Например, они свободно держали ленту с ассемблером в ящике стола, так что любой желающий мог иметь к ней доступ или мог попытаться ее улучшить — сократить программу на несколько команд или добавить в нее что-нибудь новое. Они испытали гордость, когда DEC попросила у них программу чтобы передать ее другим владельцам PDP-1. Вопрос о каких-то отчислениях никогда не вставал. Для Самсона и прочих, использование компьютера было таким удовольствием, что, при необходимости, они сами были бы согласны платить за доступ к нему. А то, что им дополнительно платили по-королевски, из расчета $1.60 в час было своеобразным бонусом. Что касается отчислений — разве программное обеспечение не является даром этому миру, который сам по себе является вознаграждением? Их основная идея заключалась в том, что компьютер должен стать более пригодным для пользователей, более удивительным, и настолько интересным, чтобы люди соблазнились бы поиграть с ним, исследовать его, и, в конце концов, начать хакерить программы с его помощью. Когда вы писали хорошую программу, то вы делали вклад в общество, а не штамповали очередную поделку.
В любом случае люди не должны платить за программное обеспечение. Информация должна быть свободной.
TMRC хакеры были далеко не единственными людьми у которых были планы в отношении PDP-1. В течение лета 1961 года был разработан тщательный план искусного хака, которому было предназначено послужить витриной того, что могло бы быть сделано при серьезном отношении к Хакерской Этике. Ареной дискуссий по этому вопросу было многоквартирное здание, стоявшее на Хайэм Стрит в Кембридже, и оригинальными носителями этой идеи были три скитавшихся хакера, которым было уже за двадцать, и которые шлялись по разным вычислительным центрам в течение многих лет. Двое из этой троицы жили в этом доме, так что в честь напыщенных заявлений, исходящих из расположенного поблизости Гарвардского Университета, троица насмешливо называла свой дом «Хайэмским Институтом».
Одним из «сотрудников» этого мнимого учреждения был Стив Рассел, которого по неизвестной причине называли Слаг (Слизняк). Он разговаривал как запыхавшийся бурундук. Это была манера, часто встречаемая среди хакеров, равно как и толстые очки, невысокий рост и фанатичная страсть к компьютерам, дурным фильмам и дешевым фантастическим романам. Все трое постоянных участников разговоров в мужской компании на Хайэм Стрит имели сходные интересы.
Рассел в течение долгого времени был «кули» (если использовать термины TMRC) «дяди Джона» Маккарти, который пытался спроектировать и реализовать высокоуровневый язык, достаточный для работ в области искусственного интеллекта. Он полагал, что им является LISP, который получил свое имя за используемый метод обработки списков (LISt Processing). При помощи простых, но мощных команд, LISP мог делать много вещей при помощи всего нескольких строк кода. Также, он мог выполнять сложные рекурсивные ссылки к самому себе, что позволяло программам, написанным на этом языке действительно «изучать» то, что происходило в процессе работы программы. В то время, проблема с LISP заключалась в том, что он требовал невероятное количество памяти на компьютере, работал очень медленно и генерировал очень большое количество дополнительного кода в процессе работы, так что ему требовалась своя собственная программа «сбора мусора» чтобы периодически очищать память компьютера.
Рассел помогал Дяде Джону писать интерпретатор LISP для неповоротливого Гиганта IBM 704. По его словам, это была «ужасная инженерная работа», в основном из-за утомительного режима пакетной обработки на модели 704.
По сравнению с этой машиной, PDP-1 для Слага Рассела была «землей обетованной», она была более доступна, чем TX-0, и работала без всякой пакетной обработки. Хотя ее мощности не хватало для нормальной работы LISP, она имела массу других соблазнительных свойств, некоторые из которых были предметом разговоров в Хайэмском Институте. В особенности Рассела и его друзей на PDP-1 заинтриговала перспектива «дисплейного хака», который можно было бы реализовать на ее CRT. После продолжительного ночного совещания, Хайэмский Институт всем персоналом в три человека вписал себя в расписание машинного времени, утвердившись во мнении о том, что наиболее эффективной демонстрацией волшебства компьютера будет великолепная визуальная игра.
На TX-0 уже предпринимались попытки сделать нечто подобное. Одним из таких хаков был «Лабиринт и Мышь». Пользователь сначала рисовал световым пером лабиринт, затем ставил отметку на экране, которая представляла собой мышь. Мышь, утыкаясь в стены, прокладывала путь по лабиринту в поисках других отметок на экране в форме ломтиков сыра. Существовала также «VIP версия» игры, в которой мышь искала бокалы с мартини. После того как она добиралась до бокала, она искала другой бокал, и так до тех пор, пока у нее не кончалась энергия, или, она не становилась слишком пьяной чтобы продолжать поиски. Когда вы щелкали переключателем, для того чтобы запустить мышь через лабиринт во второй раз, она «запоминала» предыдущий путь к бокалам и как опытный завсегдатай баров безошибочно неслась к спиртному. Вот до такой степени продвинулись дисплейные хаки на TX-0.
Дисплей PDP-1 был более легок в программировании, чем это было на TX-0, поэтому на ней существовали более красивые дисплейные хаки. Самый восхитительный был создан усилиями одного из двух гуру в области искусственного интеллекта в МТИ Марвином Минским (другим гуру, конечно, был Маккарти). Минский был более общителен, чем Маккарти, и более охотно переходил в хакерский режим работы. Он был человеком с очень большими идеями в области вычислительной техники и действительно верил в то, что придет день, и компьютеры будут уметь мыслить. Он часто вызывал большое оживление, публично называя человеческий мозг «мясной машиной» (meat machine), подразумевая, что когда-нибудь будет машинный разум, не имеющий биологической природы. Невысокого роста, с блеском глаз за толстыми стеклами очков, искрящейся лысиной, и в своем вечном свитере с воротником под горло, Минский излагал в своем обычном сухом стиле, одновременно пытаясь и максимально спровоцировать слушателей и дать намек, на то, что это все представляет собой глупость космического масштаба: «Конечно, машины не могут мыслить, хе-хе-хе…». Но Минский был человеком, который хорошо понимал происходящее, и хакеры PDP-1 часто сидели на его лекциях по курсу «Введение в ИИ 6.544», который он читал, потому что он был не только хорошим теоретиком, но и прекрасно разбирался в этой области. В начале 60-х годов Минский начал организацию того, что в дальнейшем превратилось в первую в мире лабораторию, занимавшуюся ИИ. Он знал, что для того чтобы сделать то, что он хочет, ему в качестве рабочей силы нужны гении в программировании, и поэтому он воспринимал хакерство в любом приемлемом виде.
Одним из вкладов Минского в растущее количество канонических хаков была дисплейная программа для PDP-1 под названием Алгоритм Построения Окружности (Circle Algoritm). Он был открыт в результате ошибки; во время попытки бамнуть несколько инструкций из короткой программы, которая превращала прямые линии в кривые и спирали. Минский случайно напечатал вместо символа «Y» символ «Y со штрихом»[19] и вместо того чтобы начать чертить, как ожидалось, тильдообразные незавершенные спирали, компьютер нарисовал окружность. Это было несколько неожиданное открытие, при дальнейшем исследовании которого родилось сложное математическое описание процесса. Хакеря программу дальше, Минский использовал алгоритм построения окружности как отправную точку для более сложной программы моделирования, в которой три частицы взаимодействовали друг с другом и оставляли удивительные завитки на экране, создавая нечто похожее на розы с переменным количеством листьев[20]. «Силы, приводившие частицы в движение были полностью неземными», —позднее вспоминал Боб Вагнер, — «Это была симуляция нарушения законов природы». Позднее Минский назвал этот хак «Три-Поз: Трехпозиционное Изображение», но хакеры любовно назвали его «Минскитроном».
Слаг Рассел этим был очень вдохновлен. На собраниях в Хайэмовском Институте несколько месяцев назад, он и его друзья обсудили критерии самого радикального дисплейного хака. Так как они все были фанами дешевой научной фантастики, особенно романов, где действие происходило в космосе и автором которых был Е.Е. «Док» Смит, то они решили, что PDP-1 будет весьма неплохим компьютером для объединения фильма категории "B" и игрушки стоимостью в $120,000. Результатом этого объединения должна быть игра, в которой два игрока могли бы биться друг с другом в открытом космосе. В Хайэмовском Институте была немедленно организована Группа Изучения Космических Военных Конфликтов, которая вынесла авторитетное решение о том, что Слаг Рассел должен быть автором этого исторического хака.
Прошло несколько месяцев, а Рассел еще и не думал приступать. Вместо этого он разглядывал картинки, рождаемые Минскитроном, и щелкал переключателями, когда программу начинало клинить. Поначалу он был восхищен ею, но вместе с тем продолжал считать, что этот хак является слишком абстрактным и математическим. Через некоторое время он сделал окончательный вывод: "Эта демка — полная фигня! Около тридцати двух или около того команд, которые в реальности ничегоне делают".
Слаг знал, что его игра про войну в открытом космосе, должнакое-что делать. Если использовать для описания этого доморощенные научно-фантастические термины, то она должна была это сделать таким способом, который никто и никогда раньше не использовал. Чувство, которое поначалу привело Слага к компьютерам заключалось в ощущении силы, которые вы получали при запуске всех этих чертовых штуковин. Вы могли приказать компьютеру сделать что-либо, а он начинал упрямиться и биться с вами, но, в конечном счете, вы одерживали верх, и он делал то, что вы ему говорили. Конечно, он всего-навсего отражал вашу глупость, и часто то, что вы приказывали ему сделать, приводило к абсолютно другому результату — отвратительному и безвкусному. Но, в конце концов, после пыток и несчастий, он делал в точности то, что вы хотели. Чувство, получаемое в результате этого, было несравнимо ни с какими эмоциями в мире. Оно могло сделать из вас наркомана. Именно к этому пристрастился Слаг Рассел, и он видел, что с остальными, кто сидел до рассвета в Клудж Комнате, было то же самое. Похоже, он догадывался, что их всех там держит — это было ощущение силы.
Слаг испытывал подобное, хотя и менее яркое чувство при чтении романов Дока Смита. В его воображении рисовались образы белого ракетного крейсера несущегося в пространстве под рев двигателей, и он страстно хотел, чтобы ему удалось реализовать это же ощущение за консолью PDP-1. Это были именно те «Космические войны», о которых он мечтал. И он еще раз поклялся написать их.
Но позднее.
Слаг не был столь же обуреваем процессом написания программ как другие хакеры. Иногда ему нужен был толчок. После того как он сделал ошибку, раскрыв свой большой рот и обмолвившись о программе, которую он собирался написать, хакеры PDP-1, всегда страстно желавшие посмотреть на новый хак, который будет добавлен к куче лент лежащих в ящике стола, начали его подгонять. После бормотания под нос разных оправданий, он еще раз подтверждал, что он ее пишет, вот только он никак не может понять, как написать процедуры расчета синусов— косинусов, столь необходимых для отрисовки движения корабля.
Коток знал, что это препятствие может быть легко преодолено. На этот момент, Коток был в весьма тесных отношениях с инженерами из DEC, офис которой был расположен в нескольких милях от Мэйнарда. DEC была фирмой внутри которой были весьма неформальные отношения. В отличие от большинства компьютерных фирм, в ней не считали хакеров из МТИ потрепанными и легкомысленными компьютерными рейдерами, за которых их, возможно, принимала IBM. Например, однажды, когда один из компонентов вышел из строя, Коток позвонил в Мэйнард, и сообщил об этом сотрудникам DEC. Они сказали: «Приезжайте и заберите замену». За то время, пока Коток до них добрался, уже было много позже пяти вечера, и офис был закрыт. Тем не менее, ночной сторож позволил ему войти внутрь, найти стол инженера с которым он разговаривал и позволил покопаться в его столе, до тех пока он не нашел нужную запчасть. Это было весьма неформально, что и привлекало хакеров. Поэтому для Котока не было большой проблемы в том, чтобы прийти в Мэйнард, где кто-нибудь наверняка имел готовую процедуру расчета синусов и косинусов, которая работала бы на PDP-1. Несомненно, она была обнаружена у одного из сотрудников DEC, а так как информация была свободной, Коток без всяких проблем принес ее в здание №26.
«Вот она, Рассел», — сказал Коток, держа в руке ленту с программой. «Ну что ты теперь скажешь?».
Теперь у Рассела не было никаких отговорок. Так что он потратил все свободное время на написание этой фантастической игры для PDP-1, игры, которой никто никогда ранее не видел. Уже в скором времени он тратил на нее все свое время, в том числе и рабочее. Он начал ее в первых числах декабря. Приближалось Рождество, а он все еще занимался ее хакингом. Когда календарь на стене сменился на 1962 год, он все еще хачил программу. К этому моменту Рассел был в состоянии поставить точку на экране, которой можно было управлять, нажимая на крошечные переключатели контрольной панели. Точка могла ускоряться и менять свое направление.
Затем он начал работать над формами двух ракетных крейсеров: оба были классическими космическими кораблями из мультфильмов. Для того чтобы отличать их друг от друга, он сделал один корабль в виде короткой сигары с утолщением по середине, а второй — в форме тонкой трубы. Процедуры синуса и косинуса Рассел использовал для того, чтобы управлять движением кораблей в разных направлениях. Затем он написал процедуру стрельбы торпедой (маленькой точкой). Она вылетала из носа космического корабля, после того как Рассел нажимал на специальный переключатель. Компьютер выполнял определение положения космического корабля и торпеды, если они оба находились в одной точке, программа вызывала процедуру, которая заменяла несчастный корабль случайным месивом из точек, которые представляли собой взрыв. (Этот процесс назывался «обнаружением столкновений»).
Все это представляло собой существенный концептуальный шаг по направлению к программированию в «реальном времени»: события, происходившие в компьютере, совпадали с временной шкалой, в которой обычно работали человеческие существа. Другими словами, Расселу удалось сэмулировать онлайновый, интерактивный стиль отладки, который почитали хакеры больше своей свободы, и который позволял видеть какая из инструкций вашей программы обработалась неправильно. После чего, использовав переключатели или Flexowriter можно было перескочить на другую инструкцию, причем все это время на машине работал отладчик DDT. Игра «Космические войны», которая была компьютерной программой, помогла понять, что все игры, а, может быть и что-нибудь еще, работают как компьютерные программы. Когда у вас что— то начинает не получаться, вы модифицируете параметры и, если повезет, это помогает. Затем вы добавляете новые команды в программу. Те же принципы были пригодны и для стрельбы по мишеням, выработке стратегии для игры в шахматы и написания курсовой работы в МТИ. Именно поэтому компьютерное программирование было не только технической гонкой, но и подходом к решению жизненных проблем.
На последних стадиях программирования, Сандерс помог Расселу, и они предприняли несколько 6-8 часовых сеансов хакинга. Где-то к концу недели, в пятницу, Рассел продемонстрировал первую версию игры. В ней были два корабля, у каждого из которых было по тридцати одной торпеде. Также на экране присутствовало несколько случайных точек, которые изображали собой звезды на этом небесном поле битвы. Вы могли маневрировать кораблями, щелкая четырьмя переключателями на консоли PDP-1, которые представляли собой «поворот по часовой стрелке», «поворот против часовой стрелки», «ускорение» и «выстрел торпедой».
Слаг посмотрел на первую, еще сырую версию игры, и положил ленту с программой в коробку, где лежали системные программы для PDP-1, и начал ожидать модернизаций со стороны своих товарищей. «Космические войны» не были простой компьютерной симуляцией, вы действительно могли быть пилотом ракетного крейсера — это был осуществившийся в реальности роман Дока Смита. Та же самая сила, что заставляла Рассела делать эту программу, которая позволила создать на PDP-1 свою собственную маленькую Вселенную, была доступна и для других хакеров, у которых были свободны руки для улучшения вселенной Слага Рассела. И они сделали это немедленно.
О направлении улучшений можно было бы догадаться по общей реакции хакеров на оригинальный код, который использовал Рассел для своих торпед. Зная, что в реальной жизни, это оружие не всегда совершенно, Рассел решил сделать свои торпеды более реалистичными. Вместо того чтобы заставлять их летать по прямой, до тех пор, пока у них не заканчивалось топливо, после чего они взрывались, он добавлял в их движение некоторые случайные вариации по направлению и скорости. Но вместо того чтобы воздать должное правдоподобию, хакеры резко его осудили. Им нравились хорошо работающие системы и надежные инструменты, а столкновение с тем, что работало ненадлежащим образомих привело в бешенство. Рассел позднее понял, что «оружие и инструменты, которые не слишком надежны, не пользуются большим уважением у людей, которые обычно привыкли им доверять», и это было особенно характерно для данного случая.
Но, конечно, это все можно было очень легко исправить. Преимущество, которое имел мир программ перед реальным миром, состояло в том, что вы могли решить серьезную проблему, такую, например, как плохо управлявшиеся торпеды при помощи всего лишь нескольких команд. Именно это привлекало в хакерстве больше всего. После того как торпеды были поправлены, народ начал тратить много часов на дуэли в открытом космосе, и еще больше времени на то, чтобы улучшить «Космические войны».
Питеру Самсону также понравилась идея «Космических войн», но он не мог вынести вид случайно сгенерированных точек в качестве звездного неба. На настоящем небе звезды располагались в строго определенном порядке. «Мы сделаем то, что есть на самом деле», —дал себе обещание Самсон. Он взял толстый атлас звездного неба и начал вводить данные в написанную им процедуру, в результате работы которой генерировались настоящие созвездия, которые были видны в ясную ночь наблюдателю на экваторе. Присутствовали все звезды до пятой величины включительно. Самсон даже повторил их относительную яркость, управляя частотой зажигания на экране точки, представлявшей собой звезду. С помощью программного трюка он добился, чтобы по мере игры, после того как экран занимал 45 процентов неба, небо сдвигалось в нужную сторону. Помимо добавления правдоподобия, данная программа «Дорогостоящего Планетария», дала игрокам карту, по которой они могли производить стрельбу ракетами. Поэтому данную игру можно было также назвать «Стрельбы по Кассиопее».
Еще один программист по имени Дэн Эдвардс, был неудовлетворен безостановочным движением двух сражающихся кораблей, что делало игру больше похожей на тест на быстроту пальцев. Он понимал, что добавление гравитации придаст игре стратегическую компоненту. Поэтому он создал в центре экрана звезду-солнце. В том случае если вы пролетали мимо, вы могли использовать притяжение солнечной гравитации для придания скорости, но если вы были не слишком осторожны и приближались к звезде слишком близко, то солнце вас притягивало, что было неминуемой гибелью.
До того как были освоены все стратегические приемы данного усовершенствования, Шэг Гаретц, один из троицы Хайэмовского Института, разработал еще одно интересное новшество. В одном из романов Дока Смита он вычитал, что эти космические рейдеры могли исчезать в одной галактике и появляться в другой посредством «гиперпространственного тоннеля», который переводил вас в загадочное N-ное измерение. Он добавил в игру возможность перехода в «гиперпространство», позволяя игроку в отчаянный момент избежать неприятной ситуации, нажав на «паническую» кнопку, которая перебрасывала его корабль в гиперпространство. За всю игру гиперпространством было разрешено пользоваться трижды, причем, вы никогда не могли заранее знать, куда вы попадете. Иногда вас выбрасывало в непосредственной близости от солнца, и оставалось только наблюдать за тем, как ваш корабль безнадежно притягивается к звезде и находит свою безвременную кончину на ее поверхности. Отдавая должное оригинальному хаку Марвина Минского, Гаретц запрограммировал вхождение в гиперпространство так, что корабль оставлял после себя «фотонную ударную волну» — световое пятно в виде следа, часто остававшегося на дисплее в результате работы Минскитрона.
Вариации были бесконечными. Изменив несколько параметров, вы могли играть в «поливаловку», в которой торпеды выбрасывались потоками, вместо того чтобы выстреливаться по одной. «Давайте включим звездный ветер!», — восклицал кто-нибудь, и тут же хачил игру. После чего появлялся искажающий фактор (warping factor), который заставлял игроков подстраивать свои положения каждый раз после выполнения перемещений. Хотя принимались все улучшения игры, сделанные хакерами, считалось крайне плохой формой поведения никому не сообщать о «странных модификациях» игры. Поэтому эффективное общественное давление, которое вдобавок было усилено Хакерской Этикой, стимулировало изготовление новшеств, а не разрушительных свойств и предотвращало появление подобного беспорядка. В любом случае, хакеры уже занимались этими невероятными изменениями в системе, и они использовали дорогостоящий компьютер для того, чтобы играть в самую великую игру в мире.
В «Космические войны» играли до одури. Для некоторых она стала пристрастием. Хотя никто не мог официально записаться на сеанс времени, чтобы посвятить его игре, всю эту весну, каждый свободный момент на машине был занят какой-нибудь версией игры. С бутылками Коки в руке (а иногда и с деньгами на кону), хакеры пускались в марафонские турниры. Рассел написал процедуру, которая вела подсчет очков и количество общих выигранных игр, которые печатались на экране в восьмеричном виде. Машинная форма записи не представляла никакой проблемы, так как все легко читали восьмеричные числа. Через некоторое время стал очевиден главный недостаток игры: переключателями на консоли PDP-1 было крайне неудобно управлять, потому что приходилось болезненно выворачивать локти, чтобы держать руки под определенным углом. Именно по этой причине Коток и Сандерс однажды пришли в клубную комнату TMRC и начали подбирать запчасти, из которых впоследствии был собран один из первых компьютерных джойстиков. В течение, примерно, часа вдохновенной работы конструкторской мысли, они сумели собрать из частей лежавших, а то и просто валявшихся по клубной комнате, систему управления. Верхняя ее часть была из масонита, а сама корпусная коробка была изготовлена из дерева. На них были закреплены переключатели для поворота и ускорения, а также кнопка для перехода в гиперпростраство. Все кнопки управления работали бесшумно, так что вы могли тайком подобраться к вашему противнику или, в случае необходимости, скрытно нырнуть в N-е измерение.
По мере того как фаза программирования постепенно сошла на нет, некоторые хакеры потеряли всякий интерес к «Космическим войнам». Другие, напротив, вырабатывали в себе инстинкты убийц, разрабатывая целые стратегии того, как можно было бы побыстрее укокошить своего противника. Большинство игр выигрывалось и проигрывалось в течение первых нескольких секунд. Вагнер стал приверженцем стратегии «лежать и ждать». При ее использовании, вам приходилось тихонько ждать, пока гравитация не начнет притягивать вас к солнцу, затем надо было резко броситься вперед, расстреливая торпедами своего оппонента. Был еще один вариант, который назывался «Заставка CBS». В этом случае, вы выставляли соответствующий угол для стрельбы, и только затем делали быстрый оборот около звезды. Этот прием получил свое имя, за характерный след, остававшийся на экране и очень сильно походивший на знаменитый «глаз» CBS, если этот маневр пытались осуществить одновременно оба гладиатора. Сандерс, который относился к «Космическим войнам» весьма серьезно, использовал для победы в турнирах модифицированный вариант стратегии CBS, потому что в это время в него практически невозможно было попасть. Однако после двадцати минут защиты своего места по принципу «царя горы», даже у великого «Космического Воина» могло все немного поплыть в глазах, после чего он замедлял свое движение и становился добычей противника.
Более того, почти каждый имел свой шанс сыграть в «Космические войны» реальнее, чем это было на самом деле. Питер Самсон, который был вторым после Сандерса в игре в «Космические войны», однажды столкнулся с этим. Это произошло ночью, когда он вернулся домой в Лоуэлл. После того как он сошел с поезда, он посмотрел в чистое и ясное небо. Над его головой пролетел метеор. «Где ракетный крейсер ?!?», —в следующую секунду Самсон понял, что он мгновенно повернулся и схватил воздух впереди себя в поисках коробки управления, которой здесь, понятно, не было.
В мае 1962 года, на ежегодном Дне открытых дверей в МТИ, хакеры загрузили в PDP-1 двадцать семь страниц ассемблерных команд, составлявших игру на этот момент. Кроме того, они подсоединили к машине дополнительный экран, представлявший собой гигантский осциллоскоп, и, для привлечения внимания сновавшей взад и вперед публики, запустили на весь день «Космические войны». Народ не мог поверить в то, что он видит: научно-фантастическая игра, написанная студентами, и запущенная на компьютере была на такой грани фантастики, что никому даже в голову не пришло, что только что родился целый новый жанр развлечений.
Прошло несколько лет. Рассел в это время уже находился в Стэнфордском Университете, где он понял, что игра была чем угодно, но только не хакерским помрачнением ума. Однажды, после работы поздним вечером, Рассел и несколько его друзей пошли в близлежащий бар, в котором стояли машины для пинбола. Они играли до самого закрытия, а затем, вместо того чтобы пойти домой, Рассел и его товарищи по работе вернулись назад за свой компьютер, и первое что они сделали — запустили звездные войны. Внезапно Расселу в голову пришла мысль: «Эти люди только что прекратили играть в машину для пинбола и пришли поиграть в „Космические войны“. Черт возьми! Это тожемашина для пинбола». Самая совершенная и дорогая машина для пинбола, которая только существует в мире.