Стивен Леви
ХАКЕРЫ:
ГЕРОИ КОМПЬЮТЕРНОЙ РЕВОЛЮЦИИ
От переводчика
Как-то незаметно получилось, что за последние годы достаточно большое количество значений слова «хакер»: «компьютерный гений—озорник-любитель-специалист-исследователь» постепенно сжалось до «компьютерного хулигана-преступника».
Давайте проведем небольшой тест. Какие ассоциации вызывает у вас слово «хакер?».
Если вы выбрали хотя бы один пункт, то можно только «порадоваться» за труды журналистов околокомпьютерных и не очень изданий во всем мире, а также голливудских режиссеров, прививших умам неискушенных сограждан именно такое видение мира.
Но, к счастью, так было не всегда. Эта книга позволяет вернуться к тем дням, когда все это еще только начиналось. К тем чистым и немного наивным ощущениям первоткрывателей, которым в руки попали удивительные игрушки, гигантские по размерам и стоимости.
Но главным было не это. Произошло открытие нового мира, удивительного в своей логике, где понятия не допускали двойных толкований. Только «да» и «нет»: «ноль» и «единица» — вот их фундамент. Мира, которым можно было бы управлять по своему желанию и который можно было перекраивать по своему усмотрению. Мир, в котором из небольшого набора элементарных вещей можно было бы строить сколь угодно сложные вещи. Мир, который возвращал вам чувства, которые вы в него вкладывали. Он давал торжество разума, испытывающего радость при виде того, как нечто выполняет действия в точности по тому плану, который вами описан. Удовольствие Повелителя этого маленького мира, при виде каждого «камешка» и «песчинки», созданного в нем вашими руками. Радость творца, которому открываются необъятные перспективы для совершенствования и улучшения дела рук своих. Восторг ученого, который за непонятными для непосвященных формулами видит движение мира вокруг. И ощущения человека, который в своем знании ЧУВСТВУЕТ силу. Ощущение Бога, если хотите, хотя Богом быть трудно.
Многое из того что было прочитано, заставило вспомнить собственные давно забытые ощущения и сравнить их с теми, что описаны автором. Та же сила желания, которую испытывал я мои друзья в стремлении попасть за терминал «Электроники-60» или «MERA100» советского или польского аналогов PDP-11, соответственно. Та же нелюбовь к серии ЕС, где к машине нельзя было подбраться ближе чем подпускал персонал. Та же радость, когда программа загруженная через считыватель перфолент, запускается и работает. Те же чувства когда наконец-то тебе ДОВЕРЯЮТ самому выполнить стартовый запуск системы с жесткого диска, больше похожего на стиральную машину с активатором. Тот же невероятный восторг по поводу первого, действительно замечательного, компьютера MSX, который имел цвет и звук, которых не было ни у одной другой машины, и где в 128К помещалось 6 часов отличного геймплея. Те же ночные бдения, с грудой распечаток и описаниями процессора и периферии, открытыми на особенно интересных местах. Те же невероятные сложности в поиске документации, которая собиралась по крупицам по всей стране.
И невероятная самоуверенность, еще необтесанная опытом и не побитая жизнью, когда казалось что сделать можно практически все, достаточно только захотеть.
Мы не видели большой разницы между документированными и недокументированными свойствами систем. «Какая разница, если они позволяют выполнять задачу?». Я помню, очень удивил преподавателя во время сдачи зачета, написав, с целью экономии места в памяти самомодифицирующийся программный код. Он мне начал рассказывать про «Эльбрус», где, по его словам, был специальный бит, по которому можно было определить где находятся данные, а где код, и что «.. на той архитектуре мой фокус не прошел бы..». На что я гордо заявил, что «Эльбрус» вызывает не более, чем академический интерес, и на данной системе это вполне работает. Преподаватель был мудрым человеком, он поставил мне «зачтено», понимая что переубедить меня, хорошо знающего техническую сторону вопроса, но, на тот момент, ничего не понимавшего в разработке, невозможно, а тем более во время сдачи экзамена. Жизнь, как всегда это бывает, все расставила по своим местам сама. :)
Это сейчас в обиходе прочно укоренились слова: постановка задачи, бета-тестирование, бизнес-логика, этапы, планы, сроки и так далее. Программирование из акта творчества постепенно стало ремеслом. Видимо так тому и быть, потому что сколько-нибудь сложные системы нельзя сделать иначе. Мы носим пиджаки и галстуки, но где-то в глубине души продолжает жить это желание перейти черту и нарушить запреты, скорее уже не из юношеского озорства, а из желания глубже познать природу вещей, то есть сделать с системой не то что следует делать, а то что хочется: проверить немыслимую комбинацию параметров, перед которыми идет три раза написанное «WARNING!!!» и обрадоваться когда получается интересный (а иногда и полезный) результат, неописанный в родной документации, или когда удается найти решение трудной проблемы, в особенности когда оно небанально и красиво , как хороший афоризм.
Мне хотелось бы посвятить этот перевод всем моим друзьям и знакомым, с которыми мы когда-то вместе начинали этот путь и по которому каждый теперь идет сам. С кем-то общаемся весьма близко, с кем-то реже, с некоторыми пути разошлись в силу странного стечения так до конца и не выясненных обстоятельств. Кто-то уехал и работает за рубежом. А кое-кто давно забросил все это и неплохо занимается бизнесом, который никак не связан с программированием и электроникой. Но та подвижность ума, отсутствие рамок в способах познания этого мира, умение мыслить нестандартно и оригинально по-прежнему продолжает жить с ними, помогая двигаться дальше.
Также, я очень надеюсь на то, что кому-то эта книга поможет в выборе того, чем заниматься всю оставшуюся жизнь.
Всем привет!
Лукин Алексей (las@softhome.net), 2001 год, г.Иркутск.
Еще одно маленькое, но необходимое отступление.
Я старался как можно более точно донести смысл и «заряд», который автор вкладывал в свою книгу, иногда в ущерб буквальной точности перевода. Искренне надеюсь, что это получилось, хотя кто-то может счесть такую точку зрения некорректной. Перевод собственно жаргона, оказался делом не совсем простым, впрочем большинство жаргонных слов непонятны носителям оригинального английского, так что в этом плане мы почти ничего не теряем. Да и не в жаргоне дело.
С благодарностью приму комментарии, сообщения о замеченных неточностях и ошибках. Это более или менее подправленная версия, но в ней мною УЖЕ замечены ошибки, несмотря на то, что я стараюсь вычитывать текст и исправлять его минимум трижды. С особой благодарностью будет принята помощь человека, хорошо знающего русский язык и способного правильно расставить запятые (это мой пожизненный крест :))
Часть Первая.
Истинные Хакеры
1. Клуб Технического Моделирования Железной дороги.
Почему Питер Самсон в полночь бродил по зданию №26? На этот вопрос он вряд ли бы сумел дать определенный ответ. Над некоторыми вещами лучше не стоит ломать голову. Если бы вы походили на ребят, с кем Питер познакомился и состоял в приятельских отношениях на своем первом году обучения в Массачусетском Технологическом Институте зимой 1958-59 года, то тогда никаких объяснений не потребовалось бы. Блуждание в лабиринте лабораторий и складских помещений, разгадывание тайн коммутации телефонных сигналов в машинных залах, отслеживание путей проводов или реле в подземных туннелях — для некоторых это было обычным поведением. Для них не требовалось оправдывать для себя импульс в душе, когда, оказавшись перед закрытой дверью, за которой что-то интригующе шумело, вдруг очень хотелось открыть дверь, понимая при этом, что они будут незваными гостями. И затем, если там никого не было, кто мог бы физически преградить доступ к источнику этого завораживающего шума, можно было коснуться машины, пощелкать выключателями, посмотреть, как она на это отреагирует, потом ослабить винты, снять крышку, покачать пальцами некоторые диоды и подергать некоторые разъемы. Питер Самсон и его друзья выросли с определенным отношением к миру, в котором вещи имели значение только в случае, если вы поняли, как они работают. Да и как можно вообще жить, не подержав их в своих руках?
Именно в подвале Здания №26 Самсон и его друзья обнаружили комнату ЭОПД. Здание №26 было одним из корпусов МТИ — высокой конструкцией из стекла и стали, разительно отличавшейся от почтенных строений, с которых начинался институт со стороны Массачусетс Авеню, и чьи фронтоны были украшены колоннадами. В подвале этого здания, лишенного всякой индивидуальности, располагалась комната ЭОПД. ЭОПД означало «Электронное Оборудование Подготовки Данных». Это была комната, в которой размещались машины, которые работали почти как компьютеры.
Не так много людей в 1959 году видели компьютер, не говоря уже о том, чтобы трогать его руками. Самсон, молодой человек с жесткими рыжеволосыми кудрями и растягивавший при разговоре гласные так, что казалось, что он на полуслове перебирает в своей голове возможные варианты окончания предложений, уже сталкивался с компьютерами при своих, еще дошкольных, посещениях МТИ. До института он добирался из своего родного города Лоуэлл, который был расположен менее чем за тридцать миль от кампуса — университетского городка. Он заработал прозвище «кембриджский мальчик» и был одним из многих сходивших с ума по науке старшеклассников, которых тянуло как магнитом, к университетскому городку Кембриджа. Он даже пробовал собрать свой собственный компьютер из запчастей от списанных машин для пинбола, которые были лучшим источником логических элементов, которые он был в состоянии найти.
Институт представлял собой собрание самых лучших из тех сверходаренных старшекласников с филиноподобными стеклами очков и слаборазвитым грудными мышцами, которые ошарашивали своими знаниями учителей математики и провалившихся на экзамене «физкультурников». Эти ребята мечтали не о том, чтобы блистать на школьных вечеринках, а о том, чтобы попасть в финал Научной Ярмарки, проводимой компанией General Electric. МТИ был как раз тем самым местом, где Питер мог блуждать по коридорам в два часа ночи, в поисках чего— нибудь интересного. И здесь он действительно мог найти нечто, что могло бы его разбудить в нем новый творческий процесс, новый стиль жизни, поставить его на передний край общества, которое обрисовывалось в книгах некоторых писателей-фантастов, пользовавшихся не слишком хорошей репутацией. В конце концов, это было место, где он мог бы найти компьютер, с которым можно было бы поиграться.
Комната ЭОПД, на которую Самсон случайно наткнулся, была заставлена большими перфораторами, размерами с приземистый шкаф для бумаг и папок. Их никто не охранял: персонал в комнате находился только днем, когда избранная группа лиц, которые имели официальное разрешение и достаточно привилегий, чтобы передавать длинные карты из манильского картона[1] операторам, которые затем набивали на перфораторах данные в соответствии c пожеланиями привилегированных пользователей. Отверстие на карте представляло для компьютера определенную команду, сообщая ему, что где-то необходимо поместить часть данных, или выполнить определенную функцию над частью этих данных, или переместить часть данных из одного места в другое. Полная стопка этих карт составляли целую компьютерную программу, которая была составлена из последовательности инструкций, которые выдают некоторый ожидаемый результат, подобно тому, как пункты кулинарного рецепта, при их точном выполнении, приводят к выпечке пирога. Эти карты передавались другому оператору наверх, который помещал эти карты в «считывающее устройство». Оно определяло, где были пробиты отверстия, и отправляло эту информация на компьютер IBM 704, прозванный Неповоротливым Гигантом и расположенный на первом этаже Здания №26.
IBM 704, стоимость которого составляла несколько миллионов долларов, занимал целую комнату, требовал постоянного внимания персонала, состоявшего из профессиональных операторов ЭВМ. Ему также требовалось специальное кондиционирование, чтобы раскаленные вакуумные лампы внутри этого сооружения не нагрелись до температур, уничтожающих данные. Когда кондиционирование выходило из строя, а это было достаточно частым явлением, то звучал громкий гонг, после чего из близлежащего офиса пулей неслись три инженера. С машины очень быстро снимались кожухи, так чтобы ее внутренности не успели расплавиться. Все эти люди отвечали за перфорацию карт, их подачу в считыватели, нажатие кнопок и щелканье переключателями на машине. Они представляли собой Высшую Касту Жрецов, а те, кто был достаточно привилегирован, чтобы представить свои данные перед ликом Высших Жрецов являлись их официальными помощниками. Сама процедура загрузки программ фактически была ритуальным обрядом.
О, компьютер, окажи милость принять мой дар, состоящий из информации, так чтобы ты смог выполнить мою программу и возможно выдать мне результат вычислений.
Мы попробуем. Мы ничего не обещаем.
Также общим правилом было то, что даже наиболее привилегированным из помощников не было дозволено иметь прямой доступ непосредственно к машине, и в течение нескольких часов, а иногда и в течение дней, они не видели результаты заглатывания и переваривания машиной их «пакета» карт.
Самсону это все было известно, и конечно, все это его чертовски напрягало. Он страстно хотел добраться до этой проклятой машины, потому что он видел в этом смысл всей своей жизни.
Чего Самсон не знал, и что он к своей большой радости обнаружил, что комната ЭОПД также имела специальную перфорирующую машину, называемую IBM 407. Она не только могла пробивать перфокарты, но также могла их считывать, сортировать и делать с них распечатку информации на бумагу. Похоже, что эти машины тоже никто не охранял, и они также в чем-то были похожи на компьютеры. Конечно, их использование не было праздником: необходимо было пропускать контакты через наборное поле, которое представляло собой квадрат пластмассы два на два дюйма с массой отверстий в нем. Если бы вы поместили сотни проводов через отверстия в определенном порядке, то вы получили бы нечто, что напоминало крысоловку, но, на самом деле, эта штука устанавливалась в электромеханическую машину, после чего ее функции полностью менялись. Теперь с ней можно было бы делать то, что вы от нее хотели.
Как раз этим и занимался Питер, вместе с несколькими своими друзьями из клуба при МТИ, в котором они строили модель железной дороги. Они ни у кого не спрашивали никаких разрешений, что, впрочем, было обычным явлением. Конечно, это все делалось по наитию и необдуманно, но это был шаг в будущее, отчасти нарисованное научной фантастикой, что было типично для пути, проходя по которому, эта странная субкультура сама тащила себя за волосы и постепенно дорастала до положения андерграунда. И в конечном итоге, она станет культурой, которая будет грубоватой и неофициальной душой компьютерного сообщества. Исследование IBM 407 было практически самой первой компьютерной хакерской авантюрой Клуба Технического Моделирования Железной Дороги, или TMRC.
Питер Самсон стал членом Клуба Технического Моделирования Железной Дороги, начиная со своей первой недели пребывания в МТИ с осени 1958 года. Самым первым событием, которое свежеиспеченные студенты МТИ должны были пройти, была традиционная приветственная лекция, точно такая же, которую мог вспомнить каждый, кто там учился.
Некоторые студенты не видели в этом никакого вызова или предупреждения. Эта часть молодежи воспринимала своих однокурсников через туманную призму дружеских отношений, и полагала, что вместе они, возможно, будут полезны друг другу в ненасытном познании природы вещей, которой в дальнейшем можно было бы распоряжаться по своему усмотрению. Изучению этого и без того имелось достаточно препятствий, так что стоило ли беспокоиться по поводу таких глупых вещей как эти преподаватели с коричневыми носами, пытающиеся им втолковать про какие-то звания и степени? Для таких студентов как Питер Самсон, процесс познания означал нечто большее, чем просто ученая степень.
Через некоторое время после лекции началось что-то вроде Дня Первокурсника. Все организации студенческого городка — группы по интересам, различные сообщества и так далее, установили свои кабинки в большом зале для того, чтобы попытаться набрать себе новых членов. Клубом, к которому пристал Питер, был Клуб Технического Моделирования Железной Дороги (TRMC). Его участниками были старшекурсники с горящими глазами, стриженые ежиком, разговаривавшие со спазматическими каденциями, расталкивая в спешке слова. Они хвастались захватывающим внешним видом своих ширококолейных поездов, которые у них стояли в постоянной клубной комнате в Здании №20. Питеру Самсону очень нравились поезда, в особенности поезда метро, и поэтому он пошел вместе со всеми на экскурсию в корпус, который был временным сооружением, облицованным галькой и построенным еще во времена Второй Мировой Войны. Его коридоры были весьма объемистыми и, несмотря на то, что клубная комната была расположена на втором этаже, ей был свойственен сырой и мрачноватый подвальный вид.
В клубной комнате, все доступное пространство занимала огромная модель железной дороги. Она заполняла почти всю комнату, и если вы стояли в небольшой области управления, называемой «вырез», то вы могли бы увидеть небольшой город, небольшие заводские корпуса, крошечную работающую линию с вагонетками, гору из папье-маше, и, конечно же, много поездов и рельсов. Поезда были очень тщательно сделаны и очень сильно походили на свои прототипы в натуральную величину. Они сновали по изгибам и поворотам путей, столь же совершенно как будто на красивой картинке из книжки.
Потом Питер Самсон посмотрел ниже основания, на котором стояла вся модель. Основание от пола имело высоту, которая была достаточна, чтобы под нее мог пролезть ползком человек. Его дыхание перехватило. Под железной дорогой находилась большая массивная матрица из проводов, реле и координатных коммутаторов в таком количестве, о котором Питер никогда и не мечтал. Четкими рядами шли группы переключателей, и тускло поблескивавших бронзовых реле, которые соединялись длинной и хаотичной путаницей красных, синих и желтых проводов, изгибающихся и поворачивавших так, как будто бы на голове у Эйнштейна произошел взрыв, и радужные волосы разлетелись во все стороны. Это была невероятно сложная система, и Питер Самсон поклялся выяснить, как она работает.
Клуб Технического Моделирования Железной Дороги предоставлял своим членам ключ от клубной комнаты после того, как они отрабатывали сорок часов работы на модели. День Первокурсника был в пятницу. В понедельник, Питер имел свой собственный ключ.
Сама TMRC делилась на две группы. Некоторые члены клуба любили тратить свое время, изготавливая и раскрашивая точные копии некоторых поездов, имевших историческую ценность или которые просто нравились моделистам, или же созданием для модели элементов реалистичного пейзажа. Это была группа людей «ножа и кисти». Они подписывались на железнодорожные журналы и организовывали выезды клуба на экскурсию на старые железнодорожные ветки. Другая группа участников образовывала Подкомитет по Сигнализации и Питанию, и их, по большей части заботило то, что происходило непосредственно под моделью. Вместе, эти две группы, представляли собой Систему, которая напоминала сотрудничество между Руби Голдбергом и Вернером фон Брауном. В этой Системе что-то постоянно улучшалось, обновлялось, совершенствовалось, а иногда, говоря на клубном жаргоне «гронкалось» «(gronked)», то есть накрывалось медным тазом. Люди СиП были одержимы тем, как работает их Система, ее растущей день ото дня сложностью, тем как любое вносимое ими изменение затрагивает ее остальные части, а также тем, как можно было бы наиболее оптимально построить связи между ее компонентами. Многие из частей Системы были предоставлены по шефскому плану колледжем компании Western Electric, другие — самой телефонной компанией. Факультетский наблюдатель за деятельностью клуба также отвечал за телефонную сеть университетского городка, а также присматривал за тем, чтобы сложное телефонное оборудование было доступно для моделистов. Используя это оборудование в качестве отправной точки, моделисты-железнодорожники придумали схему, которая позволяла управлять поездами сразу нескольким человекам, даже если поезда были в различных частях одного и того же участка. Приспособив номеронабиратели от телефонов, «инженеры» TMRC могли указать, каким участком железной дороги они хотели бы управлять, и запускали оттуда поезд. Это делалось при помощи нескольких типов телефонных реле, а также координатных устройств и шаговых искателей, работа которых действительно позволяла слышать как электричество передавается с одного блока на другой с этим таинственным звуком «щелк-щелк-щелк». Именно Группа СиП изобрела эту изощренную инженерную схему, и именно в Группе СиП нашло приют беспокойное любопытство, которое заставляло этих ребят рыть носом землю вокруг корпусов университетского городка в поиске способов получить в свои руки компьютер. Эти молодые люди были пожизненными учениками Практического Императива. Главой СиП был старшекурсник по имени Боб Сандерс, весь румяный и округлый, заразительно смеявшийся, а также обладавший достойным талантом переводить стрелки. Еще во время своего обучения в средней школе в Чикаго, он построил высокочастотный трансформатор для школьного проекта. Это был вариант катушки Тесла в шесть футов высотой — устройства, названного в честь инженера и изобретенного еще в девятнадцатом веке, которое, как предполагалось, испускало мощные волны электроэнергии. Сандерс говорил, что его трансформатор сумел подавить телевизионный прием в нескольких кварталах в округе. Другим человеком, которого также притягивала работа в СиП, был Алан Коток, пухлый, слабовольный парень из Нью-Джерси в толстых очках, который учился в одной группе вместе с Самсоном. Семейство Котоков могло бы вспомнить как он, еще в возрасте трех лет, вырвал при помощи отвертки розетку из стены и заставлял ее извергать шипящий душ из потоков искр. Когда ему было шесть, он делал и подключал лампы. Учась в средней школе, он однажды побывал на экскурсии в лаборатории фирмы Mobil Research в близлежащем городке Хэддонфилд, и там впервые увидел компьютер. Это так его поразило, что оказало влияние на его решение в будущем поступать в МТИ. В свой первый год пребывания в институте, он заработал репутацию одного из наиболее способных членов СиП в TMRC. Ребята из СиП относились к категории людей, которые вполне могли потратить свое субботнее время на визиты в свалку-магазин Эли Хеффрона в Соммервилле. Там они выпрашивали запчасти, а затем проводили многие часы, лежа на спине на небольших досках с маленькими колесиками, которые они называли «банками» (bunkies), и при помощи которых они добирались до особо сложных мест в коммутационной системе. Они могли потратить целую ночь, нелегально подключаясь к телефонной линии между TMRC и Восточным Кампусом. Они играли технологиями как игрушками на детской площадке. Основные члены клуба могли зависать в нем на многие часы; постоянно улучшая Систему, споря по поводу того, что должно быть следующим шагом или разрабатывая свой собственный жаргон, который казался абсолютно непонятным тому, кто мог бы случайно наткнуться на этих фанатичных тинейджеров, одетых в поношенные рубашки с коротким рукавом и карандашами в карманах, в штанах из бумажного твила[2], и, всегда с бутылкой Кока-колы в одной руке. TMRC купила свою собственную машину по розливу Кока-Колы за умопомрачительную по тем временам сумму в $165; но при цене пять центов за бутылку все издержки были покрыты через три месяца. Чтобы сделать продажу еще более удобной, Сандерс построил для покупателей Кока-Колы автомат для размена монет, который потом использовался еще в течение десяти лет. Когда какая-то часть оборудования не работала, это было «losing»; когда часть оборудования выходила из строя, ее называли «munged»[3]; два стола в углу комнаты назывались не офисом, а «орифисом»[4]; того, кто настаивал на учебе, называли «тулзой» (tool); мусор назывался «крафтом» (cruft); а разрабатываемый проект или изделие, создаваемое не только для достижения некоторой конструктивной цели, но и для того, чтобы оттянуться и получить простое удовольствие от собственно процесса, назывался «хаком» (hack). Последний термин, возможно, был древним жаргонным словом в МТИ. Слово «хак» долго использовалось для описания озорных студенческих шуток, которые студенты МТИ регулярно придумывали: например, покрытие отражающей фольгой купола, который возвышался над университетским городком. Но при его использовании в TMRC, подразумевалось серьезное уважение к обсуждаемому предмету разговора. Кто-нибудь мог назвать хитрое соединение между двумя реле «просто хаком», тем не менее, все понимали что, для того, чтобы это было действительно хаком, работа должна содержать новшество, иметь стиль, и должна быть проделана с технической виртуозностью. Даже если кто-то самоуничижительно говорил, что он «хакерил Систему» (подразумевая, что он по своему разумению, делал это также безыскусно, как человек, держащий в руках топор, колет дрова), весьма существенным признавалось мастерство, с которым на самом деле это все было проделано. Самые продуктивные участники группы Сигналов и Питания назвали себя «хакерами» с большой гордостью. В пределах границ клубной комнаты в Здании №20, и «Комнаты для Инструментов» (где было мало институтской учебы и много технических, чисто мужских разговоров), они наделяли сами себя атрибутами героев исландских легенд. Вот, например, как Питер Самсон видел себя и своих друзей, подражая сандбургской поэзии, в информационном бюллетене клуба:
«Будет похачено все!», —этими странноватыми, в потрепанной одежде, лежащими под схемой хакерскими выбросами юношеской энергии; отстегнутыми поджаривателями диодов, которые гордятся своими ролями Повергателей мира во тьму, Тестеров Предохранителей, Прокладчиков Путей, Игроков с Железной дорогой, и Продвинутых Прерывателей Системы.
Всякий раз, когда была возможность, Самсон и его товарищи проскальзывали в комнату ЭОПД с ее наборными полями, пытаясь придумать, как можно использовать эту машину для отслеживания коммутаторов под моделью железной дороги. Они также считали важным, понять для себя пределы того, что можно было бы сделать при помощи этого электромеханического считывающего устройства.
Весной 1959 года, в МТИ студентам был предложен новый курс. Это был первый курс по программированию компьютера, который могли выбирать для себя новички. Преподавателем был человек, немного отрешенный от этого мира, с шевелюрой больше похожей на взрыв волос на голове, чем на прическу и такой же непослушной бородой. Его звали Джон Маккарти. Будучи великолепным математиком, Маккарти был классическим рассеянным профессором. Ходила масса историй относительно его привычки отвечать на вопрос спустя многие часы, а иногда даже дни, после того, как он ему был задан. Он встречал вас в коридоре, и без всякого приветствия начинал говорить со своей очень четкой роботоподобной дикцией, как будто пауза при разговоре занимала только долю секунды, а не неделю. И, как правило, этот запоздалый ответ был полностью исчерпывающим.
Маккарти был одним из малочисленной группы людей, которые работали с компьютерами в абсолютно новой области. Изменчивая и спорная природа этого поля деятельности был очевидна из крайне высокомерного названия, которое Маккарти ему дал —
В конце пятидесятых, информатика (computer science) как таковая официально в МТИ не существовала, и сам Маккарти, и его коллеги-компьютерщики работали в Департаменте Электротехники, где для студентов был разработан курс №641, который Коток, Самсон, и несколько других членов TMRC взялись изучать этой весной.
Маккарти начал работу над мамонтообразной программой на Неповоротливом Гиганте IBM 704 , которая придала бы этой машине невероятные способности игры в шахматы. В противовес критике противников подававшей надежды области искусственного интеллекта, люди, подобные Джону Маккарти, могли предоставить только голый оптимизм. Но Маккарти имел определенное видение того, что компьютеры могли делать, и игра в шахматы была только началом.
Котока, Самсона и других привлекали не эти «видения», а вполне конкретные и занятные вещи. Они хотели понять, как же
Хакеры из TMRC изобретали способы подобраться поближе к IBM 704, которая в скором времени была модернизирована до более новой модели 709. Оставаясь в вычислительном центре в ранние утренние часы, постепенно признакомившись с Высшим Жречеством, отбивая поклоны и осеняя себя крестными знамениями необходимое количество раз, Котоку и прочим, в конечном счете, позволялось нажать несколько кнопок на машине, и понаблюдать моргание лампочек во время ее работы.
На этих машинах имелись и свои тайны. Они были кропотливо изучены некоторыми старшекурсниками в МТИ, у которых был доступ к 704 и друзья среди Верховных Жрецов. Что удивительно, некоторые из этих программистов — дипломников, работавших с Маккарти, даже написали программу, которая использовала одну из строк крошечных лампочек. Лампочки зажигались в таком порядке, что это напоминало небольшой шарик, который пролетал справа налево: и если оператор нажимал выключатель в нужный момент, то огоньки мог ли двигаться в обратную сторону. Это походило на компьютерный пинг-понг! Очевидно, что это было как раз тем, чем можно было бы похвастаться перед друзьями и впечатлить их, после чего они бы посмотрели на код программы, и попытались бы понять, как это было сделано.
Чтобы программа стала лучше, можно было бы попробовать сделать то же самое с меньшим количеством команд, приложив при этом достойные усилия, так как в маленькой «памяти» компьютеров тех дней было очень мало места и в них не могло помещаться много инструкций. Джон Маккарти однажды отметил, как его аспиранты, которые тусовались вокруг IBM 704 , работали над своими компьютерными программами, пытаясь выжать из машинных команд все, что только было возможно, чтобы в итоге программа была максимально компактна и чтобы в машину нужно было вставлять наименьшее количество перфокарт. Удаление одной или двух инструкций для них было почти навязчивой идеей. Маккарти сравнивал этих студентов с лыжниками-баммерами (bummers), которые ездят на максимальной скорости. Студенты получали те же острые ощущения от этого «максимального кодекса» как и фанатичные лыжники, которые получали удовольствие, отчаянно и со свистом проносясь с вершины холма. Поэтому попытки отрезать часть инструкций от компьютерной программы без воздействия на конечный результат стали в итоге называться «программным баммингом» и вы могли бы часто слышать людей, бормочущих под нос что-то вроде: «Возможно, я сумею бамнуть несколько инструкций нафиг и сократить загрузку программы восьмеричной коррекции с четырех карт до трех».
В 1959 году интересы Маккарти немного сместились: он оставил шахматы и занялся новым способом общения с компьютером. Это был новый «язык» под названием LISP. А шахматным проектом занялись Алан Коток и его друзья, которые были весьма нетерпеливы и готовы приступить немедленно к решению проблемы. Работая на IBM, которая функционировала в режиме пакетной обработки, они начали обучать IBM 704, потом модель 709, а впоследствии и заменившую ее модель 7090, решению задачи расстановки ферзей на доске. В конечном счете, группа Котока стала самым большим пользователем компьютерного времени во всем вычислительном центре МТИ.
Однако работа с IBM сильно выматывала. Не было ничего хуже долгого ожидания в промежутке после сдачи ваших перфокарт и моментом, когда ваши результаты вручались вам назад. Если вы напечатали не в том месте хотя бы одну букву, то программа вылетала с ошибкой, и вы должны были начинать всю работу снова. Кроме того, как снежный ком росло количество чертовых
Один Жрец, а точнее — помощник Жреца низкого уровня, во время ночной смены был особенно настойчив в выполнении этих бюрократических распоряжений. Для него Самсон изобрел подходящую месть. Однажды, копаясь в развалах электронного хлама в магазине Эли, он случайно наткнулся на электронную плату, которая в точности походила на плату, аналогичную той, на которой были смонтированы электронные лампы, находившиеся внутри IBM. Однажды ночью, около 4 часов утра, этот младший помощник Жреца отлучился на минуту из комнаты. Когда он возвратился, Самсон сказал ему, что машина вышла из строя, но они нашли источник проблемы, после чего показал ему полностью разбитый модуль от старой IBM 704, которую он нашел у Эли.
Помощник жреца едва смог вымолвить: « Г-где ты это взял?»
Самсон, большие зеленые глаза которого могли легко принимать маниакальное выражение, медленно показал на свободное место в стойке машины, где, конечно, никогда никакой платы не стояло, но сиротливая пустота которого, была как нельзя кстати.
У помощника жреца перехватило дыхание. По его лицу было видно, что от испуга его внутренности вот-вот выйдут наружу. Он начал стенать и взывать к Господу. Вне всякого сомнения, перед ним начали проноситься кошмарные видения в виде вычета в миллионы долларов из его зарплаты. Он успокоился только после того, как пришел Старший Жрец, который несколько понимал менталитет этих молодых вундеркиндов из TMRC и объяснил ему, что же происходит на самом деле.
Он будет далеко не последним администратором, который на своей шкуре почувствует недовольство хакера, которому мешают в доступе к системе.
В один из дней, в клуб нанес визит бывший член TMRC, который теперь работал на факультете института. Его звали Джек Деннис. В начале 1950-х, когда он сам был студентом, он с такой же неистовой увлеченностью работал под моделью железной дороги. Деннис недавно начал работать на компьютере, который МТИ только что получил из Lincoln Lab, дочерней институтской лаборатории, которая занималась военными научными исследованиями. Компьютер назывался TX-0, и это было один из первых транзисторных компьютеров в мире. В Lincoln Lab его использовали исключительно для проверки гигантского компьютера под названием TX-2, который имел настолько сложную память, что специально для этого построили «маленького брата», который мог успешно диагностировать ее проблемы. Теперь, когда его работа была закончена, TX-0, стоимостью три миллиона долларов был передан Институту в виде «долгосрочной ссуды» и, похоже, никто в Lincoln Lab не отметил в календаре дату возвращения. Деннис спросил у ребят из СиП в TMRC: хотели ли бы они на нее посмотреть? С тем же успехом можно было спросить монахинь: «Эй, монашки! Хотите встретиться с Римским папой?».
TX-0 размещался в Здании №26, на втором этаже Научно-Исследовательской Лаборатории Электроники[7], непосредственно над первым этажом Вычислительного центра, на котором размещался неповоротливый IBM 704. Лаборатория RLE походила на рубку управления старинного космического корабля. TX-0, или Tixo, как ее иногда называли, для своего времени была маленькой по размерам машиной, так как это был один из первых компьютеров, которые использовали транзисторы размером с палец, вместо электронных ламп размером с руку. Тем не менее, он занимал большую часть комнаты, и это не считая пятнадцати тонн вспомогательного оборудования для кондиционирования. Рабочие компоненты TX-0 были установлены на нескольких высоких, тонких шасси, которые походили на металлические стеллажи для книг, опутанные проводами, с аккуратными небольшими рядами маленьких, контейнеров, похожих на бутылочки, в которые были вставлены транзисторы. Другая стойка имела металлическую переднюю панель, пестревшую мрачновато выглядящими рукоятками управления. Перед стойками была расположена L-образная консоль, которая являлась пультом управления этого космического корабля из романа Герберта Уэллса, с синим покрытием, на которое можно было положить локти или бумаги. На коротком конце этой буквы «L» стоял Flexowriter, который походил на пишущую машинку, переделанную для ведения противотанковой войны — его основание покоилось на станине, выкрашенной в шаровый (серый) цвет, которым обычно пользовались военные. Наверху были расположены органы управления, которые выглядели как выпячивающиеся ящики, выкрашенные в положенный желтый цвет. На обращенных к пользователю сторонах ящиков, находилось несколько ручек, ряды мигающих лампочек, размерами в четверть дюйма, матрица из стальных переключателей, каждый из которых был размером с большое рисовое зерно, и
Ребята из TMRC благоговейно затрепетали.
Но еще более удивительными были «интерактивные» способности машины, на которой пользователям были выделены интервалы времени для использования TX-0 целиком для своих нужд. Кроме того, вы могли вносить в программу изменения,
В самой преисподней не нашлось бы никаких препятствий, которые могли бы отвратить Котока, Сандерса, Самсона и других от этой машины. К великому счастью, как оказалось, вокруг TX-0 не было той самой бюрократии, которая окружала IBM 704. Не было никакого персонала из официозных жрецов. Техник, ответственный за компьютер, был осторожным блондинистым шотландцем по имени Джон Маккензи. Хотя он и проверял, чтобы аспиранты и, работающие над финансируемыми проектами, сотрудники института являлись Официально Допущенными Пользователями, и имели соответствующий доступ к машине, Маккензи переносил присутствие команды сумашедших из TMRC , которые начали периодически оставаться в лаборатории RLE, где стояла TX-0.
Самсон, Коток, Сандерс, и новичок, которого звали Боб Вагнер, в скором времени вычислили, что лучшим временем для пребывания в Здании №26 является ночь, когда ни один человек в своем здравом уме не запишется на одночасовой сеанс в расписание, которое вывешивалось каждую пятницу около воздушного кондиционера в лаборатории RLE. Как правило, TX-0 работала двадцать четыре часа в сутки. В те годы машинное время было слишком дорогим, чтобы его тратить впустую, поэтому машину оставляли работать вхолостую на всю ночь, и кроме того, запуск этой штуковины после того, как она полностью выключалась, был весьма проблематичной процедурой. Таким образом, TMRC хакеры, которые вскоре стали называть себя TX-0 хакерами, изменили свой образ жизни, чтобы приспособиться к расписанию времени на компьютере. Они заняли все интервалы времени, какие только было можно, и, «стервятничали» во время своих ночных посещений лаборатории, на тот случай если кто-то, кто записался на 3 часа утра, не приходил.
" О! ", —восхищенно говорил Самсон, спустя минуту-другую после того, как кто-то не появлялся во время, обозначенное в журнале, — «Пусть оно не пропадет впустую!»
Оно никогда не пропадало, потому что хакеры были там постоянно. Если они не находились в лаборатории RLE, в ожидании внезапной дыры в расписании, то они могли находиться в классе, который был рядом с клубной комнатой TMRC, и который назывался Инструментальной Комнатой. Там они играли в игру в слова на листе бумаги, подобную игре в «виселицу», которую изобрел Самсон, и которая называлась «Дойти до Соседней Двери». Играя в эту игру, они ожидали известия от того, кто был рядом с TX-0 и отслеживал пользователей, не появившихся в заказанное ими машинное время. Хакеры завербовали целую сеть информаторов, которые заранее предупреждали их о потенциальных дырах в расписании времени компьютера, особенно в тех случаях, когда программа для обсчета научного проекта не была вовремя готова, или был болен профессор. Информация об этом доходила до TMRC, и тогда у TX-0 появлялись хакеры, затаившие дыхание и готовые немедленно прыгнуть на место за консолью.
Хотя Джек Деннис теоретически отвечал за работу машины, он параллельно преподавал курсы, и предпочитал тратить остальную часть своего времени, свободного от преподавания, на фактическое написание программ. По отношению к хакерам Деннис играл роль добродушного крестного отца: он преподал им краткий вводный курс по машине, направлял их деятельность, и периодически удивлялся их диким программным предприятиям. Он не имел большой склонности к администрированию, и был весьма рад, когда ему удалось передать дела Джону Маккензи. Маккензи быстро понял, что интерактивный характер TX-0 был весьма многообещающим и фактически представлял собой новую форму программирования на компьютерах. Пионерами этого направления были хакеры, и поэтому он старался не устанавливать слишком много ограничений.
В 1959 году атмосфера в МТИ была достаточно свободна, и присутствие этих заблудших людей, сдвинутых на науке, чье ненасытное любопытство не давало им покоя, переносилось окружающими достаточно легко. Именно это и нравилось Питеру Самсону, который любил исследовать неотмеченные ни на одной схеме лабиринты лабораторий в МТИ. Шум кондиционирования, звуки в спикере под консолью, и грохот Flexowriter-а привлекали этих странников, которые заглядывали из-за двери в лабораторию так же, как котята заглядывают в корзину с едой.
Одним из этих странников был человек со стороны по имени Питер Дейч. Еще до своей встречи с TX-0, он был очарован компьютерами. Это началось однажды, когда он нашел выброшенное кем-то руководство, по не совсем понятной форме языка для выполнения вычислений на компьютерах. Он испытал весьма странное чувство относительно этих упорядоченных компьютерных команд. Позднее он описал бы его, как чувство сходное с состоянием художника или артиста, когда тот испытывает то же самое сверхестественное и трансцендентное ощущение, когда он обнаруживает среду или предметы вокруг себя, которые являются для него абсолютно комфортными.
Питер Дейч был застенчивым подростком, весьма сильным в математике и крайне неуверенным во всем остальном. Он чувствовал себя неловко из-за излишнего веса, никогда не побеждал на спортивных состязаниях, но имел очень светлую голову. Его отец был профессором в МТИ, и Питер, при своих исследованиях лабораторий, использовал его имя как пропуск.
Его встреча с TX-0 была неизбежна. Сначала он попал в маленькую «Клудж-Комнату»[8], где были доступны три интерактивных Flexowriter-а для набивания программ на бумажную ленту, которая затем считывалась на TX-0. Кто-то как раз набивал программу на ленту. Питер понаблюдал за этим некоторое время, а затем начал забрасывать беззащитную жертву градом вопросов. Вопросы касались этого таинственного «небольшого» компьютера в соседней комнате. После чего Питер подошел непосредственно к TX— 0 , и рассмотрел ее вблизи, отметив при этом, что она весьма отличалось от других машин: она была меньше размером, имела CRT-дисплей, и другие приятные штучки. Он сразу же решил вести себя так, как будто он имел полное право находиться здесь. Он быстро понял все то, что было написано в руководствах, и, в скором времени, поражал окружающих, периодически произнося умные речи на околокомпьютерную тематику. В конечном счете, ему разрешили вписывать свое имя в расписание машинного времени в течение ночи и выходных дней, а также писать свои собственные программы.
МакКензи беспокоился только о том, чтобы его не обвинили в превращении лаборатории в «детский сад». Этот, еще маленький мальчик, в коротких штанишках, но в то же время достаточно длинный, чтобы доставать головой до консоли TX-0, просматривал код, который Официально Санкционированный Пользователь (весьма вероятно им был какой-нибудь надутый аспирант) набил на Flexowriter-е. При этом, мальчик ему говорил своим писклявым подростковым голосом нечто вроде: «Ваша проблема в том, что данное допущение в данном месте неверно… Вам здесь нужны другие команды». Как правило, надутый аспирант немедленно задавался вопросом: "
Самсон, Коток, и другие хакеры приняли Питера Дейча в свои ряды. По его уровню понимания компьютера он был достоин равного отношения. Но Дейч не стал таким же фаворитом среди Официально Санкционированных Пользователей, особенно, когда он сидел позади них, готовый к немедленному действию, когда они делали ошибку, набивая программу на Flexowriter-е.
Официально Санкционированные Пользователи появлялись у TX-0 с регулярностью прихода и ухода на работу. Программы, которые они запускали, представляли собой статистические исследования, поиски взаимных корреляций, моделирование процессов происходящих в ядре, то есть прикладные программы. Пользователи от них были в восторге, но в представлении хакеров это была пустая трата времени и ресурсов. В хакерских головах гнездилось непреодолимое желание сесть за консоль TX-0, такое же, какое испытывает пилот желающий сесть за штурвал самолета. Или, как выразился Питер Самсон, большой любитель классический музыки: «Вычисления на TX-0 были подобны игре на музыкальном инструменте: абсурдно дорогом музыкальном инструменте, на котором вы могли бы импровизировать, писать музыкальные пьесы, или подобно битникам на Гарвард-Сквер, что в миле отсюда, выть как привидение когда воображение начинало полностью отказывать.»
Одной из вещей, которой они активно пользовались, была система программирования, которую создали Джек Деннис и профессор Том Стокман. Когда TX-0 привезли в МТИ, ее немного «раздели» по сравнению с тем оснащением, которое у нее было в стенах Lincoln Lab. Была существенно уменьшена память; до 4,096 «слов» из восемнадцати битов каждое[9]. Кроме того, TX-0 не имел почти никакого программного обеспечения. Поэтому Джек Деннис, еще до того как он показал TX-0 ребятам из TMRC , написал «системные программы», то есть такое программное обеспечение, которое помогало пользователям работать с машиной.
Первой вещью, над которой работал Деннис, был ассемблер. Это было специальное программное обеспечение, переводившее программу, написанную на языке ассемблера в двоичный код. Язык ассемблера представлял собой символические трехбуквенные сокращения, которые на самом деле были командами машины. Ассемблер транслировал их в машинный язык, который, состоял из двоичных чисел 0 и 1. TX-0 имел довольно ограниченнуюсистему команд, так как его дизайн позволял использовать только два бита из каждого восемнадцатибитного слова в качестве команды для компьютера, то есть могли использоваться только четыре инструкции (каждая из возможных комбинаций двух битов — 00, 01, 10, и 11 представляла собой команду). Все что компьютер мог делать, могло быть сведено к выполнению одной из тех четырех инструкций: ему требовалась одна команда, чтобы складывать два числа, и последовательность из примерно двадцати команд, чтобы умножить два числа. Тщательный просмотр написанного длинного списка команд компьютера, записанных в двоичном виде, например, 10011001100001 могли легко превратить вас в заговаривавшегося душевнобольного уже по истечении нескольких минут. Но та же самая команда на языке ассемблера могла бы выглядеть как ADD Y. После загрузки ассемблера в компьютер, который написал Деннис, вы могли бы писать программы в более простой символической форме, и спокойно сидеть и ждать, потирая от удовольствия руки, в то время как компьютер выполнял для вас перевод в двоичный код. После этого вы скармливали компьютеру уже подготовленный «объектный» код. Ценность этой программы была неизмерима: она позволяла программистам писать на языке, который
Другая программа, над которой Деннис работал вместе со Стокманом, была новым вариантом отладчика или дебаггера[10]. TX-0 передали с программой отладки под названием UT-3, который позволял общаться с компьютером во время его работы, печатая команды непосредственно на Flexowriter-е. Этот отладчик имел большой недостаток: он воспринимал подаваемые ему команды только в восьмиричном виде. «Восьмеричный» — значит, что в основе системы исчисления лежит число восемь (в противоположность двоичной системе, в которой основой системы является число два, а в арабской системе исчисления, которой мы пользуемся ежедневно, является основой число десять), и поэтому восьмеричная система является достаточно сложной для повседневного использования. Зная об этом, Деннис и Стокман решили написать нечто лучшее, чем UT-3, что позволило бы пользователям работать с символическим языком ассемблера, который был более легок в использовании. В конце концов, они решили назвать его FLIT. Он позволял пользователям находить ошибки в программе во время работы, устранять их, а также контролировать работу программы. (Деннис пояснял позднее, что "FLIT " означает Flexowriter Interrogation Tape (Допросная лента для Флексоврайтера), но, похоже, что настоящим источником имени был аэрозоль от насекомых, имевший аналогичное название). Фактически FLIT был квантовым скачком вперед, так как он освободил программистов от рутинной работы, и они могли теперь писать на компьютере программы так же, как музыканты, пишут свои произведения на музыкальных инструментах. С использованием отладчика, который занимал третью часть из 4,096 слов памяти TX-0, у хакеров были развязаны руки для создания нового, более смелого и свободного стиля программирования.
Ну и какие же программы
Именно Джек Деннис высказал Самсону предположение о весьма больших возможностях TX-0 и о ее способности посылать звуковые сигналы через спикер. И хотя не имелось никаких специальных средств для управления высотой, амплитудой, или тоном звука, способ управления им все-таки был — спикер производил звуковой сигнал в зависимости от состояния четырнадцатого бита в восемнадцатибитном слове, которое TX-0 содержал в своем сумматоре в некоторую конкретную микросекунду. Звук включался или выключался в зависимости от того, был ли бит #14 нулем или единицей. Поэтому Самсон приступил к написанию программ, которые меняли бы различными способами числа в сумматоре, что позволило бы разными способами производить звуки различной высоты.
В то время, только несколько людей в стране экспериментировали с использованием компьютера для создания музыки, и методы, которые они использовали, требовали интенсивных вычислений прежде, чем машина была в состоянии проиграть хотя бы ноту. Самсон, который реагировал крайне нетерпеливо, в отношении тех, кто предупреждал его о том, что он предпринимает попытки сделать невозможное, хотел, чтобы компьютер играл музыку прямо сейчас. Он научился управлять этим одним битом в сумматоре настолько хорошо, что мог командовать им так же, как Чарли Паркер саксофоном. В более поздней версии этого компилятора музыки, Самсон сделал так, что, если вы делали ошибку при программировании музыки, Flexowriter, переключался на красную ленту, и печатал «Человеку свойственно ошибаться, а божеству свойственно прощать».
Когда люди со стороны слышали мелодию Иоганна Себастьяна Баха исполняемую одноголосной, монофонической квадратной волной, без всякиз признаков гармоничного звука, как правило, это не производило на них впечатления. Подумаешь, большое дело! "
Это была компьютерная программа, которая не только была музыкальным произведением в переносном смысле, она
Самсон не говорил об этом ничего людям, которые в этом не разбирались, и которые не были впечатлены тем, что он сделал. Сами хакеры тоже не обсуждали этого, и не ясно даже, анализировали ли они вообще это явление в таких космических масштабах. Но Питер Самсон сделал это, и его коллеги, оценили его деяние по заслугам — потому что было очевидно, что это очень красивый и аккуратный хак, а этого было достаточно для оправдания траты массы времени на него.