Хакеры: Герои компьютерной революции
Шрифт:
Ходу пьесы было суждено поменяться уже через несколько актов. Клудж Комната, в которой работала PDP-1 под управлением системы с разделением времени, которую Джек Деннис писал в течение года, все еще пользовалась популярностью при необходимости ночного хакинга, и в особенности для игры в «Космические войны». Но истинные хакеры все больше и больше предпочитали иметь дело с компьютером, работавшим в составе Project MAC. Он располагался среди других машин, на ярко освещенном и плохо обставленном девятом этаже ТехСквера, где избежать непрерывного гула от работавших компьютерных кондиционеров можно было, только нырнув в один из нескольких крошечных офисов. Здесь же находился клуб TMRC, со своей никогда не иссякающей машиной, полной Кока-Колы, машиной по размену денег, созданной в свое время Сандерсом. По соседству с клубом находилась Инструментальная Комната, где всю ночь заседали хакеры, споря о том, что для непосвященных выглядело сложно понимаемыми и загадочными вещами.
Эти споры были движущей жизненной силой хакерского сообщества.
И у Госпера и у Гринблатта были свои сильные доводы в пользу именно своего видения проблемы, но обычно Гринблатт быстрее уставал от «этих разъедающих сознание человеческих интерфейсов» и удалялся для того, чтобы действительно реализовать что-нибудь, элегантное или не очень. По его мнению, вещи надо было создавать, и если их никто не будет хакерить, то тогда это сделает он. Он будет сидеть с карандашом и бумагой, или иногда за консолью PDP-1 и пытаться родить в муках свой код. Программы, которые писал Гринблатт, были очень устойчивы в работе, что также означало, что и принципы, которыми он пользовался, также были весьма твердыми и устойчивыми. В его программах были встроены различные обработчики, которые предотвращали вылет целой программы из-за одной единственной ошибки. Время от времени Гринблатт полностью погружался в процесс тщательной отладки своей программы. Госпер считал что Гринблатт, больше чем кто-либо, очень любит находить и устранять ошибки, и он иногда подозревал, что тот специально пишет глюкавый код того, чтобы потом его можно было спокойно пофиксить.
Госпер предпочитал публичный стиль хакинга. Ему нравилось работать при стечении народа, и часто начинающие хакеры подтаскивали стулья и садились за его спиной, для того чтобы можно было смотреть на консоль, на которой он создавал свои искусные хаки, и которые весьма часто содержали небольшие, но интересные математические фокусы. С дисплейными хаками он делал практически все, что было возможно, применяя самые неожиданные алгоритмы, вызывавшие непредсказуемые серии пиротехнических эффектов на CRT. Госпер вел себя как экскурсовод, объясняя все, что он делал по мере своего продвижения, иногда подчеркивая, что даже клавиатурные ошибки могут представлять собой интересный численный феномен. Он непрестанно удивлялся тому, как компьютер возвращал назад что-нибудь неожиданное. Он воспринимал все, что выдавал компьютер с бесконечным уважением. Иногда выглядящее случайным событие могло отвлечь его в сторону удивительным проявлением иррациональных корней квадратного уравнения или трансцендентной функции. Некоторые колдовские манипуляции над процедурами в программе Госпера могли со временем могли превратиться в ученые записки, подобные вот этой, начинавшейся такими словами:
«Известно что, из-за слабой изученности, непрерывные дроби используются достаточно редко. Я предлагаю нижеследующую демонстрацию относительных преимуществ использования непрерывных дробей в сравнении с другими численными представлениями.»
Споры в Инструментальной Комнате перестали быть просто тусовками. Здесь часто бывал Коток, и на этих собраниях принимались весьма важные решения, касавшиеся компьютера, который он разрабатывал для DEC. Этой новой машиной была PDP-6. Еще на стадии своей разработки PDP-6 рассматривалась в TMRC как абсолютно Правильная Вещь. Коток иногда подвозил Госпера домой в Нью-Джерси, во время каникул или праздников, разговаривая за рулем о том, что компьютер будет иметь целых шестнадцать независимых регистров. (Регистр (аккумулятор) — это место, в котором компьютер производит вычисления. Шестнадцать подобных регистров давали машине не виданную ранее гибкость). У Госпера перехватывало дыхание: Он думал: «Это будет величайший компьютер в мировой истории!».
DEC полностью завершил работы над PDP-6 и передал первый прототип в Project MAC. Все пришли на нее посмотреть. И хотя по всем признакам он выглядел как компьютер для коммерческих пользователей, в своей основе это все-таки была хакерская машина. И Коток, и его шеф — Гордон Белл, постоянно держали в уме свои дни на TX-0, а потому старались в PDP-6 реализовать все то, что их связывало по рукам и ногам на TX-0. Кроме того, Коток внимательно слушал все, что говорили ребята из TMRC, а в особенности он прислушивался к Питеру Самсону, который предложил использовать 16 регистров. В наборе команд у PDP-6 было все что нужно, общая архитектура машины тоже выглядела очень хорошо. Доступ до этих 16 регистров производился тремя различными способами, которые можно было между собой комбинировать, что позволяло много сделать при помощи всего одной команды. В PDP-6 был также реализован «стек», делавший возможным совмещение подпрограммы, программы и кода. Для хакеров, знакомство с PDP-6 и ее восхитительным и прекрасным набором команд означало, что отныне они имеют весьма мощный словарь, которым теперь можно выражать тонкие оттенки настроений, для которых ранее использовались грубые и неуклюжие слова.
Минский усадил хакеров за написание нового системного программного обеспечения для PDP-6, прекрасной машины цвета морской волны, с тремя большими стойками оборудования, более рационально организованной управляющей панелью, по сравнению с «Единицей», с рядами блестящих тумблеров и мерцающей матрицей огоньков. Вскоре они проникли в психологию этой новой машины также глубоко, как это было на PDP-1. Но на «шестерке» можно было идти еще дальше. Однажды хакеры игрались в Инструментальной Комнате в TMRC с процедурой печати десятичных чисел, небольшой программой, которая позволяла компьютеру печатать арабские цифры. Кто-то предложил использовать для этой цели новые, так бросающиеся в глаза, команды PDP-6, те самые, которые использовали стек. Ранее эти команды в своем коде никто не использовал. По мере того как программа, после использования инструкции PUSH-J начала печатать на экране десятичные цифры, то оказалось, что к всеобщему удивлению, вся процедура печати десятичных чисел, занимавшая обычно не менее страницы кода, поместилась в последовательность из шести инструкций длиной. После этого, весь TMRC, единодушно, согласился с тем, что команда PUSH-J, несомненно, является Правильной Вещью, которая стоила того, чтобы ее реализовали в PDP-6.
Разговоры и споры из Инструментальной Комнаты часто переносились на обед. Предпочтительной кухней практически всегда оказывалась китайская кухня. Она была дешевой, изобильной и хорошо доступной ночью. (Вторым, более худшим вариантом, была находившаяся неподалеку тошниловка под названием F&T Diner, располагавшаяся в старом железнодорожном вагоне, отделанном красно-коричневыми панелями. Хакеры прозвали ее «Красная Смерть»). В большинство субботних вечеров, а иногда и посреди недели, обычно поздно вечером, после десяти часов, группа хакеров направлялась куда-нибудь в бостонский Чайнатаун, иногда на синем Chevy 1954 года с откидным верхом, принадлежавшем Гринблатту.
Китайская кухня также была системой, и хакерское любопытство было применено к этой системе с тем же усердием, с каким оно применялось к новому компилятору LISP. Самсон был ее ревностным поклонником, начиная с его первого знакомства с ней в TMRC, и периодических посещений ресторанчика «Joy's Pong», что на центральной площади университетского городка. В начале шестидесятых, он даже выучил достаточное количество китайских иероглифов, для того чтобы самостоятельно разбираться в меню и заказывать эти таинственные блюда. Госпер относился к этой кухне еще энергичней; он рыскал по всему Чайнатауну в поисках ресторана, работавшего после полуночи, и однажды он нашел нечто подходящее — маленький ресторан, размещавшийся в небольшом подвальчике, которым владела семья китайцев. На первый взгляд, все что там готовилось, было ничем не примечательной едой, но он заметил, что некоторые китайцы из числа посетителей едят блюда, выглядящие весьма странно и необычно. Он решил привести сюда Самсона.
Они вернулись в ресторанчик с охапкой китайских словарей под мышкой и потребовали меню. Владелец ресторана, мистер Вонг, неохотно подчинился, но все-таки принес желанный список, после чего Госпер, Самсон и остальные начали его разглядывать, как если бы это был набор команд для нового компьютера. Самсон сделал перевод, который оказался разоблачительным; то, что называлось в англоязычном меню «Мясо с томатами», имело на самом деле название «Свиноговядина в варварском баклажане». «Вонтон» [23] имел китайский эквивалент в виде «Глоток облаков». В системе открывалось наличие невероятных вещей! Посовещавшись, они решили заказать самые интересные с их точки зрения блюда: «Крыло Гибискуса? Давай это закажем, заодно и посмотрим что это такое!» Они позвали мистера Вонга, и сделали заказ, после чего он начал причитать по-китайски, категорически не одобряя их выбор. Было похоже, что он не очень— то хочет готовить американцам китайскую еду, полагая что они не в состоянии будут ее есть. Мистер Вонг принимал их за обычных американцев, но именно эти его клиенты были исследователями, жившими внутри компьютера, для того чтобы рассказывать машине сказку (сказка была на языке ассемблера). Мистер Вонг, в конечном счете, сдался. Результатом тому была лучшая китайская кухня, которую ни один хакер до этого не пробовал.
23
кармашки из теста, подаваемые с супом или поджаренные — пр.перев.