Хакеры: Герои компьютерной революции - Леви Стивен. Страница 14
Коток не один готовился к пришествию PDP-1. Как набор вещей для будущего малыша, рождения которого ожидают родители, остальные хакеры усердно пряли программные «пинетки» и «распашонки» для нового младенца, готовящегося войти в семью. Приход благородного наследника компьютерного трона ожидался в конце сентября.
Наконец этот радостный момент наступил. Хакеры помогли внести PDP-1 в ее новый дом, в Клудж Комнату, которая была рядом с комнатой, в которой стояла TX-0. Новая машина была прекрасна: сидя за консолью, которая была на половину короче, чем консоль Tixo, вы могли бы видеть небольшую панель с переключателями и лампочками. Рядом с ней находился дисплей, в ярко-синем, шестиугольном корпусе, с отделкой под стиль «деко». За ним стояли высокие шкафы, размером с холодильник и примерно в три высоты в глубину, заполненные проводами, платами, реле и транзисторами, доступ к которым был, естественно, запрещен. Здесь же стоял Flexowriter, для вывода данных из системы (пользователи жаловались на невероятный шум, который он производил, и, в итоге, его заменили устройством вывода фирмы IBM, которое работало существенно тише), а также высокоскоростной считыватель перфолент, для ввода информации в машину. По всем признакам, это была определенно «тяжелая» игрушка.
Джеку Деннису нравилось некоторое программное обеспечение, написанное фирмой BBN для прототипа PDP-1, а в особенности ассемблер. Котока, однако, при виде этого ассемблера начинало тошнить. Ассемблер работал в режиме, абсолютно не соответствующем его стилю, в котором он привык все делать «на лету». Так что он, и еще несколько его товарищей сказали Деннису, что им хотелось бы написать свой собственный вариант. «Это плохая идея», — сказал Деннис, который хотел, чтобы ассемблер был запущен на системе как можно скорее. Он понимал, что у хакеров уйдет на это несколько недель.
Коток и остальные были непреклонны: этой программой им предстояло пользоваться каждый день, и она должна быть совершенна. (Конечно, ни одна программа не была совершенна, но это их не останавливало.)
«Точно говорю тебе», — сказал Коток, гениальный двадцатилетний программист, с такой же полуулыбкой и такой же полнолицый как сам Будда, в адрес настроенного скептически, но благожелательного Джека Денниса: «Если мы напишем эту программу за выходные, и она будет работать, оплатишь ли ты нам время?».
Стоимость подобного объема работы, в соответствии с действующей сеткой оплаты, составляла чуть меньше пяти сотен долларов. «Это более или менее справедливо», — сказал Деннис, и они ударили по рукам.
Коток, Самсон, Сандерс, Вагнер и еще два человека начали работу вечером в пятницу. Они знали, что работать следует над ассемблером TX-0, оригинал которого был написан Деннисом, и который был поправлен, среди прочих, Питером Дейчем. Они не стали трогать ввод и вывод, и они не хотели переделывать алгоритмы. Вместо этого, каждый хакер брал кусок кода TX— 0 и конвертировал его в код PDP-1. Спать они не собирались. Шесть хакеров за выходные наработали 250 человекочасов, создавая код, отлаживая его, и уничтожая попутно коробки с китайской едой и запивая их большим количеством Кока-Колы, приносимой из клубной комнаты TMRC. Это была самая настоящая оргия программирования. Когда Джек Деннис пришел в понедельник, то он поразился, увидев загруженный на PDP-1 ассемблер, который в качестве демонстрации ассемблировал свой собственный код в бинарный.
Под сильным влиянием хакерства, хакеры TX-0, нет, теперь уже хакеры PDP-1, за выходные создали программу, на которую компьютерная индустрия потратила бы недели, а то и месяцы. Это был проект, к которому компьютерная индустрия не приступила бы без длительного и скучного процесса постановки задачи, исследований, многочисленных рабочих встреч и исполнительской нерешительности, и весьма вероятно — с существенными компромиссами на всем пути разработки. Весьма вероятно, что оно вообще никогда не было бы завершено. В то же время данный конкретный проект был полным триумфом Этики Хакеров.
К новой машине хакерам был предоставлен еще более свободный доступ, чем они имели на TX-0, и большинство из них переключилось на работы в Клудж Комнате. Несколько упертых товарищей все еще сидели за Tixo, что давало хакерам PDP-1 почву для насмешек в их адрес. Чтобы еще более раздразнить их, хакеры подготовили небольшое представление на основе мнемоник системы команд новой машины, которое включало в себя такие экзотические команды как DAC (Deposit Accumulator), LIO (Load Input-Output), DPY (Deploy) и JMP. Группа хакеров PDP-1 выстраивалась в шеренгу и начинала хором орать:
Когда они выкрикивали последнее слово «JUMP» они все прыгали вправо. Отсутствие хореографии хорошо компенсировалось энтузиазмом: они были полностью очарованы красотой машины и привлекательностью компьютеров вообще.
Тот же энтузиазм наблюдался в ставшем еще более спонтанным программировании, происходившим на PDP-1, начиная от серьезных системных программ, такими, например, которые управляли простыми роботизированными манипуляторами, до весьма эксцентричных хаков. В основе одной из последних выходок лежало соединение TX-0 и PDP-1 коммуникационным кабелем, по которому могла передаваться побитно информация между двумя машинами. По рассказу Самсона, хакеры позвали многоуважаемого основоположника искусственного интеллекта Джона Маккарти и усадили его за консолью PDP-1: «Профессор, посмотрите, пожалуйста, на нашу новую программу для игры в шахматы!». Они позвали еще одного преподавателя и посадили его за консоль TX-0. «Вот программа для игры в шахматы. Наберите ваш ход». После того как Маккарти сделал свой первый ход, и он отпечатался на Flexowriter-e рядом с TX-0, они сказали другому преподавателю, что он только что увидел, как TX-0 сделала ответный ход. «Теперь ваш ход!». После нескольких ходов, Маккарти заметил, что компьютер стал выдавать ходы по букве за раз, иногда с подозрительной паузой между ними. В конце концов, Маккарти заметил кабель и пошел по нему, пока не столкнулся со своим оппонентом из плоти и крови. Хакеры покатились со смеху. Причем, все это случилось незадолго до того, как они начали, уже без всяких шуток, устраивать турниры шахматных программ между компьютерами.
PDP-1 дала отмашку хакерам на программирование без всяких лимитов. Как-то само собой получилось, что Самсон взялся за хакинг таких вещей как календарь Майя, который работал на основе двадцатиричной системы исчисления, и сверх того, он работал над версией своей музыкальной программы, написанной еще для TX-0, которая реализовывала преимущества расширенных звуковых возможностей на PDP-1. Он переписал для нее фугу Баха для трех голосов и звучащая компьютерная музыка начала вырываться за пределы старой доброй Клудж Комнаты. Инженеры из DEC узнали про программу Самсона и попросили ее довести до ума на PDP-1. В конце концов, на ней стало можно вводить музыкальную партитуру, переводя ноты в буквы и цифры, а компьютер отвечал на это трехголосной органной сонатой. Еще одна группа хакеров закодировала таким же образом оперетты Джилберта и Салливана.
Самсон с гордостью представил этот музыкальный компилятор компании DEC, с тем, чтобы она распространяла его всем желающим. Группа хакеров, которая работала над новым ассемблером, считала точно также. Например, они свободно держали ленту с ассемблером в ящике стола, так что любой желающий мог иметь к ней доступ или мог попытаться ее улучшить — сократить программу на несколько команд или добавить в нее что-нибудь новое. Они испытали гордость, когда DEC попросила у них программу чтобы передать ее другим владельцам PDP-1. Вопрос о каких-то отчислениях никогда не вставал. Для Самсона и прочих, использование компьютера было таким удовольствием, что, при необходимости, они сами были бы согласны платить за доступ к нему. А то, что им дополнительно платили по-королевски, из расчета $1.60 в час было своеобразным бонусом. Что касается отчислений — разве программное обеспечение не является даром этому миру, который сам по себе является вознаграждением? Их основная идея заключалась в том, что компьютер должен стать более пригодным для пользователей, более удивительным, и настолько интересным, чтобы люди соблазнились бы поиграть с ним, исследовать его, и, в конце концов, начать хакерить программы с его помощью. Когда вы писали хорошую программу, то вы делали вклад в общество, а не штамповали очередную поделку.