Хакеры. Как молодые гики провернули компьютерную революцию и изменили мир раз и навсегда
Шрифт:
Составление схемы телефонной сети было занятием, отвечающим всем интересам хакеров, чье желание исследовать работу системы перевешивает страх быть пойманным.
Однако, как бы ни увлекала Котока телефонная эзотерика, перспектива работать с машиной PDP-1 казалась более заманчивой. Возможно, потому, что он чувствовал: никакой телефонный хакинг с этим не сравнится. Люди, спроектировавшие и поставляющие новый компьютер, кардинально отличались от известных ранее компаний. Это была совершенно новая фирма. Она называлась Digital Equipment Corporation (DEC). Некоторые пользователи TX-0 знали, что первыми продуктами DEC были специальные интерфейсы для TX-0. Удивительно было то, что некоторые из основателей этой компании имели особенный взгляд на вычислительную технику, отличавшийся от традиционного взгляда, которого придерживалась компания IBM со своими машинами, работавшими в режиме пакетной обработки. Сотрудники 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) и высокоскоростной считыватель перфоленты – также для ввода информации. Судя по всему, это была серьезная игрушка.
Джеку Деннису нравилась часть программного
Однако Коток и остальные хакеры оказались непреклонны: ведь с ассемблером им предстояло много работы в будущем, им предстояло буквально жить с ним. А значит, программа должна была быть совершенной. Конечно, ни одна программа не может быть идеальной, но разве это кого-нибудь остановит?
«Вот что я тебе скажу, – говорил Коток, двадцатилетний гениальный хакер, своей упитанностью напоминающий Будду, скептически настроенному, но добродушному Джеку Деннису. – Если мы успеем написать рабочую программу всего лишь за выходные, оплатишь нам это рабочее время?»
В то время стоимость подобной работы составляла около пятисот долларов. «Это будет честной сделкой», – ответил Деннис, а Коток, Самсон, Сондерс, Вагнер и еще несколько человек начали работать над программой пятничным вечером в один из последних дней сентября. Они решили переписать ассемблер 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. Хакеры сообщили второму профессору, что тот стал свидетелем первого хода компьютера. «Теперь ваша очередь, профессор!» Спустя несколько ходов Маккарти заметил, что компьютер стал выводить ходы по одной букве за раз, иногда с подозрительной паузой между ними, прошел вдоль кабеля и нашел на другом его конце своего противника из плоти и крови. Хакеры покатились со смеху. Все это случилось незадолго до того, как они действительно создали программу для проведения турнира по шахматам между двумя компьютерами.