Слаг знал, что его игра про войну в открытом космосе,
Слаг испытывал подобное, хотя и менее яркое чувство при чтении романов Дока Смита. В его воображении рисовались образы белого ракетного крейсера несущегося в пространстве под рев двигателей, и он страстно хотел, чтобы ему удалось реализовать это же ощущение за консолью 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 двадцать семь страниц ассемблерных команд, составлявших игру на этот момент. Кроме того, они подсоединили к машине дополнительный экран, представлявший собой гигантский осциллоскоп, и, для привлечения внимания сновавшей взад и вперед публики, запустили на весь день «Космические войны». Народ не мог поверить в то, что он видит: научно-фантастическая игра, написанная студентами, и запущенная на компьютере была на такой грани фантастики, что никому даже в голову не пришло, что только что родился целый новый жанр развлечений.
Прошло несколько лет. Рассел в это время уже находился в Стэнфордском Университете, где он понял, что игра была чем угодно, но только не хакерским помрачнением ума. Однажды, после работы поздним вечером, Рассел и несколько его друзей пошли в близлежащий бар, в котором стояли машины для пинбола. Они играли до самого закрытия, а затем, вместо того чтобы пойти домой, Рассел и его товарищи по работе вернулись назад за свой компьютер, и первое что они сделали — запустили звездные войны. Внезапно Расселу в голову пришла мысль: «Эти люди только что прекратили играть в машину для пинбола и пришли поиграть в „Космические войны“. Черт возьми!
Также как хакерский ассемблер и музыкальная программа, «Космические войны» не продавались. Ее клали в ящик стола вместе с прочими программами, и любой мог взять ее оттуда, повертеть в руках и переписать ее так, как ему хотелось бы. Усилия группы, когда несколько человек шаг за шагом улучшают программу, вполне может быть серьезным аргументом в пользу Хакерской Этики хотя бы потому, что необходимость вникнуть в природу вещи и сделать ее лучше приводит к ощутимым улучшениям в самом качестве этой вещи. И, конечно, все это сопровождалось весельем и доставляло огромное количество удовольствия. Не было ничего удивительного в том, что другие владельцы PDP-1 услышали об этой программе и ленты с игрой начали свое свободное распространение. В один момент Слагу Расселу в голову пришла мысль, что, наверное, можно было бы сделать на этом какие-то деньги, но дюжины копий игры уже начали циркулировать по всей округе. DEC с удовольствием взяла себе копию, и ее инженеры использовали «Космические войны» как программу финальной диагностики, которая проводилась перед тем, как они вывозили компьютер из дверей компании. Затем, не стирая в компьютере память, машина выключалась. DEC-овские продавцы знали это, и часто бывало так, что когда машину привозили покупателю, менеджер по продажам включал машину, и, удостоверившись, что сзади из под панелей не пошел дым, нажимал на переключатель «VY», который и производил запуск системы с того адреса, где находилась программа «Космические войны». И если машину довезли и донесли аккуратно, то в центре появлялась большая звезда, а два корабля в виде сигареты и трубы были готовы к космической битве. Таким бывал первый пробный «полет» этой волшебной машины.
Так уж получилось, что «Космические войны» еще долгое время привлекали к себе интерес и после ухода основоположников хакерства из МТИ. В течение следующей пары лет, большинство рейдеров TX-0 и PDP-1 покинули Институт. Сандерс получил работу на промышленном предприятии в Санта-Монике (где он позднее переписал эту программу для PDP— 7, которую он использовал в своей работе). Боб Вагнер ушел работать в Rand Corporation. Питер Дейч переехал в Беркли, где начал учиться в колледже. Коток поначалу нашел себе работу по совместительству, которая со временем превратилась во влиятельную должность, связанную с дизайном компьютеров в компании DEC (хотя он еще в течение нескольких лет продолжал зависать в TMRC и в обществе PDP-1). Развивая свои идеи, которые, несомненно, оказали существенное влияние на распространение хакерства за пределы Кембриджа, Джон Маккарти оставил Институт, для того чтобы создать новую лабораторию ИИ на Западном побережье, в Станфордском Университете. Слаг Рассел, вечный кули, пищущий LISP для Маккарти, последовал за ним.
Но появившиеся новые лица и несколько увеличившаяся активность в области вычислений, служила свидетельством того, что хакерская культура в МТИ не только получила продолжение, но и стала буйно цвести и развиваться больше чем когда-либо. Новые люди принадлежали к тем из дерзких и отважных хакеров, которые были обречены на прижизненную славу живых легенд, передаваемых из уст в уста. Но фундамент развития, который позволил этим людям занять свое место в осуществлении хакерской мечты, уже был заложен теми людьми, чьи имена ранее стали известны более обычными способами: школьные газеты, академические награды, и, в некоторых случаях, дурная репутация в научных сообществах.
Эти люди были теми, кто закладывал основы и планировал весь образ такой жизни. Среди них были ученые, которые время от времени занимались хакерством: Джек Денис, Маккарти, Минский, они были полностью поглощены целями вычислений, в отличие от тех, кто испытывал привязанность к собственно процессу. Они рассматривали компьютер как лучшую форму жизни для человеческой расы, но они не всегда разделяли мнение, что работа на компьютере должна быть ключевым элементом в том, чтобы сделать жизнь лучше.
Некоторые из основоположников представляли себе день, когда компьютеры с искусственным интеллектом освободят человеческий мозг от бремени размышлений, так же как в свое время промышленные станки, частично облегчили бремя физического труда. Маккарти и Минский были авангардом этой школы мышления. Они вдвоем участвовали в работе Дартмутской конференции 1956 года, на которой был образован фонд для исследований в данной области. Работы Маккарти в области языка LISP продолжались до своего конца, и были весьма интересными для того, чтобы такие хакеры как Слаг Рассел, Питер Дейч, Питер Самсон и другие, занялись работой с LISP. Мински, похоже, интересовался искусственным интеллектом в более теоретической плоскости: жизнерадостный, лысый Мальчик-с-Пальчик, он разбрасывал семена знаний, каждое из которых могло вырасти в большое дерево полезных технологий и проектов, связанных с искусственным интеллектом.
Те, кто все это начинал, также очень желали, чтобы мощь компьютера попала в руки как можно большего количества исследователей, ученых, статистиков и студентов. Некоторые из них работали над тем, чтобы сделать компьютеры более легкими для использования; Джон Кемени из Дартмута показал, что это может быть сделано при помощи написания программ на легком в использовании языке под названием BASIC. Программы, написанные на языке BASIC, работали гораздо медленнее, чем на языке ассемблера и требовали гораздо больше памяти, но не требовали при этом монашеской отрешенности при его изучении, которого требовал машинный язык. Хакеры из МТИ делали упор на расширении действительного доступа к компьютерам для возможно большего круга людей. В пользу этого существовало много доводов. Не последним было также то, что предполагаемый масштаб экономии был более предпочтителен для систем, существовавших в то время, в которых каждая секунда машинного времени представляла собой существенную ценность (хотя, играя в «Космические войны» на PDP-1 , вы об этом даже не задумывались). Чем больше людей используют компьютер, тем больше должно появляться экспертов в программировании и теоретиков, и компьютерная наука (computer science), а эти деятельные мечтатели называли ее не иначе как наукой, могла бы только выиграть от этих появившихся новых талантов. Но это было еще не все. Любой хакер мог понимать и верить в то, что компьютерные вычисления, являются позитивными сами по себе и по их месту в обществе. Джон Маккарти разделял эти взгляды, когда он говорил, что естественное состояние человека — находиться в онлайне с компьютером все время: «Чего хочет пользователь, так это компьютер который он может иметь всецело в своем распоряжении и использовать его в течение длительных периодов времени».
Человек будущего. Руки на клавиатуре, глаза на дисплее, в постоянном контакте c гигантским объемом информации, который сохранил мир с начала своей истории. Она вся будет доступна Человеку Вычисляющему.
Это было невозможно на пакетной IBM 704. Этого не могло произойти на TX-0 и PDP-1, с их еженедельными расписаниями, полностью заполняемыми в течение нескольких часов после вывешивания на стену. Нет, для того чтобы это сделать, необходимо чтобы несколько людей работали на компьютере одновременно. (Мысль о том, чтобы у каждого человека был собственный компьютер, мог придумать только хакер). Концепция многопользовательской работы называлась разделением времени, и в 1960 году самый продуктивный из генераторов идей МТИ образовал Группу по исследованию отдаленного эффекта компьютеров. Среди ее членов были люди, которые с удивлением и одобрением наблюдали за подъемом хакерства в МТИ, такие как Джек Деннис, Марвин Минский, и «дядя Джон» Маккарти. Они знали, насколько важной является непосредственная работа с этими вещами. Вопрос о том, стоило ли делить время на компьютере или нет, был для них практически решен. Куда как более важным для них был вопрос о том, как сделать это.
Изготовители компьютеров, в особенности IBM, не были такими энтузиастами. И было понятно, что МТИ в этом вопросе придется полагаться на самих себя. (Исследовательская фирма Болта Беранека и Ньюмана BBN также работала над проблемой разделения времени). В конце концов, в МТИ, тоже начали работу над двумя проектами: над одним работал Джек Денис, в основном самостоятельно, пытаясь написать систему с разделением времени, которая бы работала бы на PDP-1. Другой проект возглавил профессор Ф. Дж. Корбейт, который попытался получить некоторую поддержку у неохотного гиганта IBM, для того чтобы написать аналогичную систему для 7090.
Министерство обороны, через свое Агентство По Передовым Исследовательским Проектам (Advanced Research Projects Agency (ARPA)) поддерживала информатику (компьютерную науку) начиная еще с войны, памятуя о возможном конечном использовании разработок в военных целях. Благодаря этому, в начале 60-х годов, МТИ получило долгосрочный грант на работы связанные с проектом системы с разделением времени, который назывался Project MAC[21]. Дядя Сэм «откашливал» на это дело по три миллиона долларов в год. Деннис за все это отвечал. Марвин Минский также принимал во всем этом большое участие, особенно в использовании одной трети средств, которая отходила не к разработке системы с разделением времени, а к работам во все еще эфемерной области искусственного интеллекта. Минский был весьма доволен, так как миллион долларов более чем в десять раз превышал весь его предыдущий бюджет на работы связанные с ИИ, а также он надеялся, что значительная часть оставшихся двух третей, также будет пущена на работы в этой области. Это был шанс организовать идеальную лабораторию, где люди могли бы планировать реализацию хакерской мечты при помощи более совершенных машин, защищаясь от бюрократических глупостей внешнего мира. Тем временем, хакерская мечта находила себе приют и жила день за днем в студентах, которые посвятили себя машине.
Те, кто начинал все это дело, знали, что для работы в данной лаборатории, им будут нужны особенные люди. Марвин Минский и Джек Денис знали, что энтузиазм лучших из лучших хакеров крайне необходим для реализации их Гениальных Идей. Теории в области ИИ , над которыми работали исследователи, по большей своей части были весьма абстрактны, и только некоторые из хакеров были в курсе относительно предмета этих исследований, в то время как большинство хакеров про это просто ничего не знало. Поэтому вопрос о том , как делать эти программы и как заставить их работать, был по-прежнему открыт.
Минский был весьма счастлив тем, что ему удалось решить этот вопрос, передав его хакерам, людям для которых, «компьютеры были самой интересной вещью в мире». Это был род людей, которые забавы ради, могли хачить что-нибудь, еще более причудливое чем «Космические войны», а затем, вместо того чтобы в нее играться всю ночь (как это иногда случалось в Клудж Комнате), продолжать хачить ее дальше. Вместо космических симуляторов, хакеры, которые занимались Проектом МАК, строили большие системы: роботизированные манипуляторы, системы машинного зрения, математические головоломки, до крайности запутанные системы с разделением времени, которые поражали воображение. К счастью, курс, поступивший в начале 60— х годов в МТИ, дал самых ярких и преданных делу хакеров, которые когда-либо садились за консоль. Но никто из них не соответствовал титулу «хакер» более полно, чем Ричард Гринблатт.
4.Гринблатт и Госпер
Рики Гринблатт был хакером, который рано или поздно должен был появиться в этом мире. Спустя много лет, когда он уже был признанным авторитетом среди хакеров и был известен во многих национальных вычислительных центрах, когда ходила масса рассказов о его способности к умственной концентрации, равно как и о миллионах строк ассемблерного кода, которые он похачил к этому времени, его спросили о том, как это все начиналось. Он откинулся в кресле, выглядя уже не так беспорядочно, когда он был студентом с ангелоподобным выражением лица, темной шевелюрой и болезненной боязнью публичных выступлений. Вопрос, в его понимании, сводился к тому, были ли хакеры таковыми от рождения или ими становились? После этого он изрекал хорошо известный, и не согласующийся ни с какой логикой «блаттизм»: «Если хакерами рождались, то ими становились, если хакерами становились, то значит, ими рождались». Но Гринблатт согласился бы с тем, что он был прирожденным хакером. Его жизнь изменилась задолго до первой встречи с PDP-1. Она ему была просто интересна, что впрочем, было неудивительно. Это произошло на неделе знакомства первокурсников с МТИ, и у Рики Гринблатта было в распоряжении некоторое время, перед тем как определиться с курсами и приготовиться к академической славе. Он посетил все места, которые интересовали его в первую очередь: радистанцию WTBS (Эта станция, находившаяся в МТИ, возможно, была единственной институтской радиостанцией в стране, где были в большом достатке аудиоинженеры из числа студентов и недостаток диск жокеев), Клуб Технического Моделирования Железной Дороги и Клудж Комнату в Здании №26, в которой стояла PDP-1. Несколько хакеров играло на ней в «Космические войны».
В игру было принято играть с полностью потушенным в комнате верхним светом, так что лица людей, сгрудившихся около дисплея, были подсвечены экранными отблесками кораблей и крупных звезд. Вид сосредоточенных лиц, в дисплейных бликах произвел впечатление на Рики Гринблатта. Он некоторое время понаблюдал за космической битвой, затем зашел в соседнюю дверь, осмотрел TX-0 — ее стойки с трубками и транзисторами, причудливыми блоками питания, огоньками и переключателями. Его школьный математический клуб в Колумбии, что в штате Миссури, однажды приходил в местный университет на экскурсию, чтобы посмотреть на университетский пакетный компьютер, и еще, в местной страховой компании, он видел гигантскую машину для сортировки перфокарт. Но он не встречал ничего подобного тому, что он встретил здесь. Но, тем не менее, несмотря на то, что он был впечатлен радиостанцией, Клубом Моделирования Железной Дороги, и в особенности, компьютерами, он сел заполнять свой учебный план.
Это ученическое прилежание было не последним, что оставалось ему в его жизни. Гринблатт, даже больше чем обычный студент МТИ, был добровольным последователем Практического Императива. Его жизнь безвозвратно изменилась в один из дней 1954 года, когда его отец, в одно из посещений своего сына, с которым он не жил вместе из-за раннего развода с его матерью, взял его с собой в Мемориальный Студенческий Союз в Университете Миссури, который находился недалеко от его дома в Колумбии. Рики там очень быстро освоился, не только потому, что там был комфортабельный холл с телевизором и баром с газированными напитками, а, скорее, потому что студенты, в отличие от его одноклассников, гораздо больше по уровню своего развития подходили девятилетнему Рики Гринблатту. Он приходил туда поиграть в шахматы, и обычно без затруднений выигрывал у студентов, потому что он был очень хорошим игроком.
Одной из его шахматных жертв был студент из Университета штата Миссури, учившийся на инженерном факультете, по программе государственного финансирования. Студента звали Лестер, и он на практике познакомил девятилетнего одаренного мальчика с миром электроники. Это был мир, в котором не было никаких двусмысленностей, где всем правила логика, где у вас были определенные возможности управлять вещами и событиями и где вы могли строить вещи так, как вы хотели. Для девятилетнего мальчика электроника была прекрасным средством уйти от действительности. Он, должно быть, чувствовал себя не в своей тарелке, из-за разницы между своим умственным возрастом и возрастом биологическим, а кроме того он был еще и просто ребенком, который переживал развод родителей, на который он никак не мог повлиять, и что не было редкостью в мире взрослых человеческих отношений.
Лестер и Рики работали над любительским радио, разбирая на части старые телевизоры. Перед окончанием колледжа Лестер познакомил Рики с мистером Хоутоном, которому принадлежал местный магазин по продаже радиодеталей, ставший вторым домом для мальчика вплоть до окончания школы. Будучи учеником старших классов, Гринблатт собрал очень много сложных вещей. Усилители, модуляторы, всевозможные устройства на зловеще выглядящих электронных лампах. Осциллограф, радиолюбительский трансивер, телекамеру. Да, да. Телекамера! Это было привлекательной идеей, именно поэтому они ее собрали. И, конечно, когда пришло время выбирать институт, то Ричард Гринблатт остановил свой выбор на МТИ. Он поступил в него осенью 1962 года.
Семестровая работа во время первого полугодия обучения была достаточно сложна, но Гринблатт справился с нею без особых проблем, разработав способ связи между несколькими компьютерами университетского городка. Он был счастлив, когда ему удалось выбрать курс «ЕЕ641 Введение в компьютерное программирование» и он часто засиживался за перфораторами в комнате ЭОПД, подготавливая программы для Неповоротливого Гиганта IBM 7090. Кроме того, его товарищ по комнате, Майк Беелер, слушал курс, который студенты называли Номографией. Студенты, которые слушали этот курс лекций, имели непосредственный доступ к IBM 1620, установленный в еще одном владении заблудших Жрецов. Их мозг был подернут туманом невежества, который старательно напускали менеджеры по продаже из фирмы IBM. Гринблатт часто приходил вместе с Беелером на 1620, где можно было пробить свою колоду карт, после чего встать в очередь. Когда подходило ваше время, колода ставилась в считыватель, после чего из принтера начинала выползать распечатка. «Это было своеобразным вечерним развлечением», позднее вспоминал Беелер, — «Мы делали это тогда, когда остальные смотрели спортивные репортажи по телевизору или шли за пивом». Развлечение было небольшим, но приносившим удовлетворение. Однако, Гринблатт желал большего.
В канун Рождества, он окончательно освоился и решил оставаться в Клубе Моделирования Железной Дороги. Здесь, среди людей подобных Питеру Самсону, было весьма естественным впадать в режим хакерства[22]. Самсон работал над большой программой по составлению расписания работ над гигантской схемой железной дороги в TMRC. Так как программа требовала выполнения вычислений, то Самсон писал ее на ФОРТРАНе для 7090. Гринблатт решил написать ФОРТРАН для PDP-1. Если бы кто-нибудь решил узнать (что маловероятно), почему он захотел это сделать, он не смог бы мог толком объяснить. Впрочем, это встречалось сплошь и рядом: если вам необходимо было выполнить на машине определенную задачу, но машина не имела для этого соответствующего программного обеспечения, то следовало писать это программное обеспечение, а после этого решать свою задачу с его помощью. Это было импульсом, который, в дальнейшем, Гринблатт доведет до совершенства.
Он его написал. Он написал программу, которая позволяла вам писать на ФОРТРАНе, то есть брать то, что вы написали на ФОРТРАНе, компилировать код в машинный язык, а также передавать в программу на ФОРТРАНе, данные из программы на машинном языке. В основном Гринблатт занимался компилятором ФОРТРАНа в своей комнате, в общежитии, так как у него были проблемы с получением достаточного объема времени для доступа к PDP-1. Помимо этого, он еще занимался новой системой реле под основанием железной дороги в клубе. Обстановка в клубе была своеобразная: в комнате с потолка вот-вот мог отвалиться кусок штукатурки и закоротить контакты на системе, которую придумывал и строил Джек Деннис еще в середине пятидесятых. С комнатой всегда были проблемы; обслуживающий персонал, не почитал ее своим вниманием, так как хакеры препятствовали всякой уборке и ремонту. Но никто не обращал на это внимания, потому что появились новые пружинные реле, которые выглядели гораздо лучше, чем их предшественники. Так что Гринблатт той весной потратил изрядное количество времени, занимаясь всем этим и, параллельно, хакингом на PDP-1.
Забавно как порой поворачивается жизнь. Вы, как студент, начинаете добросовестно отдавать все свои силы учебе. Вы старательно выполняете учебный план, а затем вы открываете для себя нечто, что отодвигает занятия на их соответствующее место — они становятся лишними по отношению к тому, что попадает к вам в руки. Этим предметом в ваших руках был хакинг — настолько очевидный процесс, что никто в TMRC или из тех, кто работал на PDP-1, не рассматривал в качестве темы для полезного разговора обсуждение хакерства как своеобразной погони за удовлетворением от вдыхания жизни в то, что создано вашими руками. Хотя компьютеры и были сложной вещью, они не были настолько сложны как различные события и последствия взаимоотношений внутри человеческого зоопарка. Но, в отличие, от формального или неформального изучения социальных наук, хакерство дает вам не только понимание работы системы, но дает также и весьма притягательную возможность управления системой, а также иллюзию того, что стоит добавить еще пару-другую свойств в систему и будет получен полный контроль. Естественно, вам приходится размышлять по поводу реализации этих свойств в системе, определять какие из них являются наиболее нужными, для того чтобы система работала должным образом. Кроме того, работа с улучшенной версией системы дает вам возможность узнать о еще большем количестве задач, которые вам следует решить. Например, Марвин Минский может появиться и сказать: «Вот роботизированный манипулятор. Я хочу управлять этой рукой при помощи компьютера». После этого в мире не остается ничего существенного, кроме изготовления соответствующего интерфейса между машиной и роботизированным манипулятором, реализации управления роботом и придумывание способа создания системы, где эта роботизированная рука будет знать, что она делает. Затем вы начинаете наблюдать, как ваше детище начинает двигаться. Разве может с этим сравниться нудная лекция по инженерным методам? Каковы шансы на то, что ваш профессор, который читает эту лекцию, делал в своей жизни хотя бы нечто наполовину столь же интересное, как проблемы, которые вы решаете на PDP-1 каждый день. И кто из вас прав в этом случае?
Когда Гринблатт учился на втором курсе, ситуация вокруг PDP-1 существенно изменилась. Хотя некоторая часть родоначальников хакерства TX-0, к этому времени уже покинула институт, по-прежнему появлялись новые таланты, для которых нашлось новое место в реализации их амбициозных планов, к тому же созданное на деньги благосклонного Министерства Обороны. В институте была установлена вторая PDP-1. Ее домом стал новое, девятиэтажное прямоугольное здание на Мэйн Стрит. Это было здание, нагонявшее тоску своим внешним видом: абсолютно ровные стены и окна без подоконников, которые выглядели словно нарисованные на ее беловатой поверхности. Здание называлось ТехноСквером, и помимо служб МТИ и корпоративных клиентов в него переехал и Project MAC. Девятый этаж этого здания, там, где располагались компьютеры, стал домом для нескольких поколений хакеров. Но среди них не было никого, кто не проводил бы там времени больше, чем Гринблатт.
Гринблатту, как работнику из числа студентов, даже платили за то, что он хакерил какие-то программы, правда стоимость такой работы была ниже низшего. Он работал совместно с другими хакерами, которые начали разрабатывать большие программы для искусственного интеллекта. Со временем хакеры начали обращать внимание на то, что этот, не к месту вежливый второкурсник, имеет все задатки для того, чтобы стать суперзвездой программирования на PDP-1.
Он перепахивал невероятные объемы кода, занимаясь, насколько это было возможно, хакингом на компьютере, или сидя за стопкой распечаток и делая на них пометки. Он сновал между PDP-1 и TMRC. Его голова была фантастически загружена структурами программ, над которыми он работал и системами реле, которые он хакерил под схемой железной дороги. Для того чтобы сохранять концентрацию на длительный период времени, он жил по тридцать часов в день, так же как и остальные его товарищи. Ему хорошо давалось интенсивное хакерство, так как в его распоряжении был протяженный период времени, чтобы можно было вникнуть в программу. После того как вы в действительности начинали работать, таким небольшим мелочам как сон не следовало придавать большого значения. Главным за эти тридцать часов было максимально отдаться своему делу, сгореть, достичь полного опустошения, затем пойти домой, добраться до койки и отрубиться часов на двенадцать. Альтернативой было отключиться прямо здесь — в лаборатории. Небольшой недостаток именно такого расписания, заключался в том, что было необходимо выполнять все то же самое, что делали другие люди: приходить на свидания, принимать пищу и посещать занятия. Хакеры выясняли, чем он занимается, спрашивая: «В какой фазе Гринблатт находиться сейчас?» И, кто-нибудь из тех, кто видел его недавно, говорил: «Я думаю, что он сейчас находиться в ночной фазе и должен появиться около девяти или около того». Его преподаватели не подстраивались под эти фазы, и поэтому Гринблатт не уделял должного внимания их занятиям.
Из-за проблем с успеваемостью, он был вынужден уйти в академический отпуск, после чего его мать приехала в Массачусетс, чтобы встретиться и побеседовать с деканом. Ей объяснили ситуацию. «Его мама была обеспокоена», — вспоминал позднее Беелер, его товарищ по комнате. «Она думала, что он находится здесь, чтобы получить диплом. Но то, что он совершал, было поразительно, потому что такого раньше никто не делал, а он хотел сделать еще больше. После всего этого было весьма трудным заинтересовать его занятиями». Для Гринблатта, перспектива вылететь за неуспеваемость из института не имела большого значения. Хакерство главенствовало надо всем: это было лучшее из того, что он умел делать, и это заставляло его быть самым счастливым человеком на свете.
Затем случился худший момент в его жизни: он настолько «вышел из фазы», что умудрился проспать последний экзамен. Исключение из института, возможно, не повлекло бы никаких изменений в его жизни, так как не было правил, которые бы ограничивали предоставление работы в институте исключенным студентам. Но Гринблатт решил начать подыскивать себе работу, намереваясь найти работу по программированию на полный рабочий день, так чтобы можно было проводить свои ночи в том месте, где он хотел: на девятом этаже в ТехСквере. Ночи он хотел посвятить хакерству — это было именно то, чем он хотел заниматься.
В то время на PDP-1 был еще один хакер, столь же выдающийся, но работавший в несколько другой манере. Он был более словоохотлив, чем Гринблатт, и лучше объяснял свое видение того, как компьютер сумел изменить жизнь его и остальных. Этого студента звали Билл Госпер. Он начал учиться в МТИ на год раньше Гринблатта, но постоянным обитателем PDP-1 стал несколько позже. Госпер был очень худым, с птицеподобными чертами лица, закрытыми толстыми стеклами очков и неприбранной копной курчавых волос на голове. Но даже краткий разговор с ним, показывал, что одаренность вашего собеседника отодвигала физическую привлекательность на задний план. Он был гением в математике. Госпера привлекала в компьютере возможность использования хакерских приемов в мире математики, в отличие от хакинга систем — то чем интересовался Гринблатт. Госпер среди сообщества гениальных «пехотинцев», которых собирал вокруг себя Project MAC, в течение долгого времени контрастировал с Гринблаттом и другими людьми, ориентированными на системы.
Госпер был родом из Пеннсакина, городка в Нью-Джерси, расположенного вниз по реке от Филадельфии. Его доинститутское общение с компьютерами сводилось к лицезрению из-за стеклянной перегородки работы Неуклюжих Гигантов стоящих в гермозоне. Он хорошо помнил как Univac, стоявший в Институте Франклина в Филадельфии, печатал портрет Бенджамина Франклина на строчном принтере. Госпер не имел ни малейшего понятия о том, как это было сделано, но выглядело это весьма прикольно и впечатляюще.
Впервые он вкусил этого развлечения во время второго семестра обучения в МТИ. Он взялся изучать курс «Дядюшки Джона» Маккарти, на который допускались только те из первокурсников, которые набрали невероятно высокий средний балл за предыдущий семестр обучения. Курс начинался с изучения ФОРТРАНа, затем машинного языка IBM, после чего изучалась PDP-1. Решаемые задачи были весьма нетривиальными — это были проблемы типа трассировки лучей через оптические системы, которые обсчитывались на IBM 709, или написание подпрограмм для работы с плавающей точкой при помощи нового интерпретатора арифметики для PDP-1.
Программирование бросило свой вызов Госперу. Это особенно сильно ощущалось на PDP-1, которая после пытки на IBM, могла действовать на вас как опьяняющий эликсир, либо как занятие сексом в первый раз в своей жизни. Спустя несколько лет, Госпер говорил об этом: «Дрожь охватывала тело, когда вы чувствовали под пальцами настоящую клавиатуру, и ощущали получаемый в течение нескольких миллисекунд ответ от машины».
Но, после того как курс закончился, Госпер все еще был в нерешительности, размышляя над тем, стоило ли продолжать заниматься PDP-1. Он учился на математическом факультете, где люди постоянно говорили ему, что было бы разумным держаться как можно дальше от компьютеров, чтобы они не превратили его в клерка. Госпер обнаружил, что неофициальным лозунгом матфака была фраза: «Нет такой науки как информатика — это все колдовство и алхимия», из чего следовало, что Госперу, чтобы учиться дальше, придется стать алхимиком. Он записался на курс лекций Минского по исскуственному интеллекту. Работа снова была связана с PDP-1, и с этого момента Госпер был непосредственно вовлечен в процесс хакинга. За этот семестр он написал программу, которая строила графики функций на экране. Это был его первый реальный проект, а одна из его подпрограмм содержала настолько элегантный код, что он отважился показать ее Алану Котоку. По мнению Госпера, Коток к тому времени уже имел «богоподобный статус», полученный не только за свои хаки PDP-1 и работу в TMRC, но также было хорошо известно, что он работает в DEC и играет главную роль в разработке нового компьютера, который был сильно переработанной версией PDP-1. Госпер был в восторге, когда Коток не только внимательно посмотрел его хак, но и нашел его достаточно интересным, для того чтобы показать его остальным. «Коток действительно считал, что я сделал нечто интересное». Окрыленный Госпер засел за еще более интенсивное хакерство.
В этом курсе обучения его большим проектом стала попытка «найти решение» для игры HI-Q. В вашем распоряжении была доска в форме креста, в которой было 33 отверстия. Во всех отверстиях кроме одного было по фишке; вы могли перескакивать через фишки, снимая их с доски. Целью игры было оставить одну фишку в центре. Когда Госпер и два его одногруппника сообщили Минскому, что они собираются решить эту задачу на PDP-1, Минский высказал сомнения в ее осуществлении, но все же порекомендовал попробовать. Госпер, с друзьями, не только решили ее, но и как он позднее говорил: «Мы ее разгромили!» Они схакерили программу, которая давала возможность найти решение игры в пределах полутора часов.
Госпер восторгался тем, как компьютер находил решение для игры в HI-Q, потому что его подход был «контринтуитивным». Он испытывал большое уважение к программам, которые использовали способы, которые на первый взгляд выглядели невозможными, но на самом деле использовали все преимущества глубокой математической логики лежащей в основе проблемы. Контринтуитивное решение возникало из понимания магических связей между вещами в широкой массе численных связей, на которых, в конечном счете, и основывалось хакерство. Открытие этих взаимоотношений, которые составляли новую математику, стало крестовым походом, главной задачей для Госпера, и он стал все больше и больше тратить время на PDP-1 и в TMRC. Эти его изыскания, сделали его незаменимым и главным «матхакером», который не сильно интересовался системными программами, но был в состоянии разрабатывать удивительно красивые (не интуитивные!) алгоритмы, которые могли бы помочь системным хакерам выкинуть несколько инструкций из процедуры, или преодолеть умственный затык, мешавший работе программы.
Госпер и Гринблатт представляли два подхода к процессу хакерства, существовавших в TMRC и PDP-1: Гринблатта интересовала прагматическая сторона построения систем, а Госпера занимали математические методы их обоснования. Каждый из них уважал сильную сторону другого, и они часто вдвоем принимали участие в различных проектах, совместно работая над теми вещами, которые наилучшим образом раскрывали способности каждого из них. Более того, они сделали существенный вклад во все еще находившуюся в зачаточном состоянии культуру, которая начала цвести полным цветом на девятом этаже ТехСквера. По различным причинам, именно здесь, в этом месте с «горячими» технологиями, эта культура начала буйно расти, доводя Хакерскую Этику до ее наивысшей точки.
Ходу пьесы было суждено поменяться уже через несколько актов. Клудж Комната, в которой работала PDP-1 под управлением системы с разделением времени, которую Джек Деннис писал в течение года, все еще пользовалась популярностью при необходимости ночного хакинга, и в особенности для игры в «Космические войны». Но истинные хакеры все больше и больше предпочитали иметь дело с компьютером, работавшим в составе Project MAC. Он располагался среди других машин, на ярко освещенном и плохо обставленном девятом этаже ТехСквера, где избежать непрерывного гула от работавших компьютерных кондиционеров можно было, только нырнув в один из нескольких крошечных офисов. Здесь же находился клуб TMRC, со своей никогда не иссякающей машиной, полной Кока-Колы, машиной по размену денег, созданной в свое время Сандерсом. По соседству с клубом находилась Инструментальная Комната, где всю ночь заседали хакеры, споря о том, что для непосвященных выглядело сложно понимаемыми и загадочными вещами.
Эти споры были движущей жизненной силой хакерского сообщества. Иногда спорщики срывались на крик, когда кто-нибудь настаивал на определенном виде схемы кодирования для ассемблера или специфическом виде интерфейса, или о каком-нибудь особенном свойстве компьютерного языка. Именно
И у Госпера и у Гринблатта были свои сильные доводы в пользу именно своего видения проблемы, но обычно Гринблатт быстрее уставал от «этих разъедающих сознание человеческих интерфейсов» и удалялся для того, чтобы действительно
Госпер предпочитал публичный стиль хакинга. Ему нравилось работать при стечении народа, и часто начинающие хакеры подтаскивали стулья и садились за его спиной, для того чтобы можно было смотреть на консоль, на которой он создавал свои искусные хаки, и которые весьма часто содержали небольшие, но интересные математические фокусы. С дисплейными хаками он делал практически все, что было возможно, применяя самые неожиданные алгоритмы, вызывавшие непредсказуемые серии пиротехнических эффектов на CRT. Госпер вел себя как экскурсовод, объясняя все, что он делал по мере своего продвижения, иногда подчеркивая, что даже клавиатурные ошибки могут представлять собой интересный численный феномен. Он непрестанно удивлялся тому, как компьютер возвращал назад что-нибудь неожиданное. Он воспринимал все, что выдавал компьютер с бесконечным уважением. Иногда выглядящее случайным событие могло отвлечь его в сторону удивительным проявлением иррациональных корней квадратного уравнения или трансцендентной функции. Некоторые колдовские манипуляции над процедурами в программе Госпера могли со временем могли превратиться в ученые записки, подобные вот этой, начинавшейся такими словами:
«Известно что, из-за слабой изученности, непрерывные дроби используются достаточно редко. Я предлагаю нижеследующую демонстрацию относительных преимуществ использования непрерывных дробей в сравнении с другими численными представлениями.»
Споры в Инструментальной Комнате перестали быть просто тусовками. Здесь часто бывал Коток, и на этих собраниях принимались весьма важные решения, касавшиеся компьютера, который он разрабатывал для DEC. Этой новой машиной была PDP-6. Еще на стадии своей разработки PDP-6 рассматривалась в TMRC как абсолютно Правильная Вещь. Коток иногда подвозил Госпера домой в Нью-Джерси, во время каникул или праздников, разговаривая за рулем о том, что компьютер будет иметь целых
DEC полностью завершил работы над PDP-6 и передал первый прототип в Project MAC. Все пришли на нее посмотреть. И хотя по всем признакам он выглядел как компьютер для коммерческих пользователей, в своей основе это все-таки была хакерская машина. И Коток, и его шеф — Гордон Белл, постоянно держали в уме свои дни на TX-0, а потому старались в PDP-6 реализовать все то, что их связывало по рукам и ногам на TX-0. Кроме того, Коток внимательно слушал все, что говорили ребята из TMRC, а в особенности он прислушивался к Питеру Самсону, который предложил использовать 16 регистров. В наборе команд у PDP-6 было все что нужно, общая архитектура машины тоже выглядела очень хорошо. Доступ до этих 16 регистров производился тремя различными способами, которые можно было между собой комбинировать, что позволяло много сделать при помощи всего одной команды. В PDP-6 был также реализован «стек», делавший возможным совмещение подпрограммы, программы и кода. Для хакеров, знакомство с PDP-6 и ее восхитительным и прекрасным набором команд означало, что отныне они имеют весьма мощный словарь, которым теперь можно выражать тонкие оттенки настроений, для которых ранее использовались грубые и неуклюжие слова.
Минский усадил хакеров за написание нового системного программного обеспечения для PDP-6, прекрасной машины цвета морской волны, с тремя большими стойками оборудования, более рационально организованной управляющей панелью, по сравнению с «Единицей», с рядами блестящих тумблеров и мерцающей матрицей огоньков. Вскоре они проникли в психологию этой новой машины также глубоко, как это было на PDP-1. Но на «шестерке» можно было идти еще дальше. Однажды хакеры игрались в Инструментальной Комнате в TMRC с процедурой печати десятичных чисел, небольшой программой, которая позволяла компьютеру печатать арабские цифры. Кто-то предложил использовать для этой цели новые, так бросающиеся в глаза, команды PDP-6, те самые, которые использовали стек. Ранее эти команды в своем коде никто не использовал. По мере того как программа, после использования инструкции PUSH-J начала печатать на экране десятичные цифры, то оказалось, что к всеобщему удивлению, вся процедура печати десятичных чисел, занимавшая обычно не менее страницы кода, поместилась в последовательность из шести инструкций длиной. После этого, весь TMRC, единодушно, согласился с тем, что команда PUSH-J, несомненно, является Правильной Вещью, которая стоила того, чтобы ее реализовали в PDP-6.
Разговоры и споры из Инструментальной Комнаты часто переносились на обед. Предпочтительной кухней практически всегда оказывалась китайская кухня. Она была дешевой, изобильной и хорошо доступной ночью. (Вторым, более худшим вариантом, была находившаяся неподалеку тошниловка под названием F&T Diner, располагавшаяся в старом железнодорожном вагоне, отделанном красно-коричневыми панелями. Хакеры прозвали ее «Красная Смерть»). В большинство субботних вечеров, а иногда и посреди недели, обычно поздно вечером, после десяти часов, группа хакеров направлялась куда-нибудь в бостонский Чайнатаун, иногда на синем Chevy 1954 года с откидным верхом, принадлежавшем Гринблатту.
Китайская кухня также была системой, и хакерское любопытство было применено к этой системе с тем же усердием, с каким оно применялось к новому компилятору LISP. Самсон был ее ревностным поклонником, начиная с его первого знакомства с ней в TMRC, и периодических посещений ресторанчика «Joy's Pong», что на центральной площади университетского городка. В начале шестидесятых, он даже выучил достаточное количество китайских иероглифов, для того чтобы самостоятельно разбираться в меню и заказывать эти таинственные блюда. Госпер относился к этой кухне еще энергичней; он рыскал по всему Чайнатауну в поисках ресторана, работавшего после полуночи, и однажды он нашел нечто подходящее — маленький ресторан, размещавшийся в небольшом подвальчике, которым владела семья китайцев. На первый взгляд, все что там готовилось, было ничем не примечательной едой, но он заметил, что некоторые китайцы из числа посетителей едят блюда, выглядящие весьма странно и необычно. Он решил привести сюда Самсона.
Они вернулись в ресторанчик с охапкой китайских словарей под мышкой и потребовали меню. Владелец ресторана, мистер Вонг, неохотно подчинился, но все-таки принес желанный список, после чего Госпер, Самсон и остальные начали его разглядывать, как если бы это был набор команд для нового компьютера. Самсон сделал перевод, который оказался разоблачительным; то, что называлось в англоязычном меню «Мясо с томатами», имело на самом деле название «Свиноговядина в варварском баклажане». «Вонтон»[23] имел китайский эквивалент в виде «Глоток облаков». В системе открывалось наличие невероятных вещей! Посовещавшись, они решили заказать самые интересные с их точки зрения блюда: «Крыло Гибискуса? Давай это закажем, заодно и посмотрим что это такое!» Они позвали мистера Вонга, и сделали заказ, после чего он начал причитать по-китайски, категорически не одобряя их выбор. Было похоже, что он не очень— то хочет готовить американцам китайскую еду, полагая что они не в состоянии будут ее есть. Мистер Вонг принимал их за обычных американцев, но именно эти его клиенты были исследователями, жившими внутри компьютера, для того чтобы рассказывать машине сказку (сказка была на языке ассемблера). Мистер Вонг, в конечном счете, сдался. Результатом тому была лучшая китайская кухня, которую ни один хакер до этого не пробовал.
Народ из TMRC стал таким экспертом в хакерстве китайской кухни, что они, в конечном счете, стали в ней очень хорошо разбираться. Однажды, это было в День Дурака, т.е. первого апреля, Госперу вдруг захотелось попробовать малоизвестное блюдо под названием Горькая Дыня. Это был овощ похожий на зеленый перец, весь покрытый бородавчатыми пупырышками, с сильным хинным вкусом, который вызывал тошноту у любого кто его пробовал, кроме тех болезненно наслаждался его вкусом. По необъяснимой причине, Госпер захотел, чтобы ее приготовили ему с кисло-сладким соусом, и написал на китайском заказ. Вышла хихикающая дочь хозяина: «Я боюсь, что вы ошиблись, мой отец сказал, что здесь написано 'Горькая Дыня под Кисло-Сладким Соусом'». Госпер счел, что его пытаются взять на «слабо». Кроме этого, его задело то, что дочь хозяина не могла читать по-китайски, что было против логики эффективной Китайской Ресторанной Системы, логики, которую Госпер уважал. Поэтому, зная, что его заказ был абсурдным, он с возмущением сказал дочери хозяина: "Да, конечно, там написано Горькая Дыня под кисло-сладким соусом. Мы, американцы,
Во время этих обедов и ужинов, хакеры имели наибольший социальный контакт с остальным миром. Китайские рестораны предлагали хакерам удивительную кулинарную систему и физически предсказуемое окружение, для того чтобы делать его еще более комфортабельным, Госпер, будучи одним из хакеров, которые непереносили курения, и презрительно относившийся к тем, кто курит, принес с собой маленький вентилятор, работавший от батареек. Вентилятор был «склуджен» одним из хакеров, обитавшимся в лаборатории ИИ, и выглядел как небольшая маленькая бомба. Он был сделан из старого вентилятора, взятого из списанного в утиль компьютера. Госпер обычно поворачивал его так, чтобы дым тихо сдувало назад на курившего. Однажды, на обеде в «Лаки Гарден» в Кембридже, какой-то сидевший по соседству крутой чувак пришел в ярость, когда вентилятор начал относить дым от сигареты его подружки назад к нему на стол. Он посмотрел на этих помятых типов из МТИ, с их маленьким вентилятором и потребовал от хакеров, чтобы они его выключили. «Без проблем, если она прекратит курить», —ответили они. В следующий момент чувак атаковал их стол, распинывая по сторонам тарелки, разбрызгивая чай из чашек и даже пытаясь засунуть палочки для еды между лопастями вентилятора. Хакеры, которые расценивали физическую потасовку в качестве одного из самых идиотских человеческих интерфейсов, удивленно за всем этим наблюдали. Инцидент закончился сразу же после того как чувак заметил сидевшего в этом же ресторане полицейского.
Это было исключением из их обычно весьма дружеских и теплых посиделок. Разговоры вертелись, в основном, вокруг различных хакерских тем. Они часто брали с собой свои распечатки и, во время периодических затиший в разговоре, зарывались в стопы листов с ассемблерным кодом. Иногда, хакеры даже обсуждали некоторые события, происходившие в «реальном мире», но на всем протяжении их разговора также прослеживалась Хакерская Этика. Постепенно она сводилась к какому-нибудь недостатку в системе. Или же интересное событие рассматривалось в свете свойственного хакерам любопытства и касалось способа работы вещей.
Частой темой было зловещее господство IBM — отвратительного и голого короля компьютерных владений. Гринблатт легко ввязывался во «флейм»; длинную и взволнованную обличительную тираду о несметном количестве миллионов долларов, которые тратились на компьютеры IBM. Гринблатт ездил на каникулы домой в Миссури, и видел что научный факультет Университета Миссури, у которого по их словам абсолютно не было денег, тратил по четыре миллиона долларов в год на обслуживание и кормежку Неуклюжего Гиганта фирмы IBM, возможности которого даже близко не лежали с PDP-6. Чего бы не касался разговор: непомерно раздутого штата обслуживавшего компьютеры IBM или системы разделения времени, написанной в МТИ для IBM 7094, стоявшей на девятом этаже — все сводилось к тому, что это бессмысленная трата денег.
Это могло продолжаться весь обед. В этих разговорах, однако, был ряд вещей, которых хакеры не касались. Они не тратили много времени на обсуждение социальных и политических аспектов использования компьютеров в обществе (возможно за исключением того, как крайне неверным и наивным было расхожее мнение о компьютерах среди обычных людей). Они не говорили о спорте. Они, как правило, никогда не касались эмоциональных сторон друг друга и личных моментов. Кроме того, группа физически здоровых ребят, студентов института, крайне редко обсуждала тему, которой были одержимы их сверстники: женщины.
Хотя некоторые из хакеров вели социально активную жизнь, основные фигуры TMRC— PDP хакинга блокировали себя в «режиме холостяка». Для хакеров достаточно легко было заниматься чем-нибудь одним, но многие хакеры были одиноки и чувствовали себя некомфортно в социальном плане. И то с чем они имели дело каждый день: предсказуемость и управляемость компьютерных систем, в противоположность безнадежным в своей произвольности проблемам человеческих отношений, делало хакерство особенно привлекательным. Более весомым фактором, конечно же, было то, что хакеры считали, что вычисления являются гораздо более
Хакерство заменило в их жизнях секс.
«Люди настолько сильно интересовались компьютерами и прочими подобными штуками, что на женщин у них просто не оставалось времени», —позднее размышлял Коток, —"По мере того, как они становились старше, каждому в голову приходила мысль, что однажды когда— нибудь придет женщина, которая ущипнет за то, что осталось на макушке и скажет:
Возможно, все было бы по-другому, если бы в TMRC и на девятом этаже было больше женщин, некоторые из которых болтались там, на пару с некоторыми хакерами. ("
Таким образом, сформировалась исключительно мужская культура. Печальным фактом является то, что среди женщин никогда не было выдающихся хакеров. Никто не знал почему. Безусловно, существовали женщины-
В любом случае, присутствие женщин крайне редко отмечалось во время визитов в китайский ресторан или в собраниях в Инструментальной комнате, расположенной рядом с TMRC. Естественно, что мужчины без женщин выглядели не лучшим образом. И именно в Гринблатте, возможно, все это доходило до своей крайней формы. Он параллельно работал над несколькими большими проектами, и это настолько сильно его засасывало, что его привычки и манера поведения начинала беспокоить даже его товарищей-хакеров.
После того как Гринблатт бросил учебу в институте, он нанялся в фирму называвшуюся Charles Adams Associates, которая находилась в процессе приобретения и монтажа PDP-1. Гринблатт работал весь день в ее различных офисах вдоль Бостонского «Технологического Хайвея», который находился за пределами города, а потом, после работы, ехал тридцать миль назад в МТИ, для того чтобы хакерить ночь напролет. В конце концов, он переехал из институтского общежития в кембриджское отделение YMCA, но они выпнули его, потому что он не поддерживал свою комнату в чистоте. После того, как он отработал у Адамса, он повторно устроился на работу в лабораторию ИИ. И хотя у него не было проблем с местом для проживания; он квартировал в доме Белмонт-хауз, которым владел вышедший на пенсию дантист и его жена, он часто засыпал на койке, стоявшей на девятом этаже. Чистота имела для него достаточно низкую степень приоритета, в связи с чем ходили истории о его выдающемся чуханстве. (Позднее, Гринблатт доказывал, что он был ничуть не хуже чем остальные.). Некоторые хакеры вспоминали, что одной из вещей которой препятствовали гринблаттовские занятия хакерством было регулярное мытье в ванной, результатом которого был мощный «духан». По лаборатории ИИ ходила шутка о том, что была введена новая единица измерения запаха, под названием миллиблатт. Один или два миллиблатта были крайне сильными, а один блатт был практически непереносимой величиной. Ходила история, что для того, чтобы уменьшить количество миллиблаттов, хакеры заманили Гринблатта в одно из помещений здания №20, где находился специальный аварийный душ для смыва случайно попавших на кожу химикатов и включили его.
Госпер иногда подкалывал Гринблатта за его привычки. Особенно его раздражала привычка Гринблатта тереть одну руку об другую, что приводило к тому, что от них отваливались маленькие кусочки грязи. Госпер называл их «блаттлями». Если Гринблатт работал за столом Госпера и оставлял эти «блаттли» на его столе, то Госпер обычно промывал после него стол нашатырным спиртом. Госпер также иногда подкалывал Грннблатта за его ужасную манеру разговора, частое подкашливание, плохое произношение и бормотание, хотя многие из Гринблаттовских выражений вошли в специфический жаргон, который все хакеры использовали в той или иной степени. К примеру, вероятнее всего именно Гринблатт популяризовал практику удвоения слов для усиления выражений, как иногда это случалось, когда он, взбудораженный, пытался что-либо объяснить Госперу, Котоку и Самсону; слова его начинали заплетаться, и он, вздыхая и приговаривая под нос: «Ооо! Стремно! Стремно!» начинал все снова. Госпер и остальные обычно начинали хохотать, но как семья перенимает манеру разговора ребенка и преподносимые им неожиданности, так же и хакерское сообщество взяло на вооружение множество гринблаттизмов.
Несмотря на эти странности его натуры, хакеры очень уважали Гринблатта. Он был таким, каким он есть, так как он для себя четко определил приоритеты — он был хакером, а не социальным существом, и не видел для себя ничего более полезного, чем хакерство. Оно настолько захватывало его, что он иногда по полгода не мог найти времени, чтобы получить свою зарплату. «Если бы он присел и попытался выразить словами свои мысли и то, что он делал, то он никогда бы ничего не сделал», —говорил позднее Госпер, — «Если бы он беспокоился о правилах грамматики, то он никогда бы ничего не написал. Он делал то, к чему он был способен. Он был полным прагматиком. И пошло к черту все то, о чем говорили люди. Если кто-то полагал, что он глуп и странен, то это были их проблемы. Некоторые люди действительно так считали, и они ошибались».
Госпер мог оценить преданность Гринблатта своему делу, так как его упорство в попытках окончить институт (в который он поступил в 1965 году) привело к тому, что у него появились проблемы. Это не означало ни последнего года обучения в МТИ, ни каких-то проблем с учебой, так как он пытался выполнять в меру сил требования учебного плана. Проблема была в том, что у него был подписан договор с Военно-Морским Флотом США. Перед поступлением в МТИ, он сдал специальный экзамен, в котором он показал результаты, достаточно хорошие, для того чтобы быть включенным в специальную исследовательскую программу для студентов. Каждое лето он работал на флот, который оплачивал половину его обучения. По договору, также, требовалось отработать на флот после окончания учебы в течение трех лет. Когда Госпер подписывал договор, в нем был один пункт, который отменял обязательства по обязательной отработке после окончания института, но только в том случае, если вы могли бы найти фирму, которая бы заплатила за вас тридцать тысяч долларов. Во время учебы Госпера на старших курсах эта ловушка захлопнулась, и его мог спасти только перекупщик, потому что у него самого таких денег не было.
Перспектива работы на флот была для него ужасна. Во время своей летней работы он столкнулся с душераздирающей системой, которая была полной противоположностью Хакерской Этике. Программисты сидели в комнатах, полностью изолированные от машины. Иногда, в качестве заслуги за долголетнюю службу, особенно покорным и исполнительным сотрудникам дозволялось подходить к машине и видеть, как работает их программа. По рассказам, одна женщина, которой была дарована такая привилегия, зашла в комнату, после чего вид мигающих лампочек и жужжание дисков вызвал у нее обморок. В дополнение ко всему этому, будущий шеф Госпера в ВМФ, был человеком, который не понимал, почему логарифм суммы не равен сумме логарифмов.
Кроме того, у Госпера сложилось впечатление, что у ВМФ была большая любовь, чуть ли не физическое влечение к компьютерам Univac. Этот компьютер был гротескной пародией на компьютер, и был таким же неповоротливым гигантом, как и то что, изготовляла IBM. ВМФ следовало бы знать, что все это было грандиозным обманом, но Univac все равно использовали, что было классическим примером неизбежного извращенного порождения бюрократии Внешнего Мира. Сожительство с этой машиной для Госпера было равнозначно погружению в ад. Госпер использовал компьютер для того, чтобы находить все новое, что до него не встречал никто, и для него было крайне важным, чтобы компьютер, который он использовал, был оптимальным во всех смыслах. PDP-6 была наилучшей машиной из всех, которые он встречал, и для себя он решил, что он ее ни на что не променяет, в особенности на такого монстра как Univac. «Если я видел машину, в которой имела место невероятная тупость, ошибки в дизайне или нечто в этом роде, это раздражало меня до крайности», — объяснял позднее Госпер, — «В то же время PDP-6 выглядела как бесконечно совершенствующаяся машина. Если что-то было не так, то это можно было поменять. В некотором смысле мы жили внутри этой чертовой машины. Это было частью окружавшего нас мира. Практически это был социум… Я не мог представить себе своей жизни без PDP-6».
В конце концов, Госпер определился с тем, где ему взять деньги, чтобы вернуть их флоту. Он должен был их отработать, работая на компанию, в которой была PDP-6. Он выполнил этот жесткий пункт договора, найдя работу в той же фирме, на которую Гринблатт работал весь этот год — Charles Adams. То, что компания Adams никогда работала «правильно» на PDP-6 (Хотя Гринблатт настаивал на том, что он выполнил свою часть подготовки машины к работе «от и до») не слишком беспокоило Госпера. От чего он действительно покрылся пятнами — когда он узнал, что компания Charles Adams свернула проект на PDP-6 и приобрела точную копию неповоротливого гиганта Univac, который был у военных моряков.
К этому времени увеличилось финансирование Project MAC и Билл Госпер нашел способ втиснуться в ведомость расходов. Ему не пришлось менять свои привычки так как, работая в оговоренные часы на Adams, он каждую ночь пропадал на девятом этаже, работая на PDP-6.
Хакерские крылья Гринблатта к этому времени полностью окрепли. Одним из проектов, над которым он работал на PDP-6, был компилятор LISP, что позволило бы использовать на этой машине самую последнюю и наиболее совершенную версию языка, разработанного Джоном Маккарти для искусственного интеллекта. Юный Питер Дейч написал в свое время LISP для PDP— 1, но этот вариант был неэффективен, так как на «единице» было мало памяти. LISP, который работал с символами, а не числами (они легко трансформировались в бинарный вид) пожирал невероятное количество памяти.
Некоторые хакеры, включая Госпера, считали, что реализация LISP на PDP-6 является полной тратой времени. Госпер, который всегда был озабочен тем, что у компьютеров те дни не хватало вычислительной мощности, позднее изумлялся тому, как они были невежественны во время работы в лаборатории ИИ, пытаясь выполнять невозможные задачи и обвиняя в неудачах не те ничтожные машины, которые были в их распоряжении, а самих себя. На старшем курсе, Минский подкинул Госперу задачу, в ходе которой следовало изучить является ли некоторое оптическое явление стереоскопическим или монокулярным. Ему удалось сделать несколько шагов к решению этой задачи, и, в конце концов, создать изящную фигуру в виде клеверного листа, с помощью, которой удалось продемонстрировать это явление. Тем не менее, большую часть времени он бился головой о кирпичную стену, пытаясь выжать из машины больше, чем она была в состоянии сделать. Поэтому одной из задач, которую Госпер считал невозможной, состояла в разработке пригодного компилятора LISP на PDP-6, который мог бы быть полезен в качестве анализа символьных последовательностей, но никак не для полезной работы. Он считал, что это очередная глупость Минского, которую Гринблатт и остальные пытались реализовать.
У Гринблатта было другое видение проблемы. Хотя он понимал, что LISP на PDP-6 будет в некотором роде хаком, не полностью обоснованным с практической точки зрения, он видел необходимость движения в этом направлении. Это был мощный язык, давший возможность уйти вперед исследованиям в области искусственного интеллекта: это был язык, при помощи которого могли выполнять задачи, крайне сложно реализуемые иным способом, и с его помощью системы могли бы действительно обучаться. У Гринблатта только еще начали складываться конкретные очертания будущего; легкий намек на техническую реализацию хакерской мечты. Поэтому он, и еще несколько человек, даже Коток, который периодически приезжал из DEC, начали писать LISP на PDP-6. Они исписали в несколько слоев все классные доски в TMRC, и в конечном счете им удалось запустить его на машине.
Самые ответственные части были написаны Гринблаттом и еще одним хакером. Одновременная работа двух или трех человек над проектом рассматривалась как Правильная Вещь, что было весьма далеко от того, что IBM называла «человеческой волной» в программировании, когда на решение задачи бросались десятки программистов, а в итоге все заканчивалось ничем. Лучше было полагаться на двух-трех человек, чем на одинокого крестоносца, так что когда один хакер заканчивал свою тридцатичасовую сессию, подтягивался кто-нибудь еще и продолжал начатое. Это было что-то вроде команды, работавшей последовательно.
После того как PDP-6 MacLISP (названный в честь Project MAC) был доведен до ума, хакеры начали интегрировать этот компьютерный язык в свои программы, а также в свою собственную речь. Например, соглашение, принятое в LISP и использовавшее букву "p" в качестве предиката, было толчком к созданию хакерской манеры задавать вопрос. Когда кто-нибудь спрашивал «Еда-П?», то любой хакер знал, что его спрашивают, не хочет ли он пойти перекусить. Термы LISP "T" и «nil» означали, соответственно, «да» и «нет». Принятие LISP не означало уменьшения любви хакеров к ассемблерному языку, особенно на PDP-6 с ее элегантным набором инструкций. Но и Гринблатт и даже Госпер позднее поняли, что LISP был мощным средством для построения систем, которое очень хорошо укладывались в принципы Хакерской Этики.
DEC проявил интерес к MacLISP, и Коток договорился с тем чтобы Гринблатта и остальных, поздно вечером допускали в офис DEC в Мэйнарде, где они могли бы работать над программой, набирая и отлаживая код. Это было частью общей договоренности между МТИ и DEC, поэтому ни у кого не возникло никаких вопросов. Правильной Вещью было удостовериться в том, что любая хорошая программа получала максимальное распространение, потому что
После работы над MacLISP, Гринблатт был, возможно, самым авторитетным системным хакером на PDP-6. Новый администратор лаборатории ИИ, молодой человек с югозапада страны, по имени Рассел Нофтскер, нанял Гринблатта, в основном, для того чтобы поддерживать и совершенствовать это живое существо, которое было компьютерной операционной системой. Но взгляды Гринблатта не ограничивались только системами, он очень активно интересовался концепциями искусственного интеллекта. Он решил использовать компьютерные системы для того, чтобы действительно сделать что-нибудь полезное в этой области, а так как он всю свою жизнь играл в шахматы, то было логичным, что он работал над программой для игры в шахматы. Программой, которая бы превзошла то, что в свое время написал Коток, а также остальные шахматные проекты ИИ, которые предпринимались в различных лабораториях по всей стране.
Как и любой уважающий себя хакер, он ни с чем не определился, пока не сел и не начал над ней работу. Никто не спросил у него плана работ, а он утруждал себя постановкой в известность своих начальников; Мински не ломал голову над относительными достоинствами проекта. В середине шестидесятых не было каких-то определенных путей для решения подобных задач, но хакеры с первых дней лаборатории ИИ, определили для себя эти пути — это была хакерская этика, приведенная в действие, и Гринблатт максимально следовал ей.
Он видел как играет программа Котока и сделал вывод, что это мусор. Те парни, которые ее писали, не знали как над играть в шахматы. Они были очарованы тем, как компьютер делает ходы, и они как-то упустили из вида, что идея, которая и заключалась в наименовании игры, состоит в том, чтобы рубить фигуры противника. Программа Гринблатта использовала сложные приемы искусственного интеллекта для того, чтобы понять и сделать ходы в соответствии с определенными критериями, которые он считал хорошими шахматами. Работая с двумя другими хакерами, они устроили блиц по программированию. Он сумел получить время на PDP-6 из расчета 4 часа в день, а также продолжал писать программу в оффлайне, когда он не сидел за машиной. Примерно, через неделю программа уже могла играть в шахматы. Еще через некоторое время программа была отлажена. В нее были добавлены нужные свойства, и она была полностью доведена до ума в течение нескольких следующих месяцев. Гринблатту даже был предложено получить диплом МТИ, в случае если он напишет дипломную работу по программе игры в шахматы — до этого он сам никогда бы не додумался.