МакКензи беспокоился только о том, чтобы его не обвинили в превращении лаборатории в «детский сад». Этот, еще маленький мальчик, в коротких штанишках, но в то же время достаточно длинный, чтобы доставать головой до консоли TX-0, просматривал код, который Официально Санкционированный Пользователь (весьма вероятно им был какой-нибудь надутый аспирант) набил на Flexowriter-е. При этом, мальчик ему говорил своим писклявым подростковым голосом нечто вроде: «Ваша проблема в том, что данное допущение в данном месте неверно… Вам здесь нужны другие команды». Как правило, надутый аспирант немедленно задавался вопросом: "Кто этот маленький червь?", после чего начинал злиться и повышать на него голос, приказывая выйти отсюда и поиграть в игрушки где-нибудь в другом месте. Но, обычно комментарии Питера оказывались правильными. Кроме того, Дейтч хвастливо заявлял, что он в состоянии написать гораздо лучшие программы, чем те которые он видел, и, что самое интересное — у него это получалось.
   Самсон, Коток, и другие хакеры приняли Питера Дейча в свои ряды. По его уровню понимания компьютера он был достоин равного отношения. Но Дейч не стал таким же фаворитом среди Официально Санкционированных Пользователей, особенно, когда он сидел позади них, готовый к немедленному действию, когда они делали ошибку, набивая программу на Flexowriter-е.
   Официально Санкционированные Пользователи появлялись у TX-0 с регулярностью прихода и ухода на работу. Программы, которые они запускали, представляли собой статистические исследования, поиски взаимных корреляций, моделирование процессов происходящих в ядре, то есть прикладные программы. Пользователи от них были в восторге, но в представлении хакеров это была пустая трата времени и ресурсов. В хакерских головах гнездилось непреодолимое желание сесть за консоль TX-0, такое же, какое испытывает пилот желающий сесть за штурвал самолета. Или, как выразился Питер Самсон, большой любитель классический музыки: «Вычисления на TX-0 были подобны игре на музыкальном инструменте: абсурдно дорогом музыкальном инструменте, на котором вы могли бы импровизировать, писать музыкальные пьесы, или подобно битникам на Гарвард-Сквер, что в миле отсюда, выть как привидение когда воображение начинало полностью отказывать.»
   Одной из вещей, которой они активно пользовались, была система программирования, которую создали Джек Деннис и профессор Том Стокман. Когда TX-0 привезли в МТИ, ее немного «раздели» по сравнению с тем оснащением, которое у нее было в стенах Lincoln Lab. Была существенно уменьшена память; до 4,096 «слов» из восемнадцати битов каждое[9]. Кроме того, TX-0 не имел почти никакого программного обеспечения. Поэтому Джек Деннис, еще до того как он показал TX-0 ребятам из TMRC , написал «системные программы», то есть такое программное обеспечение, которое помогало пользователям работать с машиной.
   Первой вещью, над которой работал Деннис, был ассемблер. Это было специальное программное обеспечение, переводившее программу, написанную на языке ассемблера в двоичный код. Язык ассемблера представлял собой символические трехбуквенные сокращения, которые на самом деле были командами машины. Ассемблер транслировал их в машинный язык, который, состоял из двоичных чисел 0 и 1. TX-0 имел довольно ограниченнуюсистему команд, так как его дизайн позволял использовать только два бита из каждого восемнадцатибитного слова в качестве команды для компьютера, то есть могли использоваться только четыре инструкции (каждая из возможных комбинаций двух битов — 00, 01, 10, и 11 представляла собой команду). Все что компьютер мог делать, могло быть сведено к выполнению одной из тех четырех инструкций: ему требовалась одна команда, чтобы складывать два числа, и последовательность из примерно двадцати команд, чтобы умножить два числа. Тщательный просмотр написанного длинного списка команд компьютера, записанных в двоичном виде, например, 10011001100001 могли легко превратить вас в заговаривавшегося душевнобольного уже по истечении нескольких минут. Но та же самая команда на языке ассемблера могла бы выглядеть как ADD Y. После загрузки ассемблера в компьютер, который написал Деннис, вы могли бы писать программы в более простой символической форме, и спокойно сидеть и ждать, потирая от удовольствия руки, в то время как компьютер выполнял для вас перевод в двоичный код. После этого вы скармливали компьютеру уже подготовленный «объектный» код. Ценность этой программы была неизмерима: она позволяла программистам писать на языке, который напоминалестественный язык, а не эти бесконечные, вызывающие головокружение, ряды единиц и нолей.
   Другая программа, над которой Деннис работал вместе со Стокманом, была новым вариантом отладчика или дебаггера[10]. TX-0 передали с программой отладки под названием UT-3, который позволял общаться с компьютером во время его работы, печатая команды непосредственно на Flexowriter-е. Этот отладчик имел большой недостаток: он воспринимал подаваемые ему команды только в восьмиричном виде. «Восьмеричный» — значит, что в основе системы исчисления лежит число восемь (в противоположность двоичной системе, в которой основой системы является число два, а в арабской системе исчисления, которой мы пользуемся ежедневно, является основой число десять), и поэтому восьмеричная система является достаточно сложной для повседневного использования. Зная об этом, Деннис и Стокман решили написать нечто лучшее, чем UT-3, что позволило бы пользователям работать с символическим языком ассемблера, который был более легок в использовании. В конце концов, они решили назвать его FLIT. Он позволял пользователям находить ошибки в программе во время работы, устранять их, а также контролировать работу программы. (Деннис пояснял позднее, что "FLIT " означает Flexowriter Interrogation Tape (Допросная лента для Флексоврайтера), но, похоже, что настоящим источником имени был аэрозоль от насекомых, имевший аналогичное название). Фактически FLIT был квантовым скачком вперед, так как он освободил программистов от рутинной работы, и они могли теперь писать на компьютере программы так же, как музыканты, пишут свои произведения на музыкальных инструментах. С использованием отладчика, который занимал третью часть из 4,096 слов памяти TX-0, у хакеров были развязаны руки для создания нового, более смелого и свободного стиля программирования.
   Ну и какие же программы делалихакеры? Ну, иногда, это вообще не имело никакого значения, что делали эти программы. Питер Самсон однажды хакерил всю ночь программу, которая мгновенно конвертировала арабские числа в римские цифры, и Джек Деннис, который восхитился искусством, с которым Самсон проделал этот «подвиг», сказал, «Мой Бог, почему кто-нибудь другой не захотел это сделать?» Но Деннис на самом деле знал почему. Вполне достаточным оправданием было чувство власти и достижение совершенства, которое Самсон получал, когда он заправлял ленту с программой в считыватель, смотрел на мерцающие огни машины и щелкал выключателями. После чего, он видел как арабские цифры, нарисованные на простой старой классной доске, превращались в римские цифры — тоже своего рода хак, который в свое время сделали римляне.
   Именно Джек Деннис высказал Самсону предположение о весьма больших возможностях TX-0 и о ее способности посылать звуковые сигналы через спикер. И хотя не имелось никаких специальных средств для управления высотой, амплитудой, или тоном звука, способ управления им все-таки был — спикер производил звуковой сигнал в зависимости от состояния четырнадцатого бита в восемнадцатибитном слове, которое TX-0 содержал в своем сумматоре в некоторую конкретную микросекунду. Звук включался или выключался в зависимости от того, был ли бит #14 нулем или единицей. Поэтому Самсон приступил к написанию программ, которые меняли бы различными способами числа в сумматоре, что позволило бы разными способами производить звуки различной высоты.
   В то время, только несколько людей в стране экспериментировали с использованием компьютера для создания музыки, и методы, которые они использовали, требовали интенсивных вычислений прежде, чем машина была в состоянии проиграть хотя бы ноту. Самсон, который реагировал крайне нетерпеливо, в отношении тех, кто предупреждал его о том, что он предпринимает попытки сделать невозможное, хотел, чтобы компьютер играл музыку прямо сейчас. Он научился управлять этим одним битом в сумматоре настолько хорошо, что мог командовать им так же, как Чарли Паркер саксофоном. В более поздней версии этого компилятора музыки, Самсон сделал так, что, если вы делали ошибку при программировании музыки, Flexowriter, переключался на красную ленту, и печатал «Человеку свойственно ошибаться, а божеству свойственно прощать».
   Когда люди со стороны слышали мелодию Иоганна Себастьяна Баха исполняемую одноголосной, монофонической квадратной волной, без всякиз признаков гармоничного звука, как правило, это не производило на них впечатления. Подумаешь, большое дело! "Этот гигантский кусок железа стоит три миллиона долларов и почему, интересно, он не в состоянии сделать то же самое, что умеет делать пятидолларовое игрушечное пианино?" Непосвященным было бесполезно объяснять, что Самсон фактически обошел процесс, которым музыка создавалась в течение многих веков. Музыка всегда возникала непосредственно при создании колебаний, которые уже были звуком по своей природе. А то, что было в программе Самсона, фактически представляло собой перезагрузку чисел, битов информации, загруженных в компьютер и составлявших код, в котором и находилась собственно музыка. Вы могли провести массу времени, просматривая на код, и вряд ли бы угадали, где же здесь была музыка. Код становился музыкой только тогда, когда в сумматоре, находящемся где-то среди металла, проводов и кремниевых транзисторов, из которых состоял TX-0, происходили миллионы ошеломляюще кратких обменов данными. Самсон попросил компьютер, который не имел никаких явных навыков в использовании голоса, спеть ему песню и TX-0 подчинился.
   Это была компьютерная программа, которая не только была музыкальным произведением в переносном смысле, она в буквальном смысле словабыла музыкой. Она выглядела как программа, которая выполняла сложные математические расчеты и статистический анализ. Цифры, которые Самсон запихивал в компьютер, были универсальным языком, на нем можно было написать все: от фуги Баха до системы противовоздушной обороны.
   Самсон не говорил об этом ничего людям, которые в этом не разбирались, и которые не были впечатлены тем, что он сделал. Сами хакеры тоже не обсуждали этого, и не ясно даже, анализировали ли они вообще это явление в таких космических масштабах. Но Питер Самсон сделал это, и его коллеги, оценили его деяние по заслугам — потому что было очевидно, что это очень красивый и аккуратный хак, а этого было достаточно для оправдания траты массы времени на него.
* * *
   Для хакеров подобных Бобу Сандерсу, который был лысоватым, пухловатым и веселым приверженцем TX-0, президентом Группы СиП в TMRC и студентом, изучавшим системы, такое времяпрепровождение было совершенным укладом жизни. Сандерс вырос в предместьях Чикаго, и все время пока он себя помнил, ему невероятно нравилась работа с электричеством и телефонами. Перед поступлением в МТИ, Сандерс нашел работу на лето, о которой можно было только мечтать: это была работа в телефонной компании, где он принимал участие в монтаже оборудования центрального офиса. Он проводил восемь блаженных часов за пайкой железа и плоскогубцами в руке, скрывшись с головой в потрохах различных систем. Это была идиллия, нарушаемая лишь часами приема пищи, потраченными на глубокое изучение руководств по оборудованию телефонной компании. Оборудование, подобное тому, которое он видел в телефонной компании, находилось и под моделью железной дороги в TMRC. И это заставило Сандерса стать активным членом Клуба Моделирования Железной Дороги.
   Сандерс был старшекурсником, и он, в своей институтской жизни, добрался до TX-0 позже, чем Коток и Самсон. Он использовал свое время для того, чтобы заложить основу для своей социальной жизни, которая включала в себя ухаживание и возможный брак с Марж Френч, которая занималась нехакерской работой на компьютере в одном научно-исследовательском проекте. Однако TX-0 стал центром его академической карьеры, и он разделил общую хакерскую судьбу, наблюдая за тем, как его оценки начинают страдать от пропущенных занятий. Это не сильно его беспокоило, потому что он знал, что его реальное образование происходит в комнате №240 в Здании №26, за консолью Tixo. Через много лет он назовет себя и остальных «элитой».В частности он вспоминал: «Другие люди занимались изучением других вещей и проводили массу своего времени в четырехэтажных научных корпусах, проводя плохо пахнущие химические опыты, или работали в физических лабораториях, обстреливая частицами мишени. Но вне зависимости, почему они это делали — они это делали. А мы просто не обращали никакого внимания на то, чем занимались эти люди, потому что мы не испытывали к этому ни малейшего интереса. Они обучались тому, чему они обучались, а мы обучались тому, чему мы обучались. И то, что многое из этого не присутствовало в официально одобренном учебном плане, вообще говоря, было не очень-то и существенно для нас».
   Хакеры приходили ночью. Это был единственный способ извлечь максимум преимущества из критических «внеплановых» интервалов машинного времени на TX-0. В течение дня, Сандерс обычно появлялся на одном или двух занятиях в Институте. Затем тратил некоторое время, выполняя «базовое обслуживание», то есть занимался вещами, подобными еде и посещению ванной комнаты. Затем в течение, некоторого времени, он встречался с Марж. Но, в конечном счете, он постепенно отфильтровывался к Зданию №26. Он просматривал некоторые из своих программ, которые были созданы предыдущей ночью и напечатаны на бумаге шириной в девять с половиной дюймов, используемой во Flexowriter-е. Он делал пометки и вносил изменения в листинг до такого состояния, который он считал следующей стадией работы. Возможно, после этого он пошел бы в Клуб Моделирования Железной дороги, где он дал бы свою программу кому— нибудь еще, а сам взял бы чужую, и проверил бы ее одновременно на хорошие идеи и на потенциальные ошибки. Затем он возвращался в Здание №26 в Клудж-Комнату рядом с TX-0, искал свободный Flexowriter, чтобы внести изменения в свой код. И все это время он постоянно проверял, не отменил ли кто-то свой одночасовой сеанс на машине, так как его собственный сеанс был расписан где-то на два или три часа ночи. Своего времени он дожидался или в Клудж— Комнате, или, убивая время, играл бы с каким-нибудь мостом, вернувшись ненадолго в Клуб Железной дороги, пока не приходила его пора.
   Сидя за консолью, лицом к металлическим стойкам, в которых находились транзисторы, где каждый транзистор, представлял собою место для хранения одного бита памяти, Сандерс настраивал Flexowriter, который приветствовал его словом «WALRUS (МОРЖ)». Это было нечто, что Самсон схакерил в честь поэмы Льюиса Кэрролла, в которой была строка: «Время пришло, и Морж сказал ...». Сандерс испытывал радость, доставая из ящика стола бумажную ленту, которая содержала программу ассемблера и заправляя ее в считыватель перфоленты. Теперь, когда компьютер был готов оттранслировать его программу, он брал ленту из Flexowriter-а, над которой он только что закончил работу и загружал с нее код на компьютер. После чего он наблюдал за долгим перемигиванием огней на панели, по мере того как компьютер переключался с «источника» (символический язык ассемблера) на «объектный» (двоичный) код, а получившийся результат компьютер пробивал на другой бумажной ленте. Так как на этой ленте был пробит объектный код, который TX-0 понимал, то Самсон загружал ее опять в компьютер, надеясь, что программа будет работать так, как надо.
   Весьма вероятно, что в этот момент за его спиной толпилось несколько товарищей— хакеров, которые смеялись, шутили и пили Кока-Колу, заедая это все какой-нибудь «мусорной едой», которую они достали из торгового автомата, стоявшего на нижнем этаже. Сандерс предпочитал лимонное желе нарезаное клиньями, которое остальные называли «лимонной замазкой». Но в четыре часа утра, на вкус хорошим являлось абсолютно все. Они все наблюдали, как выполняется программа, как мерцают огни, слушали, как пищит спикер, жужжащий высоким или низким тоном в зависимости от того, что было в Бите 14 сумматора, и первое что, он увидел на CRT-дисплее после того, как программа была оттранслирована и запущена — зависание программы. После этого он лез в ящик за лентой с отладчиком FLIT и загружал его в компьютер. Теперь компьютер превратился в отладочную машину, и он снова загружал в него свою программу. Сейчас можно было попробовать выяснить, что и где пошло не так, как надо, и, если он был удачлив, то он это выяснял, после чего немедленно вносил изменения, вводя команды, пощелкав некоторыми из выключателей на пульте в нужном порядке, или набивал на Flexowriter-е новый код. После того, как все это запускалось и работало правильно, результат всегда приносил невероятное удовлетворение — когда вся эта комната, полная транзисторов, проводов, металла и электричества, сливалась воедино, для того чтобы создать точный результат того, что он придумал. Завершив это, он переходил к следующему шагу. Когда его время заканчивалось, и его место занимал кто-нибудь другой, у которого также чесались руки в предвкушении работы, он был готов провести несколько следующих часов, пытаясь понять, в каком месте произвошла ошибка.
   Сам по себе пиковый час был чрезвычайно интенсивен, но в течение многих часов до того, и даже спустя несколько часов после этого, хакер достигал состояния истинной концентрации. Когда вы программируете компьютер, то вы должны знать, как все эти тысячи битов информации изменяются при переходе от одной инструкции к другой, и быть в состоянии предсказывать и обнаруживать эффекты всего этого движения. Когда вся эта информация собирается и соединяется воедино в вашей голове, то это похоже на слияние вашего мозга с самим компьютером. Иногда требовались часы, чтобы дойти до точки, где в ваших мыслях начинала складываться полная картина. И когда вы доходили до этой точки, то было бы непростительной глупостью, потратить впустую то, что вы так старательно пытались поддерживать во время марафонских бросков, попеременно работая на компьютере или детально изучая код, который вы написали на одном из автономных Flexowriter-ов в Клудж Комнате. Вы бы наверняка постарались сохранить это состояние концентрации «перенеся» его на следующий день.
   Эта модель мировоззрения неминуемо распространилась и на те немногочисленные островки бытия, которые у хакеров находились за пределами компьютерных вычислений. Контингент «ножа и кисти» в TMRC был весьма недоволен проникновением тиксомании в клуб: они считали ее троянским конем и переносом сферы деятельности клуба с моделирования железной дороги на вычислительную технику. И если бы вы присутствовали на одном из собраний клуба, проводимых каждый вторник в 17.15, то вы могли бы видеть странную картину: хакеры использовали каждый возможный поворот процедуры ведения собрания, чтобы сделать его столь же замысловатым, как и программы, которые они хакерили на TX-0. Предложения вносились только для того, чтобы делать другие предложения, чтобы, в свою очередь, опять делать предложения, возражения произносились не к месту, как будто повестка собрания содержала слишком много компьютерных ошибок. Примечание в протоколе встречи от 24 ноября, 1959 года, гласило: " мы осуждаем некоторых наших членов, которые могли бы принести клубу больше пользы, если бы они больше занимались СиП и меньше читали Правила Распорядка Роберта (Robert's Rules Of Order). " Самсон доставал клуб больше всех, и однажды, один из рассердившихся членов TMRC сделал предложение «купить пробку для затыкания словесного поноса Самсона.»
   Хак процедуры ведения собрания был отдельно взятым явлением, но логическая структура мышления, требуемая для программирования, распространялась и на другие события в этой жизни. Вы могли задать хакеру вопрос и почувствовать, как его умственный сумматор обрабатывает биты информации, пока он не выдавал точный ответ.
   Марж Сандерс каждую субботу ездила утром к магазину Safeway на своем Фольксвагене, и после своего возвращения спрашивала своего мужа "Не хотел бы он помочь ей занести ей то, что она купила в бакалее? " На что Боб Сандерс отвечал «Нет». Ошеломленная, Марж затащила продукты самостоятельно. После того как, то же самое произошло несколько раз, она взорвалась, и, разбрасывая проклятия в его адрес, потребовала от него ответа, почему он ответил «нет» на ее вопрос.
   «Ты задала глупый вопрос" сказал он, —" Конечно, я не хочупомогать тебе, заносить продукты. Но если бы ты просто попросила меня принести их, то это было бы совсем другое дело».
   Это было так, как будто Марж загрузила программу в TX-0, и программа, как всегда делают программы, когда синтаксис неверен, вылетела бы с ошибкой. И только после того, как она выполнила «отладку» своего вопроса, Боб Сандерс позволил ему успешно выполняться на своем собственном ментальном компьютере.

2. Этика Хакеров

   Вокруг TX-0 выкристаллизовалось нечто новое. Это был новый жизненный путь — с новой философией, собственной этикой и своей мечтой.
   Не было ни одного предрассветного часа, когда хакеры TX-0 не отдавали бы свои силы и способности машине, с преданностью редко отмечаемой за пределами монастырей. Они были авангардом этого выдающегося симбиоза между человеком и компьютером. С пылом молодых изготовителей хот-родов (рекордных автомобилей, переделанных из серийных), зацикленных на умощнении двигателей, хакеры получали желаемое из своего уникального окружения. Несмотря на то, что началось формирование элементов культуры и накопление легенд, (а их мастерство в программировании начало превосходить любой ранее отмеченный уровень), дюжина или около того хакеров все еще отказывалась признавать, что их маленькое сообщество, объединившееся вокруг TX-0, медленно и незаметно начало пронизываться грузом общих идей, убеждений и нравов.
   Принципы этой революционной Этики Хакеров, как правило, не обсуждались и не дискутировались — обычно с ними тихо соглашались. Не выпускалось никаких манифестов, и миссионеры не обращали никого в свою веру. Это обращение делал за них компьютер, и тот, кто следовал Хакерской Этике, был преданы ей, так же как Самсон, Сандерс, и Коток, чьи жизни до МТИ, казалось, были просто прелюдией до того момента, когда они достигли самовыражения за пультом TX-0. Позднее, там появятся хакеры, которые будут следовать неявной Этике и относиться к ней еще более серьезно, чем хакеры TX-0. Это будут легендарные Гринблатт и Госпер, но окончательно принципы хакерства сформируются еще только через несколько лет.
   Тем не менее, уже в дни TX-0 были заложены основы этой платформы.
   Вот она, Этика Хакера:
   Доступ к компьютерам и всему, что может дать вам знания об устройстве мира, должен быть полным и неограниченным. Всегда следуйте Практическому Императиву!
   Хакеры полагали, что хорошие знания о системах и окружающем мире могут быть получены лишь путем разбирания систем на части. После чего следует понаблюдать, как они работают, а затем использовать эти знания, чтобы создать новые и еще более интересные вещи. Они отрицали любые физические барьеры, людей или законы, которые пытались помешать им в этом.
   В особенности это было справедливо в том случае, если хакер хочет отремонтировать то, что, с его точки зрения, сломано или нуждается в усовершенствовании. Несовершенные системы приводили хакеров в неистовство, так как их основной инстинкт заключался в их отладке. Кстати, это является одной из причин, почему хакеры обычно испытывают крайне неприятные чувства при вождении автомобилей. Система беспорядочно запрограммированных красных огней светофоров и странно размещенных односторонних полос движения вызывает в них чертовское ощущение ненужности всего этого, поэтому у них часто появляется дикое желание переставить все знаки, открыть коробки управления светофорами... и полностью перепроектировать всю схему движения.
   В совершенном мире хакеров, любой, кто достаточно смел[11] чтобы добраться до коробки управления светофором и унести ее с собой, а затем исправить ее для того, чтобы она начала работать лучше; должен это сделать и у него должна быть возможность это сделать. С точки зрения хакеров, правила, которые запрещают вам решать вопросы таким путем, слишком смешны, чтобы вообще вести речь о каком-либо их соблюдении. В свое время, именно такая позиция помогла Клубу Моделирования Железной дороги встать на ноги. Это был крайне неофициальный набор принципов, иногда называемый Комитетом по Полуночной Реквизиции. Когда TMRC нуждался в наборе диодов, или дополнительных реле, чтобы придать Системе некоторые новые свойства, несколько людей из группы Сигналов и Питания ожидали наступления темноты и шли туда, где все это было. Ни один из хакеров, которые, как правило, были скрупулезно честны в других вопросах, не считали это за «кражу». Вот такая преднамеренная слепота.