Изменить стиль страницы

В любом случае люди не должны платить за программное обеспечение. Информация должна быть свободной.

TMRC хакеры были далеко не единственными людьми у которых были планы в отношении PDP-1. В течение лета 1961 года был разработан тщательный план искусного хака, которому было предназначено послужить витриной того, что могло бы быть сделано при серьезном отношении к Хакерской Этике. Ареной дискуссий по этому вопросу было многоквартирное здание, стоявшее на Хайэм Стрит в Кембридже, и оригинальными носителями этой идеи были три скитавшихся хакера, которым было уже за двадцать, и которые шлялись по разным вычислительным центрам в течение многих лет. Двое из этой троицы жили в этом доме, так что в честь напыщенных заявлений, исходящих из расположенного поблизости Гарвардского Университета, троица насмешливо называла свой дом «Хайэмским Институтом».

Одним из «сотрудников» этого мнимого учреждения был Стив Рассел, которого по неизвестной причине называли Слаг (Слизняк). Он разговаривал как запыхавшийся бурундук. Это была манера, часто встречаемая среди хакеров, равно как и толстые очки, невысокий рост и фанатичная страсть к компьютерам, дурным фильмам и дешевым фантастическим романам. Все трое постоянных участников разговоров в мужской компании на Хайэм Стрит имели сходные интересы.

Рассел в течение долгого времени был «кули» (если использовать термины TMRC) «дяди Джона» Маккарти, который пытался спроектировать и реализовать высокоуровневый язык, достаточный для работ в области искусственного интеллекта. Он полагал, что им является LISP, который получил свое имя за используемый метод обработки списков (LISt Processing). При помощи простых, но мощных команд, LISP мог делать много вещей при помощи всего нескольких строк кода. Также, он мог выполнять сложные рекурсивные ссылки к самому себе, что позволяло программам, написанным на этом языке действительно «изучать» то, что происходило в процессе работы программы. В то время, проблема с LISP заключалась в том, что он требовал невероятное количество памяти на компьютере, работал очень медленно и генерировал очень большое количество дополнительного кода в процессе работы, так что ему требовалась своя собственная программа «сбора мусора» чтобы периодически очищать память компьютера.

Рассел помогал Дяде Джону писать интерпретатор LISP для неповоротливого Гиганта IBM 704. По его словам, это была «ужасная инженерная работа», в основном из-за утомительного режима пакетной обработки на модели 704.

По сравнению с этой машиной, PDP-1 для Слага Рассела была «землей обетованной», она была более доступна, чем TX-0, и работала без всякой пакетной обработки. Хотя ее мощности не хватало для нормальной работы LISP, она имела массу других соблазнительных свойств, некоторые из которых были предметом разговоров в Хайэмском Институте. В особенности Рассела и его друзей на PDP-1 заинтриговала перспектива «дисплейного хака», который можно было бы реализовать на ее CRT. После продолжительного ночного совещания, Хайэмский Институт всем персоналом в три человека вписал себя в расписание машинного времени, утвердившись во мнении о том, что наиболее эффективной демонстрацией волшебства компьютера будет великолепная визуальная игра.

На TX-0 уже предпринимались попытки сделать нечто подобное. Одним из таких хаков был «Лабиринт и Мышь». Пользователь сначала рисовал световым пером лабиринт, затем ставил отметку на экране, которая представляла собой мышь. Мышь, утыкаясь в стены, прокладывала путь по лабиринту в поисках других отметок на экране в форме ломтиков сыра. Существовала также «VIP версия» игры, в которой мышь искала бокалы с мартини. После того как она добиралась до бокала, она искала другой бокал, и так до тех пор, пока у нее не кончалась энергия, или, она не становилась слишком пьяной чтобы продолжать поиски. Когда вы щелкали переключателем, для того чтобы запустить мышь через лабиринт во второй раз, она «запоминала» предыдущий путь к бокалам и как опытный завсегдатай баров безошибочно неслась к спиртному. Вот до такой степени продвинулись дисплейные хаки на TX-0.

Дисплей PDP-1 был более легок в программировании, чем это было на TX-0, поэтому на ней существовали более красивые дисплейные хаки. Самый восхитительный был создан усилиями одного из двух гуру в области искусственного интеллекта в МТИ Марвином Минским (другим гуру, конечно, был Маккарти). Минский был более общителен, чем Маккарти, и более охотно переходил в хакерский режим работы. Он был человеком с очень большими идеями в области вычислительной техники и действительно верил в то, что придет день, и компьютеры будут уметь мыслить. Он часто вызывал большое оживление, публично называя человеческий мозг «мясной машиной» (meat machine), подразумевая, что когда-нибудь будет машинный разум, не имеющий биологической природы. Невысокого роста, с блеском глаз за толстыми стеклами очков, искрящейся лысиной, и в своем вечном свитере с воротником под горло, Минский излагал в своем обычном сухом стиле, одновременно пытаясь и максимально спровоцировать слушателей и дать намек, на то, что это все представляет собой глупость космического масштаба: «Конечно, машины не могут мыслить, хе-хе-хе…». Но Минский был человеком, который хорошо понимал происходящее, и хакеры PDP-1 часто сидели на его лекциях по курсу «Введение в ИИ 6.544», который он читал, потому что он был не только хорошим теоретиком, но и прекрасно разбирался в этой области. В начале 60-х годов Минский начал организацию того, что в дальнейшем превратилось в первую в мире лабораторию, занимавшуюся ИИ. Он знал, что для того чтобы сделать то, что он хочет, ему в качестве рабочей силы нужны гении в программировании, и поэтому он воспринимал хакерство в любом приемлемом виде.

Одним из вкладов Минского в растущее количество канонических хаков была дисплейная программа для PDP-1 под названием Алгоритм Построения Окружности (Circle Algoritm). Он был открыт в результате ошибки; во время попытки бамнуть несколько инструкций из короткой программы, которая превращала прямые линии в кривые и спирали. Минский случайно напечатал вместо символа «Y» символ «Y со штрихом»[19] и вместо того чтобы начать чертить, как ожидалось, тильдообразные незавершенные спирали, компьютер нарисовал окружность. Это было несколько неожиданное открытие, при дальнейшем исследовании которого родилось сложное математическое описание процесса. Хакеря программу дальше, Минский использовал алгоритм построения окружности как отправную точку для более сложной программы моделирования, в которой три частицы взаимодействовали друг с другом и оставляли удивительные завитки на экране, создавая нечто похожее на розы с переменным количеством листьев[20]. «Силы, приводившие частицы в движение были полностью неземными», —позднее вспоминал Боб Вагнер, — «Это была симуляция нарушения законов природы». Позднее Минский назвал этот хак «Три-Поз: Трехпозиционное Изображение», но хакеры любовно назвали его «Минскитроном».

Слаг Рассел этим был очень вдохновлен. На собраниях в Хайэмовском Институте несколько месяцев назад, он и его друзья обсудили критерии самого радикального дисплейного хака. Так как они все были фанами дешевой научной фантастики, особенно романов, где действие происходило в космосе и автором которых был Е.Е. «Док» Смит, то они решили, что PDP-1 будет весьма неплохим компьютером для объединения фильма категории "B" и игрушки стоимостью в $120,000. Результатом этого объединения должна быть игра, в которой два игрока могли бы биться друг с другом в открытом космосе. В Хайэмовском Институте была немедленно организована Группа Изучения Космических Военных Конфликтов, которая вынесла авторитетное решение о том, что Слаг Рассел должен быть автором этого исторического хака.

Прошло несколько месяцев, а Рассел еще и не думал приступать. Вместо этого он разглядывал картинки, рождаемые Минскитроном, и щелкал переключателями, когда программу начинало клинить. Поначалу он был восхищен ею, но вместе с тем продолжал считать, что этот хак является слишком абстрактным и математическим. Через некоторое время он сделал окончательный вывод: "Эта демка — полная фигня! Около тридцати двух или около того команд, которые в реальности ничегоне делают".

вернуться

19

видимо имелась ввиду первая производная, а программа представляла собой программное построение сплайнов — пр.перев.

вернуться

20

Скорее всего, имелась в виду задача моделирования взаимодействия трех тел — пр. перев.