Текст книги "Хакеры. Как молодые гики провернули компьютерную революцию и изменили мир раз и навсегда"
Автор книги: Стивен Леви
Жанр: Зарубежная деловая литература, Бизнес-Книги
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 4 (всего у книги 38 страниц) [доступный отрывок для чтения: 12 страниц]
Глава 3
Война в космосе
Летом 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‐й модели.
По сравнению с этой машиной PDP‐1 была землей обетованной для «Слизняка» Рассела. Доступнее, чем TX‐0, и без пакетной обработки! И хотя ее мощности не хватало для нормальной работы LISP, ее удивительные возможности стали предметом многочисленных обсуждений членов «Хайэмского института». Что особенно привлекало Рассела с друзьями, так это перспектива сложного взлома дисплея PDP‐1, который можно было бы реализовать на его ЭЛТ-мониторе. После продолжительного ночного совещания участники «Хайэмского института» пришли к заключению, что наиболее яркой демонстрацией этих возможностей PDP‐1 станет великолепная визуальная игра.
На TX‐0 было предпринято несколько попыток сделать нечто подобное. Одним из них был хак «Мышь в лабиринте» – пользователь сначала рисовал лабиринт с помощью светового пера, затем ставил на экране точку, обозначавшую мышь. Мышь, исследуя лабиринт, искала отметки в виде ломтиков сыра. В VIP-версии игры мышь искала бокалы мартини. Поиски прекращались в двух случаях – или у мыши кончалась энергия, или она слишком сильно пьянела. Но если пользователь щелкал переключателем и вновь запускал мышь в лабиринт, она, как опытный завсегдатай баров, следовала по уже проложенному маршруту от бокала к бокалу без единой задержки. Это было высшим достижением дисплейных хаков на TX‐0.
Дисплей PDP‐1 был более проще для программирования, чем экран TX‐0, поэтому на нем создавались более красивые дисплейные хаки. Наиболее впечатляющая работа принадлежит одному из двух гуру искусственного интеллекта в МТИ – Марвину Минскому (второй, конечно же, Маккарти). Минский был более общительным, чем его гениальный коллега, и более готовым к хакерской работе. Это был человек с большими идеями о будущем вычислительной техники. Он действительно верил, что не за горами тот день, когда компьютеры научатся мыслить самостоятельно. Он часто вызывал бурю негодования, публично называя человеческий мозг «мясной машиной» (meat machine), подразумевая, что когда-нибудь появится машинный разум, не имеющий биологической основы. Минский, у которого одинаково блестели глаза за толстыми стеклами очков и его лысая голова, в вечном свитере с высоким воротником, делал свои громкие заявления в присущей ему сухой манере. Он умудрялся одновременно и спровоцировать слушателей своими словами, и посеять сомнения в их головах, намекая, что все это лишь выдумки космического масштаба: «Конечно, машины не способны думать, ха-ха». Но Минский умел заглянуть вглубь вещей. Хакеры PDP‐1 часто посещали его лекции по искусственному интеллекту AI 6.544, потому что он давал и отличные теоретические знания, и практические навыки. В начале 1960‐х годов Минский приступил к созданию первой в мире лаборатории искусственного интеллекта. Он понимал, что для реализации его идей ему понадобятся гении программирования в качестве помощников. Поэтому он поощрял хакерство во всех его видах.
В ряду интересных дисплейных хаков стоит отметить созданную Минским программу для PDP‐1 под названием «Алгоритм построения окружности» (Circle Algorithm). В основе его создания лежит случайная ошибка. Минский пытался ужать программу превращения прямых линий в кривые и спиральные, выбросив из нее лишние строки кода, и случайно ввел символ Y со штрихом вместо Y. И вместо ожидаемых спиралей на экране был нарисован круг. Это неожиданное открытие, имеющее сложное математическое описание. Продолжая взламывать программы, Минский впоследствии использовал найденный алгоритм в качестве основы для создания более сложной программы моделирования фигур, в которой три частицы, взаимодействуя друг с другом, создавали удивительные узоры на дисплее. Это было похоже на розы, лепестки которых завораживающе менялись. «Силы, приводившие частицы в движение, были внеземными, – вспоминал Боб Вагнер позднее. – Мы симулировали нарушение закона природы!» Минский назвал эту хакерскую программу Tri-Pos (трехпозиционный дисплей). Но хакеры любовно именовали ее «Минскитроном».
Все это вдохновляло «Слизняка» Рассела. Несколько месяцев назад на заседаниях «Хайэмского института» он обсудил с друзьями критерии невероятного дисплейного хака. Они были поклонниками низкосортной научной фантастики, особенно романов про космос, написанных Э. Э. «Доком» Смитом. Поэтому они решили, что неплохо бы с помощью PDP‐1 объединить фильм категории B и игрушку стоимостью 120 тыс. долларов. В результате должна родиться игра, в которой два человека будут противостоять друг другу в открытом космосе. В «Хайэмском институте» немедленно была организована Группа исследования космических войн. По результатам работы Группа вынесла вердикт, который гласил, что автором этого знаменательного хака должен стать «Слизняк» Рассел.
Но спустя несколько месяцев Рассел даже не начинал работать над хаком. Все это время он наблюдал, как «Минскитрон» создает узоры на дисплее, щелкал переключателями, чтобы увидеть рождение новых узоров или когда программа зависала. Он был очарован программой, но одновременно считал ее слишком абстрактной и математической. «Все это ерунда», – к такому выводу он пришел по прошествии времени. Всего лишь тридцать две команды или около того, которые в реальности ничего не делают.
«Слизняк» Рассел считал, что его игра в космические войны должна что-то делать. Если попробовать описать это в доморощенных научно-фантастических терминах, то его программа должна была превзойти все предыдущие попытки взломать дисплей. В компьютерах его привлекало то безграничное ощущение власти, которое питала возможность управлять этими чертовыми машинами. Вы давали компьютеру приказ, он начинал упрямиться и сопротивляться, но все равно выдавал тот результат, которого вы добивались. Конечно, этот процесс лишь подчеркивал ваши ограниченные возможности. И чаще всего выполнение вашего приказа сначала приводило к неприятным неожиданным результатам. Но в конце концов, после всех мучений и затруднений, машина выполняла в точности то, что вы хотели. И чувство, испытываемое вами при этом, ни с чем нельзя сравнить. Потребность переживать это чувство снова и снова делала из вас наркомана. «Слизняк» Рассел тоже пристрастился, как и остальные хакеры, просиживающие ночи в комнате Клуджа. Он догадывался, что всех их привлекает ощущение безграничной силы и власти.
Нечто подобное, но менее интенсивное «Слизняк» испытывал, погружаясь в чтение романов «Дока» Смита. В воображении он покорял космос на белом космическом корабле, и в итоге задался вопросом, можно ли пережить подобное, сидя за консолью управления PDP‐1. Это должны были быть те космические войны, которыми он грезил. И он поклялся, что напишет подобную программу.
Но позже.
«Слизняку» не хватало целеустремленности других хакеров. Иногда ему требовался толчок. Однажды он совершил ошибку, открыв свой большой рот и обмолвившись о программе, которую собирался написать, и хакеры PDP‐1, страстно желавшие пополнить свою коллекцию лент с программами в ящике стола, стали его подгонять. Бормоча под нос извинения, он говорил, что обязательно сделает это, однако никак не мог придумать, как написать сложные процедуры расчета синусов и косинусов, необходимые для построения графики движения кораблей.
Коток знал, как легко преодолеть это препятствие. На тот момент у него сложились неплохие отношения с инженерами компании DEC, офис которой располагался в нескольких милях от Мейнарда. Внутри фирмы царили неформальные отношения. Сотрудники компании не считали хакеров МТИ безобразными и легкомысленными захватчиками, в отличие от инженеров IBM. Например, однажды, когда сломалось какое-то оборудование, Коток позвонил в Мейнард и сообщил об этом сотрудникам DEC. В ответ он услышал: «Приезжайте за заменой». Пока Коток добрался до Мейнарда, наступило пять вечера, и офис компании был уже закрыт. Но ночной сторож позволил ему войти, показал стол инженера, с которым он разговаривал, и разрешил покопаться в нем, чтобы найти нужную деталь. Такие неформальные отношения и привлекают хакеров. Поэтому у Котока не возникло сомнений, что надо отправляться за помощью в Мейнард. Он был уверен, что там кто-нибудь наверняка имел готовое решение для расчета синусов и косинусов на PDP‐1. И действительно, у одного из сотрудников фирмы DEC такая программа была, и Коток совершенно бесплатно получил ее, чтобы вернуться с добычей в корпус № 26 МТИ.
«Держи, Рассел, – сказал Коток, протягивая ему ленту с программой. – Что ты теперь скажешь?»
Теперь Расселу нечем было оправдываться, поэтому он посвятил все свободное время написанию этой фантастической игры для PDP‐1, подобных которой никто раньше не видел. Вскоре написание игры захватило его настолько, что он тратил на нее все время, включая рабочие часы. Он начал работать в начале декабря. К Рождеству работа не была закончена. На календаре начался новый 1962 год, а Рассел все еще писал программу. К этому времени он научился создавать на экране объект, которым можно было управлять, нажимая клавиши переключателей на консоли. Нажатие переключателя приводило к ускорению или изменению движения точки на дисплее.
Затем он приступил к работе над двумя космическими кораблями: оба получились классическими ракетами из мультфильмов – с заостренными носами и привычными соплами внизу. Чтобы отличить их друг от друга, он сделал одну ракету более округлой и вытянутой, как сигара, а вторую – узкой, как трубка. Рассел использовал процедуры расчета синуса и косинуса, чтобы выяснить, как управлять движением кораблей в разных направлениях. Затем он написал подпрограмму для стрельбы «торпедой» (точкой) из носовой части корабля с помощью переключателя. Компьютер сканировал положение торпеды и вражеского корабля, и если они оба занимали одну и ту же позицию, программа вызывала процедуру, которая заменяла пострадавший корабль случайным массивом точек, представляющих собой взрыв. Этот процесс назывался «обнаружение столкновений».
Все это было значительным концептуальным шагом по направлению к более сложному программированию в реальном времени, когда события, происходящие в компьютере, совпадали с реальной временной шкалой. Другими словами, Расселу удалось эмулировать интерактивный стиль отладки, которому поклонялись хакеры, – стиль, когда легко можно определить, на выполнении какой инструкции программа остановилась. А после с помощью переключателей или флексографа перейти к другой инструкции, причем все это параллельно с отладчиком DDT. Игра Spacewar! будучи компьютерной программой, отлично продемонстрировала, как именно они работают. Когда что-то не получается, вы меняете вводные данные и исправляете ошибку, а затем добавляете новые команды в программу. Те же принципы прослеживаются в стрельбе по мишеням, шахматной игре или курсовой работе МТИ. Поэтому компьютерное программирование невозможно назвать просто техническим занятием. Это комплексный подход к решению жизненных проблем.
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?