После этого Вагнер начал работу над компьютерной программой, которая эмулировала поведение калькулятора. Идея была возмутительной по своей сути. Для кого-то это было абсолютно нецелесообразным использованием дорогостоящего машинного времени. Оно, в соответствии со стандартными представлениями, должно было использоваться только для вещей, максимально полно использовавших возможности компьютеров и для которых в ином случае потребовалось бы множество математиков и масса времени на обсчет результатов. Хакеры считали иначе: все, что выглядело интересным и прикольным, заслужило быть отданным на съедение компьютеру. Они искренне верили в это и занимались этим, используя интерактивные способности машины, когда никто не заглядывает через плечо и не требует допуска для выполнения конкретного проекта. После двух или трех месяцев напряженной работы над тонкостями организации арифметики с плавающей точкой (это необходимо для того, чтобы программа знала, как обращаться с дробными числами) Вагнер написал три тысячи строк кода. Причем это все делалось на машине, которая не имела даже элементарного метода для умножения двух чисел. В результате, Вагнер заставил компьютер чудовищной стоимости выполнять работу, которую в состоянии сделать калькулятор, стоимостью в тысячи раз меньше. Чтобы отдать должное этой иронии, он назвал программу Expensive Desk Calculator, после чего с гордостью продемонстрировал всему классу свое задание, сделанное на компьютере, на одном из занятий.
Ему поставили "единицу". "Вы использовали компьютер!", - сказал ему профессор, - "А это не может бытьправильно".
Вагнер даже не попытался что-либо объяснить. Как бы он смог донести до своего учителя, что компьютер только что сделал реальностью то, что до сего момента относилось к разряду невероятных возможностей? Или как он смог бы ему объяснить то, что еще один хакер написал программу, которая называлась Expensive Typewriter, которая превращала TX-0 в нечто, на котором можно было набирать строки текста и печатать их на Flexowriter-е. Вы могли бы представить себе профессора, который принимает классную работу, написанную при помощи компьютера?
Вселенная человека и машины не была отмечена ни на одной карте, и практически никто, кроме самих хакеров не имел о ней никакого представления. Как бы смог этот профессор, или кто-нибудь другой на его месте, кто не был также погружен в эту Вселенную, понять, что Вагнер и его друзья использовали компьютер только для того, чтобы, по словам Вагнера, сымитировать "странные ситуации, которые вряд ли кто-либо мог предвидеть"? Со временем профессор, как и любой другой человек на его месте, понял бы, что мир, открытый компьютером был бесконечен.
Если кому-то нужны дальнейшие доказательства, то можно вспомнить о проекте, над которым на вычислительном центре работал Коток - программа игры в шахматы. Над ней начал работать еще на IBM 704 "дядя Джон" Маккарти, как его называли хакеры. Хотя Коток и некоторые другие хакеры, которые помогали ему в работе над программой, испытывали презрение к пакетному способу мышления фирмы IBM, которое окружало машину и людей вокруг нее, они были вынуждены нелегально занять некоторое количество машинного времени и интерактивно его использовать. Днем ранее они выдержали битву с системными программистами на IBM 704, в ходе которой выяснилось, какая из групп пользователей является самым большим потребителем машинного времени. Пули свистели по обеим сторонам баррикад, но, в конце концов, эти парни в белых рубашках и черных галстуках уступили и разрешили Котоку и его группе касаться кнопок и переключателей на 704, что было весьма редким осязательным контактом с этой именитой бестией, созданной в IBM.
Роль Котока в претворении в жизнь шахматной программы была показательна в том же плане, что и роль хакеров в области искусственного интеллекта. Обычно, какая-нибудь "Большая Голова", например Маккарти или его коллега Марвин Минский, начинала научный проект или интересовалась вслух реальностью реализации некоторой задачи на компьютере, а хакеры, если им это было интересно, начинали над этим работать.
Шахматную программу начинали писать на языке ФОРТРАН, который был одним из самых первых компьютерных языков. Компьютерные языки были гораздо более похожи на естественные языки, чем язык ассемблера, на них было гораздо легче писать, и с их помощью в нескольких строчках программы можно было сделать гораздо больше. Однако, каждый раз, когда компьютер получал список команд, написанных на языке ФОРТРАН, компьютер должен был сначала перевести эти инструкции в свой собственный бинарный код. Это делалось при помощи программы, называемой компилятором, которая делала максимум этой работы, равно как и занимала максимум ценного пространства памяти компьютера. В итоге, использование компьютерного языка было большим шагом в сторону от прямого контакта с компьютером, поэтому хакеры, как правило, предпочитали использовать ассемблер, или как они его называли, "машинный" язык, в отличие от менее элегантного "высокоуровневого языка" подобного языку ФОРТРАН.
Коток, вообще-то, признавал, что из-за огромного количества инструкций, которое было необходимо реализовать в программе для игры в шахматы, часть кода следовало писать на ФОРТРАНЕ, а часть - на ассемблере. Они хакерили программу по частям, при помощи "генераторов перемещений", которые были основной структурой данных, а также применяя все виды инновационных алгоритмов для реализации стратегии. После ввода в машину всех правил для перемещения каждой из фигур, они добавили в нее несколько параметров, с помощью которых оценивались позиции фигур, рассматривались различные варианты ходов, и, в конечном счете, выполнялись перемещения фигур, которые переводили программу в еще более сложное состояние. Коток занимался ею в течение нескольких лет, программа росла в размерах, по мере того как МТИ модернизировал компьютеры IBM. И, наконец, в одну памятную ночь, несколько хакеров собрались вместе, для того чтобы посмотреть, как программа выполняет свои первые ходы в реальной игре. Программа достаточно уверенно разыграла дебют, но после восьми или около того ходов, на "доске" сложилось тяжелое для компьютера положение - над ним нависла угроза мата. Всем было любопытно, как машина на это отреагирует. Спустя некоторое время (все знали, что во время этих пауз машина "думает", если считать за "мышление" рассмотрение компьютером различных вариантов ходов, их оценку, отбрасывание большинства из них, и использование предопределенных параметров для того, чтобы выполнить окончательный ход). В конечном итоге, компьютер передвинул свою пешку на две клетки вперед, перепрыгнув через другую фигуру на доске. Ошибка! Но достаточно хитрая - компьютер вывел фигуру за пределы доски. Может быть, программа пыталась разработать новый шахматный алгоритм, с помощью которого она хотела одержать верх?
В других университетах, профессоры делали публичные заявления, что компьютеры никогда не сумеют победить человека при игре в шахматы. Но хакеры разбирались в этом лучше. Они были теми, кто вел компьютеры к более высоким вершинам, чем этого ожидали. И хакеры, благодаря своей производительной и значимой связи с компьютером были в первых рядах тех, кто пользовался благами, даваемыми компьютером.
Но это не ограничивалось теми, кто имел доступ к источнику этих благ. Каждый мог получить что-нибудь полезное из использования думающих машин в автоматизированном мире. И разве не получил бы каждый из обитателей этого мира, еще больше, если бы он подходил к миру с той же самой энергией при получении знаний, с тем же скептицизмом по отношению к бюрократии, с той же открытостью воображения и извлечением пользы из успеха, разделенного с окружающими, так же подстегивая самого себя при внедрении улучшений и желая поступать также как все, кто следовал принципам Хакерской Этики? Разве не выиграл бы он, воспринимая остальных людей, тем же самым непредвзятым способом, которым компьютеры воспринимали любого, кто набивал код на Flexowriter-e? Разве мы бы не выиграли, научившись у компьютера его совершенной работе и перенеся эти совершенные методы в человеческую жизнь? И если бы каждый, кто работает с компьютерами руководствовался тем же непорочным, продуктивным и творческим импульсом, которым руководствовались хакеры, то Хакерская Этика могла бы распространиться в обществе как благостная волна, и тогда компьютер действительно изменил бы мир к лучшему.
В монастырских стенах Массачусетского Технологического Института, люди имели достаточно свободы, чтобы думать и жить этой хакерской мечтой. Никто не предполагал, что эта мечта может выйти за пределы Института. Вместо этого, хакеры приступили к строительству, прямо здесь в МТИ, хакерского Ксанаду, которого больше не было нигде на свете.
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, что выглядело куда как менее устрашающе, чем "компьютер", от которого веяло неуклюжими гигантами, был известен как первый миникомпьютер, который разрабатывался для небольших объемов вычислений - для научных исследований, математических расчетов и для… хакинга. Он был настолько компактен, что полностью смонтированная система занимала места не больше чем три холодильника. Ему не было нужно интенсивное кондиционирование, и процедура его запуска не требовала целой группы обслуживающего персонала, которому надо было последовательно подавать в правильном порядке питание на отдельные блоки или запускать тактовый генератор, и все это помимо прочих задач, также требовавших повышенного внимания. Стоимость машины составляла $120,000, это было достаточно дешево, так что большая часть народу, жаловавшегося на высокую стоимость машинного времени, могла успокоиться. Тем не менее, компьютер, который был вторым по счету, не стоил МТИ ни цента (первую машину приобрела научная фирма Болта Беранека и Ньюмана (BBN), находившаяся по соседству). Он был предоставлен фирмой DEC для лаборатории RLE. Теперь у хакеров появилось гораздо больше времени для своих занятий, чем было на TX-0.
Машина PDP-1 поставлялась с простым набором программного обеспечения, которое хакеры сочли полностью непригодным для использования. У хакеров TX-0 уже вошло в привычку работать с самым продвинутым и интерактивным программным обеспечением, которое представляло собой ошеломляющий набор программ, написанными хакерами для самих себя и неявно реализовавших их непрестанные требования контроля над компьютером. Юный Петер Дейч, которому было всего 12 лет, когда он открыл для себя TX-0, выполнил свое обещание написать более совершенный ассемблер, а Боб Сандерс разработал более быструю и меньшую в размерах версию отладчика FLIT, которую он назвал Micro-FLIT. Эти программы использовали расширенный набор инструкций TX-0, которые были не предусмотрены ее создателями. История этого такова: однажды, после обстоятельного планирования и проектирования, выполненных Сандерсом и Джеком Деннисом, TX-0 была остановлена, и группка инженеров залезла в ее внутренности и прошила несколько новых инструкций. Эта сложно реализуемая задача позволила использовать в ассемблере несколько новых команд. Когда плоскогубцы и отвертки были отложены в сторону, а машина - аккуратно запущена, все дружно сели переделывать и бамить свои старые программы с использованием новых команд.