Питер Самсон вряд ли смог бы объяснить, почему он бродит ночь напролет возле корпуса № 26. Не все можно облечь в слова. Если бы вы были похожи на людей, с которыми Питер Самсон познакомился и подружился зимой своего первого года обучения в Массачусетском технологическом университете (МТИ) в 1958–1959 гг., вам и не потребовались бы объяснения. Блуждание в лабиринте лабораторий и хранилищ, разгадывание тайн телефонных коммуникаций в технических помещениях, следование вдоль проводов, проложенных в подземных туннелях, – посвященным все это было понятно и привычно. Не требовалось объяснять или оправдывать свой порыв, оказавшись перед запертой дверью, за которой слышался призывный шум, приглашающий войти. И если рядом не было сотрудников, следящих за допуском в запертое помещение со столь интригующими звуками, то ему не терпелось заглянуть внутрь, прикоснуться к машинам, щелкнуть тумблерами, посмотреть на реакцию машин, наконец, ослабить винт, изменить схему, подключить по-другому диоды. Питер Самсон с друзьями выросли с особым отношением к миру – любые вещи только тогда приобретали смысл, когда было известно, как они устроены и работают. А как еще узнать тайны вещей, если не брать их в руки и не прикасаться к ним?
Именно в подвале корпуса № 26 Самсон с друзьями обнаружили вычислительный центр. Пафосное стальное здание № 26 с большими окнами было одним из новейших корпусов МТИ. Оно резко выделялось на фоне старинных колонн, возвышающихся перед институтом на Массачусетс-авеню. В подвале находилась комната, заполненная современной вычислительной техникой. В ней работали машины, мало напоминавшие современные компьютеры.
Мало кто видел рабочий компьютер в 1959 году. Еще меньше избранных в те годы могли прикоснуться к нему. Самсон, подтянутый парень с рыжими кудрями и такой манерой растягивать гласные в словах, что, казалось, он перебирает все возможные варианты их звучания, видел компьютеры во время посещений МТИ, куда приезжал из своего родного местечка Лоуэлл, находящегося в тридцати милях от университетского кампуса. Он был одним из десятков «кембриджских мальчишек» – местных старшеклассников, помешанных на науке, которых непреодолимо влекло в кампус. Он даже пытался апгрейдить свой компьютер, оснастив его старыми деталями от аркадных автоматов. Это были лучшие логические элементы, какие он смог тогда найти.
Логические элементы: термин объединяет в себе все то, что влекло к электронике Питера Самсона, сына ремонтника оборудования. Только это имело для него смысл. Испытывая ненасытный интерес к внутреннему устройству, ощущаешь истинный восторг, открывая для себя нечто столь элегантное, как логическая схема, логический элемент, каждая составляющая которого имеет логическое завершение. Вот что по-настоящему волновало Питера Самсона. Он рано оценил математическую простоту устройств. Он увидел телешоу на Бостонском телеканале WGBH, в котором знакомили с азами программирования, и его воображение воспылало. Для Питера Самсона компьютер был своего рода лампой Аладдина: стоит его потереть, и он выполнит любую просьбу. Поэтому Питер стремился узнать как можно больше о компьютерах, создавал собственные проекты, участвовал с ними в научных конкурсах и в конце концов отправился туда, куда попадают все подобные гении, – в МТИ. Сюда стекались необычные старшеклассники в очках с толстенными стеклами, неразвитыми мышцами и мечтами не о триумфе на выпускном вечере, а о победе на научной ярмарке General Electric. МТИ – здесь он будет бродить в два часа ночи в поисках интересного, здесь перед ним предстанет мир, который откроет новые творческие горизонты и изменит его образ жизни. О подобном писатели-фантасты могли только мечтать, для него же это стало реальностью. Питер найдет компьютер, с которым можно поиграться.
Вычислительный центр, на который Самсон натолкнулся случайно, был забит машинами размером с библиотечный шкаф. Комната не охранялась. Работа здесь велась только днем. Избранные счастливцы, официально допущенные сюда, подавали операторам карточки. Операторы с помощью этих машин пробивали в карточках отверстия согласно данным от избранных. В последовательности отверстий шифровалась инструкция для компьютера: поместить данные в определенное место, выполнить какие-то команды или переместить данные. Стопка таких карточек содержала одну компьютерную программу, то есть серию инструкций, выполнение которых должно было приводить к предсказуемому результату – так же неизбежно, как испечь пирог, если следовать рецепту. Карточки передавались другому оператору наверх. Он помещал их в считывающее устройство, с которого информация, зашифрованная в последовательности отверстий, передавалась в гигантский компьютер IBM 704 на первом этаже корпуса № 26.
Компьютер IBM 704 стоил несколько миллионов долларов, занимал целую комнату, требовал постоянного внимания операторов и притока прохладного воздуха, чтобы избежать перегрева радиоламп, которыми был напичкан. В противном случае данные терялись. Если кондиционер выходил из строя, что случалось довольно часто, раздавался громкий сигнал. Услышав его, три инженера стремительно выбегали из соседней комнаты и начинали лихорадочно открывать корпус машины, пока ее нутро не расплавилось. Те, в чьи обязанности входило пробивание отверстий, ввод перфокарт в считывающее устройство, нажатие кнопок на машине, входили в священное братство как «жрецы». Те же, кто официально допускался к процессу подачи «жрецам» карточек, именовали себя «послушниками». Это напоминало языческий ритуал.
Послушник: О, машина, не примешь ли ты мою информацию, чтобы запустить программу и произвести вычисления?
Жрец (от лица машины): Попробую. Но ничего не обещаю.
Как правило, даже привилегированные «послушники» не имели прямого доступа к самой машине. Они могли не видеть результата поглощения машиной их карточек часами, а иногда и днями.
Это все, что Самсон знал о машине, и это расстраивало его, ведь ему жизненно необходимо было получить доступ к ней. В этом заключался смысл его жизни.
Вскоре Самсон с радостью обнаружил в той же комнате специальную машину 407 с клавиатурой. С ее помощью можно было не только пробивать карточки, но и считывать их, сортировать и даже распечатывать. Эти своего рода компьютеры никем не охранялись. Разумеется, работать с ними было непросто: требовалось подключать плату – пластмассовый квадрат размером два на два дюйма со множеством отверстий. Если просунуть провода сквозь отверстия в определенном порядке, то получится нечто похожее на крысиное гнездо, благодаря которому можно управлять машиной. Машина послушается и будет делать то, что вам нужно.
Вот так, не получив разрешения, Питер Самсон приступил к настоящей работе со своими единомышленниками из МТИ, друзьями, объединенными любовью к железнодорожному моделированию. Это был случайный, не очень обдуманный шаг в научно-фантастическое будущее, в котором их интересы разрастутся до уровня подпольной субкультуры, представляющей собой темную сторону компьютерного мира. Это была первая хакерская выходка членов клуба Tech Model Railroad Club (TMRC).
Питер Самсон вступил в TMRC на первой же неделе своей учебы в МТИ, осенью 1958 года. Первым мероприятием, на котором присутствовали первокурсники, была традиционная приветственная лекция, проводимая всегда, сколько себя помнили в МТИ. Посмотрите на сидящего слева от вас… посмотрите на сидящего справа от вас… один из вас троих не окончит институт. Речь повергала первокурсников в ранее неведомый им ужас. Всю жизнь они практически не испытывали академического давления благодаря своему блестящему интеллекту. А теперь справа и слева оказывались люди, не уступающие им в умственных способностях, а некоторые даже превосходящие.
Однако часть первокурсников не испытывала страха после этой речи. Они воспринимали своих однокурсников как кружок по интересам, благодаря которому можно наконец разобраться в устройстве вещей и овладении их работой. В процессе обучения и так достаточно препятствий. Есть ли смысл беспокоиться еще и о таких глупостях, как заносчивые учителя и их оценки? Для таких студентов, как Питер Самсон, само задание имело больший смысл, чем оценка его выполнения.
После лекций состоялся так называемый день первокурсника (Freshman Midway). Все университетские студенческие объединения – братства, группы по интересам и прочие – разместили представительства в большом спортивном зале, привлекая в свои ряды новобранцев. Группа, в которую попал Питер, называлась Tech Model Railroad Club (TMRC). Ее члены, ясноглазые и коротко стриженные старшекурсники, говорили с такой скоростью, будто хотели быстрее избавиться от потока слов. Они хвастались впечатляющей коллекцией моделей железнодорожных путей и поездов на постоянной экспозиции в здании № 20. Питер Самсон давно увлекался поездами, особенно метро. Поэтому он сразу же отправился на экскурсию в здание, напоминавшее временную постройку времен Второй мировой войны. Коридоры напоминали пещеры, а помещение клуба, хоть и располагалось на втором этаже, было сырым и тусклым, словно подвал.
Главной частью комнаты была она – модель железной дороги. Она занимала почти всю комнату. Стоя на небольшом свободном участке, можно было разглядеть маленький город, промышленную зону, миниатюрную троллейбусную линию, гору из папье-маше и, конечно, множество поездов и железнодорожных путей. Поезда были тщательно скопированы с их полноразмерных аналогов. Они даже пускали дым на поворотах, как на рисунках в детских раскрасках.
А потом Питер Самсон заглянул под доски, на которых на уровне груди располагалась модель, и у него перехватило дыхание. Он увидел самую большую в своей жизни электрическую цепь с мотками электрических проводов, реле и тумблерами. Чего там только не было! Аккуратные ряды тумблеров, тускло мерцающие бронзовым блеском реле и длинный беспорядочный клубок красных, синих и желтых проводов, чьи изгибы и завитки напоминали разноцветный «взрыв» на голове Эйнштейна. Это была невероятно сложная система, и Питер Самсон поклялся выяснить, как она работает. По правилам TMRC, ключ от клубного помещения вручался новым членам после сорокачасового марафона по работе над макетом. День первокурсника (Freshman Midway) состоялся в пятницу, а к понедельнику у Питера Самсона был собственный ключ.
Члены TMRC делились на две группы. Некоторым нравилось конструировать реалистичные модели поездов, имеющих историческую и эмоциональную ценность, и декорации для макета. Это были так называемые «братья ножа и кисти». Они выписывали журналы по железнодорожной тематике и долго путешествовали в поездах по старым путям. Вторую группу гораздо больше интересовало то, что скрывалось под макетом, это был своего рода «энергетический комитет» клуба. Разрабатываемая ими система представляла собой некий синтез заумной машины Руба Голдберга и изобретений Вернера фон Брауна. Члены комитета постоянно дорабатывали систему, перестраивали, совершенствовали, иногда и «лажали», как говорилось в их группе. Члены второго комитета были одержимы устройством системы, ее усложнением, изучением влияния новых разработок и элементов на ее работу, выстраиванием оптимальной схемы.
Бо`льшая часть элементов системы, обеспечивающей работу железнодорожной модели, была подарена в рамках спонсорской программы компании Western Electric College (Western Electric College Gift Plan), а точнее, их телекоммуникационным подразделением. Руководитель клуба одновременно отвечал за телефонную сеть кампуса и позаботился о том, чтобы клубу было доступно сложное телефонное оборудование. Взяв его за основу, члены клуба разработали цепь, позволявшую управлять несколькими поездами одновременно, даже если поезда находились на разных участках одного и того же пути. С помощью телефонных дисков для набора номера «инженеры» из TMRC могли определять, каким поездом и на каком участке пути они будут управлять сейчас. Для этого использовалось сразу несколько телефонных ретрансляторов, перемычек и шаговых переключателей. Движение энергии от одного блока системы к другому сопровождалось звуками «чу-чу-чу».
Именно эта группа студентов разработала описываемую дьявольски хитроумную схему, и именно их ненасытное любопытство толкало вперед тех, кто бродил по лабиринтам университетских зданий в поисках компьютера. Всю жизнь они стремились к знанию через практику.
Главой «энергетического комитета» клуба был заразительно смеявшийся старшекурсник Боб Сондерс с румяным выразительным лицом и талантом управлять коммутационной аппаратурой. Его детство прошло в Чикаго. Как-то он построил высокочастотный трансформатор для школьного проекта – почти двухметровую версию трансформатора Теслы, изобретенного в начале XIX века для передачи высокого напряжения. Сондерс рассказывал, что после включения трансформатора вырубились все телевизоры в ближайших кварталах.
Еще одним членом «энергетического комитета» клуба был Алан Коток – одногруппник Самсона, полный, с лицом без выраженного подбородка, в очках с толстыми стеклами, родом из Нью-Джерси. Семья Котока вспоминала случай, когда трехлетний Алан отверткой вытащил штепсель из розетки, осыпав пол дождем искр. В шесть лет он собирал светильники, а будучи старшеклассником, однажды попал на экскурсию в исследовательскую лабораторию Mobil в соседнем Хэддонфилде, где увидел первый в своей жизни компьютер. Оправившись от шока, он не раздумывая сделал выбор в пользу МТИ. Уже на первом курсе он заработал репутацию одного из самых талантливых членов «энергетического комитета» TMRC.
Члены этого комитета каждую субботу съезжались на свалку Эли Хеффрона в Сомервилле в поисках запчастей, чтобы потом часами лежать на спине под железнодорожным макетом, изредка отдыхая в небольших крутящихся креслах. Они могли работать ночь напролет, несанкционированно подключая системы железнодорожной модели к телефонной линии Восточного кампуса.
Костяк клуба часами проводил время в своем помещении, постоянно совершенствуя систему и споря о дальнейших планах. Они изобрели собственный сленг, непонятный посторонним, кому случалось сталкиваться с этими фанатично увлеченными подростками в клетчатых рубашках с карманами и вечными карандашами в них, китайских брюках и неизменной бутылкой кока-колы. Участники TMRC купили собственный автомат за пугающую сумму 165 долларов. Расходы окупились через три месяца благодаря установленной членами клуба цене в 5 центов за бутылку. Чтобы увеличить продажи, Сондерс установил рядом разменный аппарат для желающих приобрести бутылку кока-колы. Аппарат проработал долгие годы. Если часть оборудования выходила из строя, это называлось «лузернулось» (losing), если оборудование разрушалось, говорили «манданулось» (munged, mashed until no good), два стола в углу помещения были не офисом, а «дырой» (orifice), тот, кто настаивал на прохождении обучения, назывался «тулзой» (tool), мусор – «крафтом» (cruft), а реализованный проект или продукт, созданный не только для достижения конкретной цели, но и для собственного удовольствия от воплощения идеи, – «хаком» (hack).
Этот термин, вероятно, в стенах МТИ появился еще ранее. Им здесь называли редкие студенческие выходки, например покрытие купола здания кампуса фольгой. Когда члены клуба упоминали «хак», они выражали свое уважение. И хотя кто-то посчитает хитроумное соединение ретрансляторов простым «хаком», следует учитывать, что хак предполагает инновации, стиль и виртуозное владение техникой. Можно было бы преуменьшить значение «хака системы» (сравнив его с тем, как кто-то просто «ломает», словно хворост), однако в процессе столько мастерства, что, пожалуй, сложно не воздать ему должное.
Самые продуктивные члены «энергетического комитета» клуба гордо называли себя хакерами. В стенах клубного помещения в здании № 20 и комнаты, где проводились учебные занятия и велись многочисленные технические споры, участники группы самовольно возвели себя в ранг героев исландских легенд. Вот как Питер Самсон описал себя и своих друзей в поэме, написанной в стиле Карла Сэндберга, в клубном проспекте:
Великий стрелочник,
Тестер предохранителей, творец-путейщик,
Строитель железных дорог и продвинутый ломщик систем;
Чумазый, волосатый, раскинувший свои щупальца,
Аппарат с точечной функцией и индикаторами:
Я слышал, что ты злодей, и поверил; ибо я видел, как ты заманиваешь послушников системы цветными огоньками…
В пыли под башней мы взламываем все подряд,
Ломаем так, как это делает невежда-первокурсник, не терявший работы и не вылетавший из школы.
Ломаем пульт управления, чтобы добраться до переключателей, контролирующих движение поезда по макету,
Ломаем!
Мы хакеры, чумазые, волосатые, юные, неудержимые, те, кто палит диоды и гордится тем, что он стрелочник, тестер предохранителей, творец-путейщик, строитель железных дорог и продвинутый ломщик системы.
При любой возможности Самсон и его друзья проникали в компьютерную комнату со своими платами, мучая машину для совершенствования системы переключателей под макетом. И, что не менее важно, они видели, что происходит с вычислительной техникой, если довести ее до предела.
Весной 1959 года в МТИ для первокурсников внедрили новую дисциплину – курс программирования на компьютере. Учитель с дикой копной волос и непослушной бородой – Джон Маккарти, магистр математики, – был классическим сумасшедшим профессором. Ходили истории о том, как он мог внезапно подойти к вам в коридоре и ответить на вопрос, заданный ему несколько часов или даже дней назад, и ответ оказывался блестящим.
Маккарти входил в узкий круг избранных, работавших в совершенно новой форме научного познания с помощью компьютеров. Переменчивый и противоречивый характер его области исследований был очевиден из названия, которое Маккарти дал ей: «Искусственный интеллект». Он искренне верил в то, что компьютер может быть умным. Даже в таком наукоемком месте, как МТИ, большинство считали такую мысль нелепой. Они считали компьютеры полезными, хотя и абсурдно дорогими инструментами для больших объемов вычислений и разработки систем противоракетной обороны (так с помощью «Вихря» (Whirlwind), самого большого компьютера МТИ, была разработана система раннего оповещения SAGE). Но мысль, что сами компьютеры могут представлять собой объект научного исследования, казалась скептикам смешной. В конце пятидесятых информатика отсутствовала в списке предметов МТИ. Маккарти с коллегами работал на факультете электротехники и предложил к изучению курс № 641, который весной стали посещать Коток, Самсон и другие члены TMRC.
Маккарти запустил на неуклюжем гиганте IBM 704 программу, пытавшуюся играть в шахматы. Для критиков зарождающейся области искусственного интеллекта это был всего лишь еще один пример бездумного оптимизма таких людей, как Джон Маккарти. Но у Маккарти складывалось определенное представление о том, на что могут быть способны компьютеры, и игра в шахматы была только началом.
Все это казалось захватывающим, однако не разжигало интерес Котока, Самсона и их товарищей. Они хотели разобраться с тем, как компьютеры работают. Новый язык программирования, LISP, о котором рассказывал Маккарти в рамках курса № 641, конечно, вызывал интерес. Однако его нельзя было сравнить с фантастическими переживаниями во время акта программирования или получения собственной распечатки «священной» машины – слова, сказанного машиной! Или того интереса, что на протяжении часов помогал им корпеть над программой, разбираясь, что пошло не так, как должно было пойти, и что можно изменить, чтобы улучшить ее работу. Хакеры TMRC искали способы более плотной работы с компьютером IBM 704, вскоре замененным более новой моделью 709. Они проводили все предрассветные часы возле священной комнаты, знакомясь со «жрецами», выражая им свое почтение бессчетное число раз. И, в конце концов, Коток и его друзья получили возможность нажать несколько кнопок на компьютере, наблюдая за результатом.
Компьютеры IBM оказались способны на многое, их тайны открывались старейшим «жрецам» МТИ, имеющим доступ к «священной» машине. Так, несколько программистов, аспирантов, совместно с Маккарти написали программу, при запуске зажигавшую на экране ряды огоньков в последовательности, имитирующей игру в пинг-понг. Маленький шарик будто перелетал слева направо, а после нажатия оператором переключателя – обратно. Очевидно, программа создавалась с целью произвести впечатление на коллег, чтобы потом им захотелось взглянуть и на более серьезные проекты.
При этом нужно было стремиться минимизировать объем программы, поскольку память компьютеров тех лет была крайне малой. Однажды Джон Маккарти заметил, что его студенты, получившие доступ к машине 704, работали над своими компьютерными программами, извлекая максимум пользы из наименьшего количества инструкций, пытаясь максимально сократить код и уменьшить количество карточек, загружаемых в компьютер. Сокращение программы на одну или две инструкции превратилось для них в навязчивую идею. Маккарти сравнивал их с «лыжными задницами» (ski bums): они испытывали такой же адреналиновый всплеск от сокращения кода, как горнолыжники от бешеной скорости при спуске с горы. Так родился термин «втиснуть программу» (program bumming), означающий доработку программы, ее оптимизацию и сокращение инструкций без потерь в результативности. В лаборатории часто слышалось бормотание в духе: «Может, у меня получится втиснуть программу, сократив количество инструкций и обойдясь тремя карточками вместо четырех».
В 1959 году интерес Маккарти переключился с шахматной программы на создание нового способа общения с компьютером – на язык программирования LISP. Тогда Алан Коток с друзьями взялись за реализацию шахматного проекта. Они обучали этой игре сначала машину 704, затем 709, а после ее замены – и 7090. Постепенно группа Котока стала занимать максимум компьютерного времени во всем вычислительном центре МТИ.
Однако работа с компьютерами IBM не удовлетворяла их. Худшим было ждать результат от момента, когда ты загрузил инструкции в машину, до момента, когда компьютер выдаст ответ. А потеря хотя бы одной буквы в инструкции приводила к фатальной ошибке программы. Весь процесс приходилось повторять с самого начала на фоне огромного количества правил, соблюдение которых требовалось во время работы в вычислительном центре. Большая часть правил была внедрена для физического ограждения машины от контактов с такими фанатиками, как Самсон, Коток и Сондерс. Самое жесткое правило гласило, что никто не имеет права трогать компьютер или вмешиваться в его работу. Но именно этого и добивались члены «энергетического комитета» клуба, и невозможность прикоснуться к машине сводила их с ума.
Один «жрец», пусть и низшего ранга, проявлял особенное рвение в соблюдении этого правила в ночную смену. И Самсон придумал, как ему отомстить. Однажды, копаясь в магазине электротехники Илая, он обнаружил электрическую плату, весьма похожую на напичканную радиолампами часть «внутренностей» компьютера IBM. Как-то, примерно в 4 часа утра, излишне строгий младший «жрец» отлучился на минутку, а когда вернулся, Самсон сообщил ему, что машина перестала работать, но он уже нашел неисправность, и показал сломанную плату, купленную им в магазине Илая.
Младший «жрец» с трудом выдавил из себя: «Г-где ты это взял?»
Самсон, взглянув большими зелеными глазами прямо в лицо напуганному инженеру, медленно указал на открытый корпус машины, где, разумеется, никогда и не было этой платы, хотя пространство выглядело подозрительно пустым.
Младший служитель ахнул. По его лицу пробежала гримаса, и его чуть не стошнило. Он бормотал проклятия. Без сомнения, он уже видел в своем воображении, как из его зарплаты вычитают миллионы. Он успокоился, только когда его начальник, немного разбирающийся в психологии одержимых юнцов из TMRC, пришел и все объяснил.
Не только он ощутил на себе гнев хакера, которому запрещали доступ к желанному объекту.
Однажды клуб посетил его бывший член, а ныне сотрудник одного из факультетов МТИ Джек Деннис. Будучи студентом в 1950‐е годы, он с воодушевлением работал над созданием железнодорожных моделей, системы питания и управления под макетом. В последнее же время Деннис работал на компьютере, предоставленном сотрудничающей с университетом военной лабораторией Линкольна. Компьютер назывался TX‐0 – один из первых транзисторных компьютеров в мире. В лаборатории Линкольна TX‐0 использовался для диагностики гигантского компьютера TX‐2, обладавшего настолько сложным устройством, что только с помощью специально созданного младшего брата можно было выявлять его неисправности. Теперь же, после завершения его главной задачи, трехмиллионный TX‐0 отправился в университет в долгосрочную ссылку. Очевидно, в лаборатории Линкольна не ждали его возвращения. Деннис предложил членам клуба посмотреть на новую машину.
Эй, «жрецы» и «послушники»! Не хотите ли познакомиться с папой римским?
Компьютер TX‐0 располагался на втором этаже корпуса № 26, в помещении научно-исследовательской лаборатории электроники, прямо над вычислительным центром, в котором обитал гигант IBM 704. Лаборатория напоминала мостик управления старым космическим кораблем. TX‐0, или «тиксо», как его иногда называли, был для своего времени миниатюрной машиной – одним из первых компьютеров с транзисторами размером в палец вместо радиоламп размером с ладонь. Тем не менее он занимал бо`льшую часть комнаты вместе с пятнадцатью тоннами вспомогательного оборудования для кондиционирования воздуха. Рабочие компоненты TX‐0 размещались на нескольких высоких узких стеллажах, похожих на прочные металлические книжные полки, со спутанными проводами и аккуратными рядами крошечных, похожих на бутылки контейнеров с транзисторами. Другая стойка представляла собой сплошную металлическую переднюю панель, испещренную мерцающими датчиками. Перед стеллажами располагалась L-образная консоль с синей столешницей – пульт управления космическим кораблем из романов Герберта Уэллса. На коротком крыле столешницы стоял флексограф, напоминающий обычную печатную машинку, переделанную военными и заключенную в серый армейский корпус. В верхней части столешницы располагались элементы панели управления в корпусах ярко-желтого цвета. На обращенной к пользователю стороне корпуса располагались датчики, несколько линий мерцающих лампочек в четверть дюйма размером, система металлических переключателей размером с рисовое зерно, и наконец, главное – круглый дымчато-серый дисплей с электронно-лучевой трубкой.
Члены клуба прыгали от счастья. Машина не использовала карточки! Пользователь сначала набирал программу на длинной тонкой бумажной ленте с помощью флексографа (в соседней комнате стояло несколько запасных), затем садился за панель управления, загружал программу, пропуская ленту через считывающее устройство, и сидел там, пока программа работала. Любой сбой обнаруживался сразу, а для диагностики использовались переключатели и сигнальные датчики. Компьютер даже имел аудиовыход: пока программа работала, динамик на панели управления издавал что-то вроде музыки, как плохо настроенный электроорган, чьи ноты вибрировали с нечетким, космическим шумом. Аккорды на этом «органе» изменялись в зависимости от того, какие данные считывала машина в каждую данную микросекунду. Вызубрив эти звуки, фактически можно услышать, над какой частью кода программы работает компьютер. То же понималось и по щелчкам флексографа, придававшим ощущение присутствия на поле боя с пулеметными трелями.
Еще более удивительно, что благодаря таким «интерактивным» возможностям, а также благодаря доступности TX‐0, можно было модифицировать программу, сидя за компьютером. О, чудо!
Ничто не могло сдержать Котока, Сондерса, Самсона и других от попыток сесть за компьютер. К счастью, TX‐0 не был огражден такой бюрократией, как IBM 704. Не шатались поблизости «жрецы». Главный инженер, хитрый седовласый шотландец Джон Маккензи, благосклонно допускал членов TMRC в научно-исследовательскую лабораторию электроники к TX‐0, пока остальные выпрашивали официальные разрешения на доступ к компьютеру для работы в своих проектах.
Самсон, Коток, Сондерс и еще один первокурсник, Боб Вагнер, вскоре поняли, что в корпусе № 26 лучше всего работать ночью. На это время никто в здравом уме не записывался, чтобы поработать час-другой на машине. Лист для записи вывешивался каждую пятницу рядом с кондиционером в научно-исследовательской лаборатории электроники. TX‐0 работал двадцать четыре часа в сутки. Компьютеры в то время были слишком дороги, чтобы тратить их время впустую и оставлять простаивать по ночам. Кроме того, запустить выключенный компьютер в то время было довольно сложно. Поэтому программисты TMRC, переименовавшись в хакеров TX‐0, изменили образ жизни, чтобы приспособиться к новому графику. Они записывались на ночные сеансы работы, а если кто-то не являлся в назначенный час, работали и в это время.
– О! – Радостно восклицал Самсон примерно через минуту после того, как записавшийся студент не приходил в указанное в журнале время. – Будь уверен, чувак, время не пропадет даром!
Так и было, потому что хакеры проводили там почти все свое время. Если они не болтались рядом с научно-исследовательской лабораторией электроники в ожидании ее открытия, то играли в помещении клуба в придуманную Самсоном словесную игру в духе «Виселицы». Он назвал ее «Соседняя дверь» (Come Next Door) в ожидании звонка с сообщением, что есть окно для работы на TX‐0. У хакеров появились информаторы, сообщающие им, если вдруг машина оказывалась свободной, например программа в рамках исследовательского проекта не была готова вовремя или заболел профессор. Об этом мгновенно узнавали хакеры и тут же, запыхавшиеся, появлялись в лаборатории TX‐0, готовые схватиться за панель управления.
Теоретически за операцию отвечал Джек Деннис. В то время он вел несколько курсов, а остальное время предпочитал проводить за написанием кода. Деннис играл роль доброжелательного крестника хакеров: вводил их в курс дела, направлял и забавлялся их авантюрами. Однако он не стремился быть главным и с радостью позволял Джону Маккензи управлять делами. Маккензи быстро понял, что интерактивное устройство TX‐0 вдохновляло на новые формы программирования и что хакеры стали пионерами в этом деле. Поэтому запретов с его стороны было немного.
1959 год отличался свободой, позволявшей приютить в лаборатории жаждущих знаний, помешанных ученых, чье любопытство жгло их изнутри подобно голоду. Вот почему Питер Самсон исследовал лабиринты лабораторий МТИ. Шум кондиционера, звуки работы компьютера и стрекотание флексографа манили этих странников. Они вились вокруг комнаты с компьютером, как котята вокруг миски со сметаной.
В числе странников был Питер Дойч. Еще до знакомства с ТХ‐0 Дойч увлекся компьютерами. Это началось случайно, когда в руки Питера попало брошенное руководство по вычислениям на компьютере. Что-то в строгой упорядоченности компьютерных инструкций привлекло его. Позже он описывал то свое состояние, сравнивая его с трансцендентным восторгом художника, увидевшего натуру для будущей картины: «Здесь мое место». Дойч попробовал написать небольшую программу и, подписавшись именем одного из «жрецов», запустил ее на компьютере. За несколько недель он достиг поразительного мастерства в программировании. В двенадцать лет!
Это был застенчивый ребенок, сильный в математике и неуверенный почти во всем остальном. Тучный, физически слабый, но интеллектуально одаренный подросток, сын профессора МТИ. Естественно, Питер пользовался своим положением, чтобы попасть в лабораторию.
Его участие в работе на компьютере TX‐0 было неизбежным. Сначала он забрел в небольшую «комнату Клуджа» («Клудж» – оборудование, работа которого, кажется, бросает вызов самой логике). Здесь располагались три автономных флексографа для записи программ на бумажную ленту, позднее загружаемую в TX‐0. Сотрудник МТИ в этот момент вставлял ленту. Питер немного понаблюдал за ним, а потом принялся засыпать бедолагу вопросами о необычном маленьком компьютере в соседней комнате. Затем Питер подошел к TX‐0 и внимательно осмотрел его, отметив, чем он отличается от других компьютеров: он был меньше и имел ЭЛТ-дисплей. Виделись в нем и другие привлекательные новшества. Питер тут же решил вести себя как сотрудник с полным правом доступа сюда. Он раздобыл учебник и вскоре стал поражать окружающих серьезными беседами о компьютерах. В конце концов ему разрешили записываться на ночные и выходные смены, чтобы писать собственные программы.
Маккензи боялся обвинений, что он руководит каким-то детским лагерем, когда малыш в коротких штанишках, чья голова едва виднелась из-за консоли TX‐0, наблюдал, как какой-нибудь аспирант с официальным допуском к компьютеру вводит свой код на флексографе, и выдавал ему ломающимся подростковым голосом что-то вроде: «У вас здесь ошибка… Вы должны ввести другую команду». Естественно, самоуверенный аспирант будет сходить с ума, удивляясь, как какой-то маленький червяк может указывать ему, и кричать, чтобы тот шел играть в другое место. Однако замечания Питера Дойча неизменно оказывались верными. Дойч нагло заявлял, что собирается писать программы лучше, чем кто-либо из тех, кто работает в лаборатории.
Самсон, Коток и другие хакеры приняли Питера Дойча в свои ряды. Благодаря своим познаниям в области компьютеров он оказался достоин равного обращения. Но официально допущенные к TX‐0 не испытывали особого почтения к нему, особенно в минуты, когда он маячил за их спинами, готовый заметить любую ошибку на флексографе и сразу же оповестить об этом.
Эти официально допущенные пользователи появлялись в комнате с TX‐0 с регулярностью пассажиров. Запускаемые ими программы были направлены на статистический анализ, перекрестные связи, моделирование внутренней части ядра клетки. Приложения… Полезно для пользователей, а для хакеров – пустая трата времени. Для них это все равно что сидеть за дроссельной заслонкой самолета. Как сказал Питер Самсон, знатный ценитель классической музыки, производить вычисления с помощью TX‐0 напоминало игру на абсурдно дорогом музыкальном инструменте, импровизировать, сочинять, подобно битникам на Гарвард-сквер в миле отсюда, и петь с полной творческой отдачей.
Такие возможности им стали доступны благодаря системе программирования, разработанной Джеком Деннисом и другим профессором, Томом Стокманом. Когда компьютер TX‐0 появился в МТИ, его характеристики урезали по сравнению с периодом работы в лаборатории Линкольна: память сильно уменьшили до 4096 «слов» по восемнадцать бит в каждом. «Бит» – единица измерения в двоичной системе, либо 1, либо 0. Эти двоичные числа – единственное, что понимают компьютеры. Ряд двоичных чисел называется «словом». Кроме того, к компьютеру TX‐0 практически не прилагалось программное обеспечение. Поэтому Джек Деннис, еще до того, как познакомил членов TMRC с TX‐0, писал «системные программы», помогающие пользователям работать на компьютере.
Первое, над чем работал Деннис, стал ассемблер. Он представлял собой транслятор, переводивший язык ассемблера с трехбуквенными символическими сокращениями, обозначающими команды, на компьютерный язык на основе двоичных чисел 0 и 1. В TX‐0 использовался сильно урезанный язык ассемблера, позволяющий использовать для команд только 2 бита каждого 18‐битного слова. Поэтому были доступны только четыре команды (каждая возможная 2‐битная вариация – 00, 01, 10 и 11 – представляла собой команду). Все, что делал компьютер, сводилось к выполнению одной из четырех команд: для сложения двух чисел требовалась одна команда, а для умножения двух чисел – серия из примерно двадцати команд. Взглянув на длинный список компьютерных команд, записанных в виде двоичных чисел, например, 10011001100001, пользователь терял рассудок. Но та же команда на ассемблере может выглядеть так: ADD Y. После загрузки в компьютер ассемблера Денниса стало возможно писать программы в более простой символической форме и ждать, пока компьютер сам выполнит перевод в двоичный код. А дальше нужно только загрузить полученный код обратно в компьютер. Сложно недооценить это достижение Денниса. Его ассемблер позволял программистам писать код, а не головокружительную серию нулей и единиц.
Другая программа, над которой Деннис работал совместно со Стокманом, – отладчик. TX‐0 поставлялся с отладочной программой UT‐3, взаимодействующей с компьютером во время его работы путем ввода команды непосредственно с флексографа. Но и здесь были большие проблемы. Так, он принимал код только в восьмеричной числовой системе. «Восьмеричная» – система исчисления с основанием 8 (в отличие от двоичной с основанием 2 и арабской с основанием 10). Это сложная в использовании система. Поэтому Деннис и Стокман решили написать нечто лучшее, чем UT‐3, что позволило бы пользователям использовать символический, более простой в работе язык ассемблера. Программа получила название FLIT. Она позволила пользователям находить программные ошибки во время сеанса работы, исправлять их и поддерживать работу программы. Деннис рассказывал, что название FLIT произошло от названия ленты для флексографа. Однако на самом деле источником вдохновения послужил спрей от насекомых одноименного бренда. FLIT, квантовый скачок вперед, позволил программистам создавать действительно оригинальные программы на компьютере подобно тому, как музыканты пишут свои произведения с помощью музыкальных инструментов. С помощью отладчика, занимавшего треть из 4096 слов всей памяти TX‐0, хакеры могли свободно создавать новый, более смелый стиль программирования.
Какие же программы писали хакеры? Ну, иногда эти программы делали нечто бессмысленное. Например, Питер Самсон сочинил программу, мгновенно превращавшую арабские цифры в римские. А Джек Деннис, хотя и восхитился его мастерством, все же заметил: «Боже мой, кому это пригодится?» Но Деннис понимал, что Самсон это делал ради ощущения собственной силы и восторга пользователя, когда тот вставлял бумажную ленту, следил за лампочками и переключателями и видел, как арабские цифры превращаются в римские.
И именно Джек Деннис подсказал Самсону, что с помощью TX‐0 можно воспроизводить звуки. Тогда не было встроенных регуляторов высоты, амплитуды звука, однако существовал способ управлять динамиком – на звучание влиял 14‐й бит в 18‐битных словах в памяти TX‐0, загруженный в конкретную микросекунду. Звук включался или выключался в зависимости от того, был 14‐й бит 1 или 0. Так Самсон стал писать программы, меняющие комбинации двоичных символов для получения различных результатов.
В то время лишь немногие в стране экспериментировали, используя компьютер для прослушивания музыки. Используемые методы требовали огромных объемов вычислений, прежде чем машина могла сыграть единственную ноту. Самсон отметал сомнения тех, кто в него не верил и говорил о невозможности достижения результата. Он хотел, чтобы компьютер сразу играл музыку. Поэтому он учился управлять одним битом в памяти компьютера так же искусно, как Чарли Паркер играл на саксофоне. В более поздней версии музыкальной программы Самсон настроил ее таким образом, что при появлении ошибки в коде флексограф переключался и выводил на дисплее: «Ошибаться свойственно людям, прощать – богам».
Посторонних не трогала монотонная мелодия Иоганна Себастьяна Баха, монофоническая волна, лишенная гармонии. Подумаешь! Три миллиона долларов стоит эта гигантская машина. Так почему бы ей не сделать по меньшей мере столько же, сколько может сделать пятидолларовое игрушечное пианино? Бесполезно объяснять, что Питер Самсон фактически воссоздал процесс создания музыки на протяжении многих эпох. Музыка всегда создавалась путем комбинации звуковых вибраций. В программе Самсона оказалось, что музыка заключена в наборе цифр, битов информации, введенных в компьютер. Можно часами смотреть на код и не понимать, где здесь музыка. Она появляется только тогда, когда миллионы поразительно коротких обменов данными происходили в памяти компьютера, расположенной на одном из стеллажей TX‐0. Самсон попросил компьютер, не имевший понятия, что такое голос, спеть, и тот подчинился.
Так что эта компьютерная программа и в прямом, и в переносном смысле была музыкальной композицией! Такая же программа, как и те, что производили сложные вычисления или статистический анализ. Код, загруженный Самсоном в компьютер, стал универсальным языком, позволяющим создавать буквально все – от фуги Баха до противовоздушной защиты.
Самсон ничего не стал объяснять людям, не оценившим его достижения. Да и среди хакеров это не обсуждалось. Вряд ли они столь детально анализировали свои успехи. Питер Самсон просто сделал это, а хакеры просто оценили его удачный хак, и этого было достаточно.
Для хакеров вроде Боба Сондерса – лысеющего, пухлого и веселого студента, допущенного к TX‐0, возглавлявшего «энергетический комитет» TMRC, исследователя, – это был идеальный образ жизни. Сондерс вырос в пригороде Чикаго; сколько он себя помнил, работа электрических и телефонных сетей завораживала его. Прежде чем поступить в МТИ, Сондерс отработал лето на работе своей мечты – в телефонной компании, устанавливающей офисное оборудование. Он проводил восемь божественных часов с паяльником и плоскогубцами в руках, работая в недрах коммутационных систем. Идиллию нарушали только обеденные перерывы, во время которых Сондерс досконально изучал технические талмуды. Именно оборудование под макетом железной дороги убедило его принять активное участие в работе TMRC.
Сондерс был уже старшекурсником, когда освоил TX‐0. Его карьера хакера началась позже, чем у Котока и Самсона. Он использовал перерывы в работе для налаживания жизни в социуме, ухаживая за будущей женой Мардж Френч. Мардж не хакерила, а решала задачи разных компьютерных проектов. Тем не менее TX‐0 был центром его существования в университете, а его успеваемость так же страдала от постоянных пропусков занятий, как и у остальных хакеров. Ему было все равно. Он знал, что по-настоящему он учится в комнате 240 корпуса № 26, за панелью управления TX‐0. Годы спустя он описывал себя с товарищами как «элитную группу». «Другие студенты шли на учебу, часами тоскуя в вонючих аудиториях или в лаборатории, соединяя различные частицы или что они там делали. А мы просто не обращали на них внимания. Нас это не интересовало. Они изучали свое, а мы свое. И тот факт, что львиная доля нашей учебы не касалась официального учебного плана, по большому счету ничего не значил».
Хакеры выходили на охоту ночью. Это был единственный способ полноценно поработать на TX‐0. Днем Сондерс обычно умудрялся засветиться на одном-двух занятиях, затем какое-то время тратил на базовые потребности типа поесть и помыться, иногда встречался с Мардж, но в конце концов непременно оказывался в корпусе № 26. Он просматривал распечатки вчерашних программ на бумаге шириной девять с половиной дюймов, используемой флексографом. Вносил изменения, обновляя код для следующего этапа работы. Возможно, ходил в TMRC, чтобы обсудить свою программу, перехватить хорошие идеи и выявить потенциальные ошибки. Затем возвращался в корпус № 26, в комнату Клуджа рядом с компьютерной комнатой, где на одиноком флексографе обновлял код. Все это время он следил, не отменил ли кто-нибудь свой часовой сеанс работы с компьютером. Сам он записывался примерно на два или три часа ночи и ждал в комнате Клуджа или играл в бридж в клубе, пока не настанет его время.
Сидя за пультом управления, Сондерс поворачивался лицом к металлическим стеллажам с транзисторами, каждый из которых хранил некие данные, а затем вставлял бумагу в флексограф, приветствовавший его словом «МОРЖ» – в честь стихотворения Льюиса Кэрролла со строкой «время пришло, – сказал Морж…». Сондерс хохотал, копаясь в ящике в поисках бумажной ленты с ассемблером, наконец находил и вставлял ее в считывающее устройство. Теперь компьютер был готов работать с его программой. Сондерс смотрел на огоньки, мигающие, пока компьютер «переводил» его код с «исходного» (символический язык ассемблера) на «объектный» (двоичный), который компьютер выдавал на другой бумажной ленте. Теперь на ленте была его программа в двоичном коде, и он не сомневался, что его программа будет работать безошибочно.
Часто за его спиной оказывались другие хакеры, пришедшие поглазеть. Они шутили и смеялись, попивая кока-колу и поедая фастфуд из автомата. Сам Сондерс предпочитал дольки лимонного мармелада, которые другие называли «лимонными червяками». Но в четыре часа утра даже червяки казались аппетитными. Они вместе смотрели, как программа начинает работать, как загорается свет, какие звуки издает пищик – в высоком или низком тоне – в зависимости от того, что находится в 14‐м бите в памяти компьютера. И первое, что он видел на ЭЛТ-дисплее после запуска программы, – сбой работы. Он лез в ящик стола за лентой с отладчиком FLIT. Компьютер становился отладочной машиной: программу запускали снова и выясняли причину сбоя. Если везло и решение находилось, в код вносили изменения, введя другие команды, щелкнув переключателями на панели управления в определенном порядке или введя код с помощью флексографа. Как только все начинало работать, а это всегда было невероятно приятно, когда благодаря ему все в комнате – транзисторы, провода, схемы и электричество – сливалось вместе для достижения задуманного им результата, – он переходил к следующему шагу. Когда заканчивался его час, приходилось пускать следующего нетерпеливого хакера. А потом Сондерс будет тратить следующие несколько часов на выяснение, что, черт возьми, пошло не так и почему программа не заработала.
Час пик, проведенный хакером за компьютером, сам по себе был чрезвычайно насыщенным. Но за несколько часов до него и несколько часов после хакер должен быть необычайно сосредоточен. Программируя, он должен понимать движение каждого бита информации, каждой команды и просто обязан уметь предсказать результат.
Вся эта информация заполняет все существо хакера, будто разум сливается с окружающим миром, с компьютером. На получение цельной картины в голове иногда уходит несколько часов. После этого даже стыдно проводить время впустую, поэтому хакер или сидит за пультом управления, или корпит над кодом за свободным флексографом в комнате Клуджа. Хакер должен оставаться сосредоточенным на своей программе на протяжении всего марафона по ее написанию.
Это неизбежно отражается на тех редких моментах жизни хакеров, которые они проводят не за компьютером. Члены «комитета ножа-и-кисти» TMRC были недовольны возникновением хакерской группировки в их среде. Они считали, что она подобно троянскому коню способствует разрушению клуба, меняя его направленность с железнодорожной тематики на компьютерную. И если бы вы присутствовали на одном из заседаний клуба, проводимых каждый вторник в четверть шестого вечера, вы бы заметили обеспокоенность его членов: хакеры с помощью парламентских процедур превращали эти встречи в нечто столь же запутанное, как и их программы для TX‐0. Ходатайства подавались для ходатайства, а возражения исключались по порядку, будто компьютерные ошибки. В протоколе заседания 24 ноября 1959 года записано: «Мы осуждаем некоторых членов клуба, способных принести клубу гораздо больше пользы, если бы они больше занимались исследованиями и меньше читали Правила порядка Роберта». Самсон хуже всех вел себя на заседаниях. В какой-то момент раздраженный член TMRC предложил «заткнуть пробкой его словесную диарею».
Логическое мышление, необходимое для программирования, заполняло все существо хакеров, отразившись не только на их пользовании парламентскими процедурами. Оно стало проявляться и в обычной жизни. Задайте вопрос хакеру, и вы почувствуете, как его мозг обрабатывает биты, пока он обдумывает ответ.
Мардж Сондерс каждое субботнее утро ездила на «Фольсе» в супермаркет Safeway и по возвращении спрашивала мужа: «А не поможешь ли ты мне отнести покупки?» Боб Сондерс отвечал: «Нет». Пораженная отказом, Мардж сама таскала пакеты. Так повторилось несколько раз, после чего она вышла из себя, осыпала его проклятиями и потребовала объяснить, почему он отказывается помогать.
– Глупый вопрос, – сказал он. – Конечно, мне не нравится носить продукты. Вот если бы ты приказала мне их принести, я бы это сделал.
Это было похоже на то, как если бы Мардж ввела программу в TX‐0 и программа крашнулась (нарушилась) из-за неправильного синтаксиса. Только когда она «отладила» свой вопрос, компьютер в мозгу Боба Сондерса стал успешно обрабатывать инструкции.
Вокруг нового «солнца» – компьютера TX‐0 – зарождался новый мир с совершенно новой философией, этикой и мечтами.
Хакеры TX‐0 даже не предполагали, что, посвящая все свои знания и силы компьютерному программированию с той безграничной преданностью, редко заметной посторонним, они прослывут пионерами в деле симбиоза компьютера и человека. С жаром, свойственным молодым гонщикам, постоянно разгоняющим движки своих болидов, они достигали желаемого, воспринимая все происходящее как должное и обыденное. Даже после того, как начала формироваться особая хакерская культура, появились легенды, а их мастерство программирования превзошло все прежние уровни, хакеры очень неохотно признавали, что в их узком кругу, сосредоточенном вокруг TX‐0, зарождалось новое сообщество со своими нравами и убеждениями.
Принципы новой хакерской этики не обсуждались, с ними лишь молча соглашались. Не издавалось никаких манифестов, миссионеры не пытались обратить кого-либо в свою веру. Компьютер произвел революцию в сознании Самсона, Сондерса, Котока и прочих, чьи жизни до работы с TX‐0 казались лишь подготовкой, прелюдией к настоящему делу – к работе за пультом управления TX‐0. Они лишь молчаливо соблюдали новые принципы. Хакеры более позднего периода, легендарные Гринблатт или Госпер, отнесутся к принципам хакерской этики даже с большей щепетильностью, чем те, кто стоял у истоков этого движения. Хотя пройдет еще несколько лет, прежде чем принципы хакерства будут четко сформулированы.
Тем не менее уже во времена TX‐0 были заложены принципы хакерской этики. Они гласили:
Доступ к компьютерам – и ко всему, что поможет разобраться в устройстве мира, – должен быть полным и безграничным. Всегда уступайте практическому требованию!
Хакеры верят, что важные знания о системах, о мире можно получить, разобрав их на части, наблюдая, как они работают, и используя эти знания для создания новых и даже более интересных вещей. Их возмущают любые запреты и препятствия, возникающие на пути познания, будь то закон, человек или физический барьер.
Это особенно ярко проявляется, когда хакер хочет исправить что-то, что, по его мнению, сломано или нуждается в доработке. Несовершенные системы приводят хакеров в ярость, их первобытный инстинкт – отлаживать системы. Это одна из причин, почему хакеры обычно ненавидят водить автомобиль. Для них система дорожного движения – случайная система светофоров и хаотично проложенных улиц с односторонним движением, вызывающая пробки. Хакером за рулем овладевает импульсивное желание переставить знаки, перепрограммировать светофоры, отладить всю схему дорожного движения.
В идеальном хакерском мире приветствуется вмешательство любого человека, разозлившегося из-за несовершенства системы, в управление светофорами. Необходимо разбирать и менять то, что работает несовершенно. Правила, которые запрещают вам влезать в несовершенные системы, чтобы изменить их, нелепы. Такие правила не следует соблюдать. Такое отношение к миру подтолкнуло членов TMRC создать неформальный Полуночный реквизиторский комитет (Midnight Requisitioning Committee). Когда клубу требовались диоды или пара реле для внедрения новой функции в существующую схему управления, члены «энергетического комитета» под покровом ночи отправлялись на поиски искомого. Хакеры, предельно честные в других вопросах, не считали подобное изъятие кражей – сознательная слепота.
Вся информация должна быть свободной.
Если у вас нет доступа к информации, необходимой для улучшения ситуации, как вы можете что-то исправить? Свободный обмен информацией, особенно если она представлена в виде компьютерной программы, обеспечивал бо`льшую творческую активность в целом. Работая на машине типа TX‐0, практически не имевшей программного обеспечения, вы сталкивались с необходимостью писать системные программы, облегчающие программирование. Приходилось придумывать инструменты для создания инструментов. Их хранили в ящике панели управления, и доступ к ним имели все, кто работал за компьютером. Благодаря свободному доступу к системным программам не приходилось всякий раз изобретать велосипед. Не было необходимости каждому писать собственные системные программы – лучшая версия была доступна каждому, и каждый мог свободно копаться в ее коде, совершенствуя его. В мире должны царить полнофункциональные программы, чей код сокращен и отлажен до совершенства.
Безоговорочная вера в свободу информации была основана на собственно работе компьютера или программы. Биты двоичной системы движутся по прямому, логическому пути, необходимому для выполнения задачи. Этот свободный поток информации и есть суть работы компьютера. Если в память компьютера не сможет поступать информация с устройств ввода-вывода, например считывателей перфолент или свитчей, рухнет вся система. С точки зрения хакеров, любой системе выгоден свободный поток информации.
Недоверие к власти – продвижение децентрализации.
Лучший способ продвигать свободный обмен информацией – открытая система, не имеющая границ между хакером, информацией или оборудованием, необходимым ему в процессе его познания, совершенствования и просто в течение рабочего времени. Хуже всего, если на пути встает бюрократия. Бюрократия – корпоративная, правительственная или университетская – показывает ущербность системы, неспособной адаптироваться к вновь возникшему исследовательскому стремлению истинных хакеров. Бюрократы прячутся за выдуманными правилами (в отличие от логических алгоритмов, на основе которых работают машины и компьютерные программы). Они используют их для консолидации власти, а конструктивный импульс хакеров воспринимают как угрозу.
Олицетворением всего бюрократического мира была огромная корпорация IBM. Причина, по которой она порождала своих монстров, лишь частично была связана с использованием устаревших радиоламп. Главная же причина крылась в том, что этот неуклюжий бизнес-гигант не успевал реагировать на новые идеи, импульсы хакеров. Если бы компания IBM стала лидером (как думали хакеры TMRC), мир был бы раздавлен титанами с радиолампами и перфокартами, и только привилегированные «жрецы» получали бы доступ к компьютерам.
Чтобы убедиться в этом, достаточно было взглянуть на сотрудника корпорации IBM. Белая, застегнутая до последней пуговки рубашка, аккуратно завязанный черный галстук, тщательно зачесанные волосы и пачка перфокарт в руках. Если прогуляться по вычислительному центру, где сменяли друг друга компьютерные гиганты 704, 709, а затем и 7090 – лучшее достижение компании IBM, то нельзя не обратить внимание на педантичный порядок. Были даже огороженные участки, недоступные к посещению без специального разрешения. По сравнению с этим свободная атмосфера лаборатории с TX‐0, безусловно, выигрывала. Здесь неряшливость была нормой, и любой страждущий мог войти в комнату с компьютером.
IBM сделала и продолжает делать многое для развития вычислительной техники. Благодаря своим ресурсам и мощному влиянию она сделала компьютеры неотъемлемой частью жизни в Америке. Для многих слова IBM и «компьютер» стали синонимами. Машины IBM были надежными рабочими лошадками, достойными доверия бизнесменов и ученых. Отчасти это связывалось с консервативным подходом IBM: компания делает ставку не на технологические новшества, а на проверенные временем принципы и агрессивный маркетинг. Заняв лидирующие позиции на компьютерном рынке, IBM превратилась в скрытную и самодовольную империю.
Что действительно сводило хакеров с ума, так это отношение «жрецов» и «послушников» из компании IBM, считавших, что только их компания производит настоящие компьютеры. Все остальное – мусор. С этими ксенофобами, убежденными в собственном превосходстве, невозможно было говорить. Их мозг перенял у компьютера принцип пакетной обработки данных. Это проявлялось не только в их выборе машин, но и в проведении вычислений, в их представлениях о том, как устроен мир. Они не могли понять очевидного превосходства децентрализованной системы, в которой никто не отдает приказов и в которой все занимаются тем, что им интересно. И если у них на пути возникает препятствие, то оно будет удалено хирургически без оформления кучи бессмысленной макулатуры. Они просто будут действовать.
Эти антибюрократические наклонности отражали характер хакеров, с детства привыкших заниматься научной работой, выходя за рамки привычного, в то время как остальные дети осваивались в социуме, сталкиваясь лбами на спортплощадках. Эти юноши, когда-то чувствовавшие себя изгоями, открыли для себя фантастический мир компьютеров, переживая то, что описал Питер Самсон: «Перед вами будто открылась дверь, пройдя через которую вы попали в совершенно другую вселенную…» Хакеры ощутили власть, сев за панель управления компьютера стоимостью в миллион долларов. И любое ограничение этой власти вызывало их возмущение и недоверие.
Хакеров нужно оценивать по фактическим навыкам, а не по фальшивым критериям, таким как образование, возраст, раса или положение в обществе.
Подтверждением и ярким примером этого принципа служит принятие двенадцатилетнего Питера Дойча в хакерское сообщество (хотя остальные студенты не принимали его всерьез). С другой стороны, какие бы документальные рекомендации ни предъявлял новичок, к нему начинали относиться всерьез, только когда он показывал, на что способен за панелью управления компьютером. Соблюдение принципа меритократии вовсе не означало врожденную доброту хакерских сердец. Просто им важнее не внешний вид человека, а его способности творить во благо хакерства, создавать новые восхитительные программы, а также то, можно ли с ним обсудить новые свойства системы.
С помощью компьютера можно создавать искусство и красоту.
Музыкальная программа Самсона была тому примером. Но для хакеров искусство программирования не сводилось к умению извлечь приятные звуки из компьютера. Красота заключена в самом программном коде. Хотя Самсон отказывался комментировать свой исходный код для более легкого понимания. Одна из его удачных программ, получившая большую популярность, содержала сотни команд на языке ассемблера. И во всем массиве кода затесался лишь один комментарий в строке номер 1750 – RIPJSB. Пользователи сломали себе головы, пытаясь разгадать загадку этого комментария, пока кто-то не догадался, что в 1750 году умер Бах и RIPJSB означает «Покойся с миром, Иоганн Себастьян Бах» (Rest In Peace Johann Sebastian Bach).
Возникла определенная эстетика стиля программирования. Из-за ограниченного объема памяти TX‐0 (недостаток, свойственный всем компьютерам той эпохи) хакеры высоко ценили инновационные приемы, позволявшие программам выполнять сложные задачи при помощи небольшого количества команд. Чем короче код, тем больше места остается для других программ и тем быстрее она выполняется. Если вы не сильно обращали внимание на скорость выполнения программы и ее размер, а также не гнались за красотой и искусством, то можно было бы хакнуть неудачную программу методом грубой силы. «Ну, мы можем сделать это, добавив двадцать команд, – сказал бы сам себе Самсон. – Ведь гораздо проще написать их, чем придумывать цикл в начале и конце кода, чтобы достичь того же результата с помощью семи или восьми команд». Но только второй вариант вызвал бы восторг друзей-хакеров. Некоторые программы Самсон так искусно втискивал всего лишь в несколько команд, что при взгляде на его код хакеры таяли от восхищения.
Иногда втискивание программ превращалось в некое соревнование, состязание мачо, призванное доказать, и прежде всего самому себе, что он виртуозно владеет системой и может элегантно удалить одну-две команды или, еще лучше, переработать весь алгоритм и создать новый, укороченный на целый блок команд. Алгоритм – специфическая процедура, применяемая для решения сложной компьютерной задачи, своего рода математическая отмычка. Для этого надо взглянуть на проблему с необычного ракурса, так, как никто до вас не смотрел на нее. Только тогда можно осознать общий смысл проблемы. Подобная гениальная марсианская техника позволяла пережить озарение, ощутить присутствие музы, позволявшую хакеру отбросить все ранее придуманное другими умами и создать совершенно новый алгоритм. Так произошло с программой вывода десятичных чисел. Она использовалась для интеграции во множество других программ и перевода двоичных чисел, которыми оперирует компьютер, в привычные десятичные числа. Сондерс назвал задачку «программированием с павлиньим хвостом»: если вы можете написать простенькую рабочую программу перевода в десятичные числа, значит, ваши знания о компьютере вполне достаточны, чтобы расправить хвост и называть себя программистом. А вот если вы можете написать отличный алгоритм перевода в десятичные числа, то у вас есть право именовать себя хакером. Решение задачи перешло из ранга простого соревнования в своеобразный поиск хакерами чаши Грааля.
Создание оптимального алгоритма перевода в десятичные числа заняло несколько месяцев. Непроходимые глупцы, полные идиоты, абсолютные лузеры писали программы с сотней команд для перевода компьютером двоичных чисел в десятичные. А вот хакер, достойный своего звания, мог написать программу с меньшим количеством команд. Следуя процедуре, взглянув на проблему под другим углом, попеременно убирая из алгоритма то одну, то другую команду, можно сократить его и до пятидесяти инструкций.
Это стало серьезным испытанием. Хакеры часами искали способы втиснуть код. И это было уже не просто соревнование – был брошен серьезный вызов их умам. Несмотря на все усилия, никто не мог преодолеть барьер в пятьдесят строк. Естественно, встал вопрос, возможно ли такое в принципе? Существует ли предел, за которым программа просто не сможет работать?
Среди многих, взявшихся за решение головоломки, был Дженсен, высокий молчаливый хакер из штата Мэн. Обычно он тихонечко сидел в комнате Клуджа и писал на распечатках с кодом с тем же упорством и невозмутимостью, с каким лесоруб валит лес. Дженсен всегда стремился найти способы втиснуть свои программы и увеличить скорость их работы. Его код представлял собой причудливый последовательный набор логических и арифметических функций, часто вызывая вычисления в разных частях одного и того же 18‐битного слова. Удивительные вещи, настоящая магия.
До Дженсена считалось, что единственный логический алгоритм для процедуры вывода десятичных чисел – это последовательное вычитание с использованием таблицы степеней числа 10 так, чтобы результат попадал в соответствующие столбцы цифр. Каким-то образом Дженсен догадался, что таблица степеней числа 10 не нужна. Он придумал алгоритм, способный преобразовывать числа в обратном порядке, но благодаря хитрому приему выводить их в верной последовательности. Кроме того, Дженсен математически обосновал свое решение. Остальные хакеры смогли разобраться в его решении только после того, как Дженсен вывесил его на доску объявлений. Тогда они увидели, что ему удалось преодолеть существовавший ранее барьер по сокращению количества команд программы для вывода десятичных чисел. В его алгоритме осталось всего сорок шесть строк. Хакеры разинули рты, пораженные увиденным кодом. Мардж Сондерс вспоминает, что хакеры после случившегося несколько дней были тише воды.
«Мы поняли, что все кончилось, – позже сказал Боб Сондерс. – Мы достигли нирваны».
Компьютеры могут изменить вашу жизнь к лучшему.
Это очевидно, но вера в это формировалась неуловимо. Хакеры редко пытались донести до остальных все преимущества компьютеров. Однако этот принцип проявлялся в обыденной жизни хакеров TX‐0, а также поколений хакеров после них.
Вне всяких сомнений, компьютер изменил их жизнь – обогатил, придал ей смысл, наполнил приключениями. Он позволил им верховодить своими судьбами. Питер Самсон позже говорил: «Мы занимались этим отчасти потому, что у нас это хорошо получалось, а отчасти – ради того, чтобы оставить после себя метафорическое наследие, способное жить собственной жизнью. В этом и заключается магия программирования… Устраняя проблему в поведении [компьютера или программы], вы исправляете ее навсегда. Результат оказывался в точности таким, каким вы его ожидали».
Компьютер, как лампа Аладдина, может исполнять ваши желания.
Безусловно, каждый может ощутить эту силу на себе. Мир, построенный на столпах этики хакеров, даст выигрыш каждому. Это незыблемая вера хакеров. Хакеры с энтузиазмом меняли традиционный взгляд на возможности компьютера, на вопрос, для чего он нужен. Они создавали новый мир, меняющий взаимодействие человека и компьютера.
Это был трудный путь. Даже в таком продвинутом университете, как МТИ, некоторые профессора считали маниакальное увлечение компьютерами легкомысленным и даже безумным. Однажды Бобу Вагнеру, хакеру из TMRC, даже пришлось объяснять профессору инженерного факультета, что такое компьютер. Вагнер ощутил противоборство компьютерных и антикомпьютерных точек зрения еще сильнее на занятиях по математическому анализу. Профессор требовал, чтобы студенты выполняли домашнее задание с помощью грохочущих и неуклюжих электромеханических калькуляторов. Коток учился в этой же группе, и их обоих пугала перспектива работы с этими отсталыми устройствами. «Почему мы должны это делать, – спрашивали они друг друга, – ведь у нас есть компьютер?»
Поэтому Вагнер начал работать над компьютерной реализацией калькулятора. Идея казалась возмутительной. Считалось нерациональным тратить на это рабочее время компьютера. По мнению некоторых, это время драгоценно и достойно только выполнения задач, максимально полно задействующих компьютер. Стандартный путь решения таких проблем предполагал привлечение больших ресурсов со стороны ученых или времени. Хакеры же считали иначе: забавно и интересно скормить компьютеру подобные задачки. Они верили, что и эти проблемы надо решать с помощью интерактивных возможностей компьютера, когда никто не маячит у тебя за спиной и не требует официального допуска к работе. После двух-трех месяцев напряженной работы, продумывая все хитрости организации вычислений с плавающей точкой (программа должна знать, где поставить знак в дробных числах) на компьютере, который до сих пор не имел элементарного алгоритма для выполнения наипростейшего умножения, Вагнер написал три тысячи строк кода. Он заставил чудовищно дорогое устройство выполнять функции калькулятора, который стоил в тысячи раз меньше. Чтобы подчеркнуть иронию ситуации, Вагнер назвал свою программу «Дорогущий настольный калькулятор» (Expensive Desk Calculator), а на одном из занятий он с гордостью продемонстрировал домашнее задание, выполненное с помощью компьютера.
Профессор не оценил его работу. «Ты пользовался компьютером! – сказал профессор. – Ответ не может быть верным».
Вагнер даже не потрудился объясниться. Как он мог донести до препода, что компьютер способен делать то, что раньше казалось невероятным или невозможным? Или как объяснить ему существование программы «Дорогущая печатная машинка», написанной другим хакером, с помощью которой на TX‐0 можно было набирать текст и выводить его на флексограф? Можете ли вы представить профессора, принимающего домашнее задание, напечатанное при помощи компьютера? Как мог этот профессор, да и любой другой человек, далекий от новой, неизведанной пока еще вселенной «компьютер и человек», понять, что Вагнер и его товарищи постоянно моделируют с помощью компьютера «непредсказуемые ситуации»? Со временем и профессор, и все прочие поймут, что мир, открываемый перед человеком компьютером, безграничен.
Если нужны дополнительные доказательства, можно привести пример проекта, над которым в вычислительном центре работал Коток, – шахматная программа. Над ней на машине IBM 704 работал еще бородатый Джон Маккарти, «Дядя», как называли его хакеры. Хотя Коток и другие хакеры, помогавшие ему с программой, презрительно относились к пакетной обработке данных, лежавшей в основе работы IBM 704, им пришлось пересилить себя и выкроить немного ночного времени, чтобы использовать машину в интерактивном режиме. Они вступили в неофициальную битву с системными программистами IBM 704, выясняя, кто из них «пожиратель» рабочего времени компьютера. Бой был жарким, и ксенофобы в белых рубашках и черных галстуках впечатлились и уступили напору хакеров. Они позволили Котоку с его группой касаться кнопок и переключателей IBM 704 – уникальная возможность физического контакта со знаменитым чудовищем IBM.
Роль Котока в воплощении шахматной программы в жизнь была показательна так же, как и роль хакеров в области развития искусственного интеллекта. Обычно какая-нибудь «умная голова» вроде Маккарти или его коллеги, Марвина Минского, начинала научный проект, обсуждалась возможность его реализации, и в случае заинтересованности хакеры тут же подключались.
Шахматная программа изначально писалась на FORTRAN – одном из первых компьютерных языков. Компьютерные языки гораздо больше похожи на английский, чем язык ассемблера. На них легче писать и нужно меньше строчек кода для выполнения серьезных задач. Однако всякий раз, когда в компьютер вводилась программа на языке типа FORTRAN, компьютер сначала переводил команды в двоичный код с помощью компилятора, занимавшего не только значительную часть времени работы компьютера, но и бо`льшую часть его объема памяти. По сути, использование компьютерного языка только увеличивало дистанцию между человеком и компьютером, нарушая их непосредственный контакт. Поэтому хакеры предпочитали язык ассемблера или, как они его называли, машинный язык, пусть даже не такой элегантный, как высокоуровневый FORTRAN.
Коток понимал, что из-за огромного количества инструкций будущей шахматной программы часть кода должна быть написана на языке FORTRAN, а часть – на языке ассемблера. Они собирали программу по частям, используя генераторы перемещений, составляющие основу структуры данных, и применяя всевозможные инновационные алгоритмы для реализации стратегии. После ввода в компьютер правил перемещения каждой фигуры были добавлены инструкции для оценки позиции фигуры, анализа ходов и выбора наиболее выигрышного, передвигающего фигуру в наиболее выгодную позицию. Коток работал над шахматной программой в течение многих лет. Код расширялся по мере модернизации компьютеров IBM в МТИ. И однажды памятной ночью хакеры собрались вместе посмотреть, как программа сделает свои первые ходы в реальной партии. Программа уверенно разыграла дебют, но после примерно восьмого обмена ходами начала промахиваться, и компьютеру вот-вот должны были поставить мат. Стало интересно, как отреагирует компьютер. Через некоторое время (присутствующие понимали, что во время пауз компьютер «думает», просчитывая ходы, оценивая, отклоняя большинство вариантов и используя предопределенный набор параметров для выполнения хода) компьютер передвинул пешку на две клетки вперед, перепрыгнув через другую фигуру. Баг в коде? Да, но хитрый баг – так компьютер вывел игру на новый уровень. Может быть, программа попыталась разработать какой-то новый алгоритм достижения победы?
В других университетах профессора публично заявляли, что компьютер никогда не победит человека в шахматах. Но хакерам было виднее. Благодаря им компьютеры покоряли новые вершины, порой самые неожиданные. И хакеры благодаря своей плодотворной, значимой связи с компьютером оказывались в первых рядах среди ощутивших на себе все преимущества этого плотного взаимодействия.
Но не только хакеры могут пользоваться компьютерными благами. Каждый человек может получить искомое, используя интеллектуальные компьютеры в автоматизированном мире. И не выиграет ли он еще больше, если будет подходить к миру с той же пытливой энергией, скептическим настроем по отношению к бюрократии, открытостью к творчеству, бескорыстием в обмене достижениями, стремлением к совершенствованию и желанием создавать, как последователи принципов хакерской этики? А сколько он мог бы выиграть, если бы принимал других людей так же непредвзято, как компьютеры принимают любого, кто вводит код на флексографе? Разве мы не выиграли бы, если бы переняли у компьютеров способы создания совершенной системы и использовали полученные знания для создания совершенного общества? Если бы каждый взаимодействовал с компьютерами с тем же непорочным, продуктивным, творческим импульсом, что и хакеры, хакерская этика распространилась бы по всему социуму, как благословенная волна, и компьютеры действительно изменили бы мир к лучшему.
В монастырских стенах МТИ люди свободно выбирали свой путь и могли жить, ведомые хакерской мечтой. Но никто не предполагал, что эта мечта выплеснется за пределы МТИ. Вместо этого хакеры прямо в стенах МТИ приступили к строительству хакерского Ксанаду – неповторимого и нигде больше не существовавшего.
Летом 1961 года Алан Коток и другие хакеры из TMRC узнали о планах одной компании бесплатно поставить в МТИ новый компьютер, значительно превосходящий уже знакомый им TX‐0. Разумеется, новая машина подходила хакерам гораздо больше, чем старый добрый TX‐0.
PDP‐1. Этот компьютер навсегда изменит мир вычислительной техники. С его помощью призрачные мечты хакеров станут немного ближе к реальности.
Алан Коток творил невероятные вещи на TX‐0, поэтому Джек Деннис нанял его совместно с Сондерсом, Самсоном, Вагнером и несколькими другими хакерами для работы в составе группы системного программирования TX‐0. Жалованье было щедрым – $1,60 в час. Для некоторых хакеров эта работа стала еще одним предлогом не ходить на занятия. Такие, как Самсон, не стремились закончить обучение, но они не жалели об этом – все их время и мысли поглощало хакерство. С другой стороны, был Коток, который смог совместить свое обучение с хакерством. Будучи членом TMRC и работая на TX‐0, он стал легендой, каноническим хакером. Один хакер, только что поступивший в МТИ, рассказывал, как Коток показывал новичкам работу TX‐0. «У меня возникло ощущение, что у него проблемы с щитовидной железой или еще какие-то нарушения, – вспоминал Билл Госпер, который сам впоследствии стал каноническим хакером, – потому что говорил он очень медленно, был довольно упитанным и держал глаза полузакрытыми. Однако это было обманчивое впечатление. [Рядом с TX‐0] Коток обладал безграничным авторитетом. Он написал программу для игры в шахматы. Разбирался в оборудовании». Последнее было весомым аргументом – «разбираться в железе» означало постигнуть дао окружающего мира.
Тем летом, когда стало известно о появлении PDP‐1, Коток работал в компании Western Electric. Эта работа с телефонной сетью была работой мечты. Члены TMRC часто посещали местные телефонные станции подобно тому, как поклонники живописи ходили в музей. Для Котока стало открытием, что компания за годы работы достигла столь значительного роста, притом что лишь немногие ее инженеры разбирались во взаимосвязях и особенностях работы телефонной сети. Эти немногочисленные профессиональные инженеры с готовностью отвечали на все вопросы Котока и его товарищей о функционировании телефонной системы, например о координатных коммутаторах или шаговых искателях. Польщенные таким вниманием профессионалы телефонной компании с удовольствием беседовали с этими мегавежливыми студентами. Они не подозревали, что эти студенты будут реально использовать полученную информацию.
Коток не пропускал эти экскурсии, во время которых читал все технические руководства, которые попадались в руки. Он никогда не упускал возможности проверить, что произойдет, если набирать различные комбинации в сложной и малопонятной телефонной системе МТИ. Эти знания стали основой для дальнейших изысканий наряду с освоением работы на TX‐0. Всю предыдущую зиму 1960–1961 годов хакеры TMRC строили схему университетской телефонной сети, фиксируя все места, куда можно было дозвониться с ее помощью. Она не имела подключения к сетям общего пользования. Однако хакеры смогли выйти на лабораторию Lincoln, а далее на всех ее военных подрядчиков. Нужно было только все записывать и проверять. Начинали с одного доступного номера выхода на линию, затем добавляли к нему различные цифры и слушали, кто отвечает. Когда на другом конце отвечали, хакеры спрашивали, кто это и где ответивший находится, после чего добавляли следующую цифру, чтобы подключиться к новому месту. Иногда можно было даже связаться с пригородными телефонными линиями. Это внешнее подключение не предусматривалось телефонной сетью университетского городка. Позже Коток признавался: «Если в проекте телефонной сети были допущены ошибки, в результате чего можно было совершать не предусмотренные университетской телефонной компанией звонки, это было их проблемой, не моей».
Однако главной целью таких звонков было исследование, а не мошенничество. Считалось дурным тоном извлекать выгоду из соединений, не предусмотренных телефонной сетью университетского городка. Далеко не все могли понять подобное бескорыстие хакеров. Соседи Самсона по общежитию Бартон Холл не были хакерами. Они считали, что подобные звонки следует делать только для получения личной выгоды, а вовсе не для того, чтобы исследовать телефонную сеть. Они давили на Самсона несколько дней. И он продиктовал им двадцатизначный номер, сказав, что это номер доступа в весьма любопытное место. «Вы можете позвонить по этому номеру с телефонного аппарата в холле, – сказал он им, – но я не хочу при этом присутствовать». Пока они, волнуясь, набирали номер, Самсон подошел к телефонному аппарату этажом ниже и ответил на поступивший звонок. «Это Пентагон, – уверенным официальным тоном произнес он. – Назовите, пожалуйста, ваш код доступа». В трубке послышались испуганные вздохи, и раздался щелчок отключившегося телефона.
Составление схемы телефонной сети было занятием, отвечающим всем интересам хакеров, чье желание исследовать работу системы перевешивает страх быть пойманным.
Однако, как бы ни увлекала Котока телефонная эзотерика, перспектива работать с машиной PDP‐1 казалась более заманчивой. Возможно, потому, что он чувствовал: никакой телефонный хакинг с этим не сравнится. Люди, спроектировавшие и поставляющие новый компьютер, кардинально отличались от известных ранее компаний. Это была совершенно новая фирма. Она называлась Digital Equipment Corporation (DEC). Некоторые пользователи TX‐0 знали, что первыми продуктами DEC были специальные интерфейсы для TX‐0. Удивительно было то, что некоторые из основателей этой компании имели особенный взгляд на вычислительную технику, отличавшийся от традиционного взгляда, которого придерживалась компания IBM со своими машинами, работавшими в режиме пакетной обработки. Сотрудники DEC ставили во главу угла те же принципы свободы, интерактивности, импровизации и практичности, перед которыми преклонялись хакеры сообщества TX‐0. Разработанный ими компьютер реализовывал все эти принципы в своей работе. PDP‐1 (название компьютера было аббревиатурой Programmed Data Processor – «программируемый процессор для обработки данных» – и использовалось вместо устрашающего слова «компьютер», которое ассоциировалось с неповоротливыми гигантами) был известен как первый мини-компьютер, предназначенный для выполнения огромного количества задач – научных исследований, математических расчетов и… хакинга. Он был настолько компактен, что полностью смонтированная система занимала места примерно как три холодильника. Он не требовал интенсивного кондиционирования. А еще его можно было включить, не привлекая целой команды младших «жрецов», которые включали бы источники питания и запускали компьютерные блоки в определенном порядке, и все это помимо прочих задач, также требовавших повышенного внимания. Машина стоила 120 тысяч долларов, это было достаточно дешево, чтобы успокоить людей, постоянно жалующихся на сверхдорогую стоимость каждой секунды работы компьютера. При этом этот второй экземпляр PDP‐1 (первый был продан ближайшей научной фирме Болта Беранека и Ньюмана (BBN), находившейся по соседству) был поставлен в МТИ совершенно бесплатно. Это был подарок компании DEC научно-исследовательской лаборатории электроники.
Это предопределило, что у хакеров будет больше времени для работы на компьютере, – больше, чем даже с TX‐0.
Машина PDP‐1 поставлялась с довольно простым программным обеспечением, которое хакеры сочли полностью непригодным для использования. Хакеры TX‐0 привыкли к продвинутому интерактивному программному обеспечению, ошеломляющему набору программ, написанных, чтобы подчинить себе все возможности компьютера. Питер Дойч, двенадцатилетний мальчик, открывший для себя TX‐0, выполнил свое обещание и написал более совершенный ассемблер, а Боб Сондерс разработал более быструю и небольшую по объему версию отладчика FLIT, получившую название Micro-FLIT. Эти программы использовали расширенный набор инструкций. Однажды, после обстоятельного планирования и проектирования, выполненных Сондерсом и Джеком Деннисом, TX‐0 был выключен, а группа инженеров залезла в его внутренности и внесла ряд изменений. Эта грандиозная работа позволила расширить язык ассемблера на несколько новых команд. Когда плоскогубцы и отвертки были отложены в сторону, а компьютер включен, все принялись с воодушевлением переделывать свои же старые программы, используя новые команды.
Набор инструкций PDP‐1, с которым Коток ознакомился, мало отличался от расширенного набора команд TX‐0. Поэтому Коток, естественно, начал писать программное обеспечение для PDP‐1 тем же летом, используя каждую минуту своего свободного времени. Понимая, что, как только машина будет доставлена и установлена, все тут же бросятся ее осваивать, он заранее написал версию отладчика Micro-FLIT, чтобы облегчить дальнейшее создание ПО. Самсон тут же назвал отладчик Котока «ДДТ», и это название прилипло к нему намертво, хотя впоследствии программа дорабатывалась хакерами бесчисленное число раз. Хакеры постоянно добавляли в нее новые команды или убирали лишние инструкции.
Но не только Коток готовился к появлению PDP‐1. Подобно будущим родителям, ожидающим появления ребенка, хакеры усердно вязали «пинетки» и шили «пеленки» для младенца, который должен был появиться в их семье. Появление этого желанного наследника компьютерного трона ожидали в конце сентября.
Хакеры помогли перенести вновь прибывшего – PDP‐1 – в его новый дом, в комнату Клуджа. Комната, в которой поселился PDP‐1, была по соседству с комнатой TX‐0. Новый компьютер был прекрасен, его панель управления была вдвое короче консоли управления прежней машины – компактная, с множеством переключателей и лампочек. Дисплей был огранен шестиугольным корпусом в стиле ар-деко. За всем этим стояли высокие шкафы размером с холодильник, но глубже последнего раза в три. В шкафах, доступ к которым был воспрещен, были спрятаны провода, платы, реле и транзисторы. Здесь же стоял флексограф для ввода данных в систему (пользователи так жаловались на сильный шум, производимый флексографом, что его в конечном счете заменили гораздо более тихой системой ввода данных производства IBM) и высокоскоростной считыватель перфоленты – также для ввода информации. Судя по всему, это была серьезная игрушка.
Джеку Деннису нравилась часть программного обеспечения, написанного фирмой BBN для прототипа PDP‐1, в особенности ассемблер, Котока же при виде работы этого ассемблера начинало тошнить. Ассемблер работал далеко не так быстро, как привык Коток. Поэтому он озвучил Деннису и остальным свои планы написать собственный ассемблер. «Плохая идея», – ответил на это Деннис. Он хотел, чтобы ассемблер был запущен немедленно, и понимал, что написание собственной программы задержит их на несколько недель.
Однако Коток и остальные хакеры оказались непреклонны: ведь с ассемблером им предстояло много работы в будущем, им предстояло буквально жить с ним. А значит, программа должна была быть совершенной. Конечно, ни одна программа не может быть идеальной, но разве это кого-нибудь остановит?
«Вот что я тебе скажу, – говорил Коток, двадцатилетний гениальный хакер, своей упитанностью напоминающий Будду, скептически настроенному, но добродушному Джеку Деннису. – Если мы успеем написать рабочую программу всего лишь за выходные, оплатишь нам это рабочее время?»
В то время стоимость подобной работы составляла около пятисот долларов. «Это будет честной сделкой», – ответил Деннис, а Коток, Самсон, Сондерс, Вагнер и еще несколько человек начали работать над программой пятничным вечером в один из последних дней сентября. Они решили переписать ассемблер TX‐0, оригинальную версию которой создал Денис, а затем переработал двенадцатилетний Питер Дойч. Они не стали менять ввод, вывод и алгоритмы. Каждый хакер брал часть кода TX‐0 и преобразовывал его в код PDP‐1. Все это время они не спали. Вшестером хакеры наработали в те выходные двести пятьдесят человеко-часов, создавая код, отлаживая его, запивая китайскую еду литрами кока-колы, которую можно было раздобыть в TMRC. Это была настоящая оргия программирования. И когда Джек Деннис пришел в понедельник на работу, он был поражен, обнаружив запущенный на PDP‐1 ассемблер, который демонстрировал свои возможности, конвертируя нативный код в двоичный.
Благодаря своим хакерским навыкам хакеры TX‐0 в прошлом, а теперь уже хакеры PDP‐1, сумели создать программу всего лишь за пару выходных. В компьютерной индустрии на создание подобной программы ушли бы недели, а то и месяцы. К подобному проекту обычные компьютерные гении приступили бы только после длительного и скучного процесса постановки задачи, проведения исследований, совещаний и преодоления сомнений руководства. Целью всего этого был бы поиск компромиссов, а не разработка. И, скорее всего, этот процесс остался бы незавершенным. Создание ассемблера хакерами за выходные стало прямой противоположностью обычной работе компьютерной индустрии.
Хакеры получили более свободный доступ к новой машине, чем раньше с TX‐0, и большинство из них переключилось на работу в комнате Клуджа. Некоторые упрямцы по-прежнему занимались с TX‐0, чем вызывали насмешки хакеров PDP‐1. Одной из дразнилок стало показательное выступление хакеров PDP‐1 для демонстрации мнемоники новой машины, в котором они использовали такие экзотические команды, как DAC (Deposit Accumulator), LIO (Load Input-Output), DPY (Deploy) и JMP. Несколько хакеров PDP‐1 становились рядом и хором кричали:
LAC,
DAC,
DIPPY DAP,
LIO,
DIO
JUMP!
После этого они одновременно прыгали вправо. Их бешеный энтузиазм с лихвой компенсировал недостаток хореографии выступления. Ими двигала увлеченность красотой компьютера, машины.
Тот же энтузиазм прослеживался и в спонтанном программировании на PDP‐1 начиная от создания серьезных системных программ, например программ для управления простой роботизированной рукой, и заканчивая весьма неожиданными хаками. Одной из последних выходок стало установление соединения PDP‐1 и TX‐0 по кабелю, по которому передавались биты информации. Как рассказывал потом Самсон, хакеры позвали многоуважаемого основоположника искусственного интеллекта Джона Маккарти и усадили его за панель управления PDP‐1 со словами: «Профессор Маккарти, посмотрите на нашу новую программу для игры в шахматы!» Другого профессора они усадили за консоль управления TX‐0 с тем же предложением. «Ваш ход, профессор!» После того как Маккарти ввел свой первый ход, тот был напечатан флексографом TX‐0. Хакеры сообщили второму профессору, что тот стал свидетелем первого хода компьютера. «Теперь ваша очередь, профессор!» Спустя несколько ходов Маккарти заметил, что компьютер стал выводить ходы по одной букве за раз, иногда с подозрительной паузой между ними, прошел вдоль кабеля и нашел на другом его конце своего противника из плоти и крови. Хакеры покатились со смеху. Все это случилось незадолго до того, как они действительно создали программу для проведения турнира по шахматам между двумя компьютерами.
PDP‐1 предоставил хакерам полную свободу программирования. Ограничений не было. Самсон, например, расшифровывал календарь майя на основе двадцатиричной системы исчисления. Одновременно с этим он работал над новой версией своей музыкальной программы, написанной еще для TX‐0, которая использовала расширенные звуковые возможности PDP‐1 для создания музыки в три голоса. С помощью этой программы Самсон записал фугу Баха для трех голосов. И вот… компьютерная музыка проникает за стены комнаты Клуджа! Сотрудники компании DEC прослышали про программу Самсона и попросили его довести ее до ума на PDP‐1. В итоге Самсон написал код, с помощью которой любой мог ввести музыкальную партитуру в компьютер с помощью элементарного перевода нот в цифры. И вот уже можно слушать органную сонату в три голоса. Другой код – и раздаются звуки оперетты Гилберта и Салливана.
Самсон с гордостью представил этот музыкальный компилятор компании DEC, которая могла распространять программу среди желающих совершенно бесплатно. И Самсон гордился этим. Хакеры, работающие над ассемблером, имели сходное мнение о распространении их детища. Они всегда имели в столе ленту с копией их программы, чтобы при необходимости любой желающий мог взять ее, попытаться улучшить, сократив пару инструкций или добавив новые. Им польстило предложение инженеров из компании DEC, которые хотели распространять программу среди владельцев других машин PDP‐1. При этом никогда не поднимался вопрос о вознаграждении. Для Самсона и других хакеров возможность работать на этой машине приносила столько счастья, что они сами были готовы платить за такой шанс. Тот факт, что за работу на компьютере они еще и получали 1,60 доллара в час, был своеобразным бонусом. Что касается отчислений за пользование их программами – то разве это уже не подарок миру, награда в чистом виде? Ими двигала идея сделать компьютер более удобным и интересным для пользователей. Главной целью было заинтересовать людей компьютерами настолько, чтобы они тоже захотели исследовать машины, стать хакерами. Писать программы для них значило вносить свой вклад в создание современного общества, а не просто выпускать продукт.
В любом случае люди не должны платить за программное обеспечение – информация должна быть бесплатной!
Но не только хакеры из TMRC строили коварные планы в отношении новой машины PDP‐1. Летом 1961 года вынашивался изощренный план взлома компьютера для виртуальной демонстрации серьезного подхода к соблюдению хакерской этики. Местом этих дискуссий было многоквартирное здание на Хайэм-стрит в Кембридже, и первыми «преступниками» были трое неприкаянных программистов лет двадцати пяти, околачивающиеся по разным компьютерным центрам уже многие годы. Двое из этой троицы жили в этом доме, поэтому они именовали свою резиденцию «Хайэмским институтом» в насмешку над помпезностью и напыщенностью Гарвардского университета по соседству.
Одним из членов этого вымышленного университета был Стив Рассел, по неизвестной причине прозванный «Слизняком». Он был похож на остальных хакеров своей манерой говорить, сильными очками в толстой оправе, невысоким ростом и фанатичной страстью к компьютерам, плохим фильмам и научной фантастике. Эти три интереса лежали в основе всех встреч постоянных членов «Хайэмского института».
Рассел довольно долго был «кули» (что в терминах TMRC означало человека на побегушках) «Дяди» Джона Маккарти. Маккарти пытался разработать и внедрить более высокоуровневый язык для работы с искусственным интеллектом. Он считал, что это язык LISP, получивший свое название благодаря используемому способу обработки списков (LISt Processing). С помощью простых, но мощных команд LISP мог всего лишь несколькими строками кода творить множество вещей, а главное – выполнять сложные рекурсивные ссылки к самому себе. Благодаря этому программы, написанные на этом языке, могли «учиться» тому, что происходило во время их выполнения. Главным недостатком языка LISP в то время был его объем – он занимал довольно много места на компьютере, очень медленно работал и генерировал огромное количество дополнительного кода по мере выполнения программ. Ему требовалась собственная программа «сбора мусора», чтобы периодически очищать память компьютера.
Рассел помогал «Дяде» Джону писать интерпретатор языка LISP для неповоротливого гиганта IBM 704. По его мнению, это была «ужасная инженерная работа», в основном из-за утомительного режима пакетной обработки 704‐й модели.