Хакеры. Как молодые гики провернули компьютерную революцию и изменили мир раз и навсегда
Шрифт:
– О! – Радостно восклицал Самсон примерно через минуту после того, как записавшийся студент не приходил в указанное в журнале время. – Будь уверен, чувак, время не пропадет даром!
Так и было, потому что хакеры проводили там почти все свое время. Если они не болтались рядом с научно-исследовательской лабораторией электроники в ожидании ее открытия, то играли в помещении клуба в придуманную Самсоном словесную игру в духе «Виселицы». Он назвал ее «Соседняя дверь» (Come Next Door) в ожидании звонка с сообщением, что есть окно для работы на TX-0. У хакеров появились информаторы, сообщающие им, если вдруг машина оказывалась свободной, например программа в рамках исследовательского проекта не была готова вовремя или заболел профессор. Об этом мгновенно узнавали хакеры и тут же, запыхавшиеся, появлялись в лаборатории TX-0, готовые схватиться за панель управления.
Теоретически за операцию отвечал Джек Деннис. В то время
1959 год отличался свободой, позволявшей приютить в лаборатории жаждущих знаний, помешанных ученых, чье любопытство жгло их изнутри подобно голоду. Вот почему Питер Самсон исследовал лабиринты лабораторий МТИ. Шум кондиционера, звуки работы компьютера и стрекотание флексографа манили этих странников. Они вились вокруг комнаты с компьютером, как котята вокруг миски со сметаной.
В числе странников был Питер Дойч. Еще до знакомства с ТХ-0 Дойч увлекся компьютерами. Это началось случайно, когда в руки Питера попало брошенное руководство по вычислениям на компьютере. Что-то в строгой упорядоченности компьютерных инструкций привлекло его. Позже он описывал то свое состояние, сравнивая его с трансцендентным восторгом художника, увидевшего натуру для будущей картины: «Здесь мое место». Дойч попробовал написать небольшую программу и, подписавшись именем одного из «жрецов», запустил ее на компьютере. За несколько недель он достиг поразительного мастерства в программировании. В двенадцать лет!
Это был застенчивый ребенок, сильный в математике и неуверенный почти во всем остальном. Тучный, физически слабый, но интеллектуально одаренный подросток, сын профессора МТИ. Естественно, Питер пользовался своим положением, чтобы попасть в лабораторию.
Его участие в работе на компьютере TX-0 было неизбежным. Сначала он забрел в небольшую «комнату Клуджа» («Клудж» – оборудование, работа которого, кажется, бросает вызов самой логике). Здесь располагались три автономных флексографа для записи программ на бумажную ленту, позднее загружаемую в TX-0. Сотрудник МТИ в этот момент вставлял ленту. Питер немного понаблюдал за ним, а потом принялся засыпать бедолагу вопросами о необычном маленьком компьютере в соседней комнате. Затем Питер подошел к TX-0 и внимательно осмотрел его, отметив, чем он отличается от других компьютеров: он был меньше и имел ЭЛТ-дисплей. Виделись в нем и другие привлекательные новшества. Питер тут же решил вести себя как сотрудник с полным правом доступа сюда. Он раздобыл учебник и вскоре стал поражать окружающих серьезными беседами о компьютерах. В конце концов ему разрешили записываться на ночные и выходные смены, чтобы писать собственные программы.
Маккензи боялся обвинений, что он руководит каким-то детским лагерем, когда малыш в коротких штанишках, чья голова едва виднелась из-за консоли TX-0, наблюдал, как какой-нибудь аспирант с официальным допуском к компьютеру вводит свой код на флексографе, и выдавал ему ломающимся подростковым голосом что-то вроде: «У вас здесь ошибка… Вы должны ввести другую команду». Естественно, самоуверенный аспирант будет сходить с ума, удивляясь, как какой-то маленький червяк может указывать ему, и кричать, чтобы тот шел играть в другое место. Однако замечания Питера Дойча неизменно оказывались верными. Дойч нагло заявлял, что собирается писать программы лучше, чем кто-либо из тех, кто работает в лаборатории.
Самсон, Коток и другие хакеры приняли Питера Дойча в свои ряды. Благодаря своим познаниям в области компьютеров он оказался достоин равного обращения. Но официально допущенные к TX-0 не испытывали особого почтения к нему, особенно в минуты, когда он маячил за их спинами, готовый заметить любую ошибку на флексографе и сразу же оповестить об этом.
Эти официально допущенные пользователи появлялись в комнате с TX-0 с регулярностью пассажиров. Запускаемые ими программы были направлены на статистический анализ, перекрестные связи, моделирование внутренней части ядра клетки. Приложения… Полезно для пользователей, а для хакеров – пустая трата времени. Для них это все равно что сидеть за дроссельной заслонкой самолета. Как сказал Питер Самсон, знатный ценитель классической музыки, производить вычисления с помощью TX-0 напоминало игру на абсурдно дорогом музыкальном инструменте, импровизировать, сочинять, подобно битникам на Гарвард-сквер в миле отсюда, и петь с полной творческой отдачей.
Такие возможности им стали доступны благодаря системе программирования,
разработанной Джеком Деннисом и другим профессором, Томом Стокманом. Когда компьютер TX-0 появился в МТИ, его характеристики урезали по сравнению с периодом работы в лаборатории Линкольна: память сильно уменьшили до 4096 «слов» по восемнадцать бит в каждом. «Бит» – единица измерения в двоичной системе, либо 1, либо 0. Эти двоичные числа – единственное, что понимают компьютеры. Ряд двоичных чисел называется «словом». Кроме того, к компьютеру TX-0 практически не прилагалось программное обеспечение. Поэтому Джек Деннис, еще до того, как познакомил членов TMRC с TX-0, писал «системные программы», помогающие пользователям работать на компьютере.Первое, над чем работал Деннис, стал ассемблер. Он представлял собой транслятор, переводивший язык ассемблера с трехбуквенными символическими сокращениями, обозначающими команды, на компьютерный язык на основе двоичных чисел 0 и 1. В TX-0 использовался сильно урезанный язык ассемблера, позволяющий использовать для команд только 2 бита каждого 18-битного слова. Поэтому были доступны только четыре команды (каждая возможная 2-битная вариация – 00, 01, 10 и 11 – представляла собой команду). Все, что делал компьютер, сводилось к выполнению одной из четырех команд: для сложения двух чисел требовалась одна команда, а для умножения двух чисел – серия из примерно двадцати команд. Взглянув на длинный список компьютерных команд, записанных в виде двоичных чисел, например, 10011001100001, пользователь терял рассудок. Но та же команда на ассемблере может выглядеть так: ADD Y. После загрузки в компьютер ассемблера Денниса стало возможно писать программы в более простой символической форме и ждать, пока компьютер сам выполнит перевод в двоичный код. А дальше нужно только загрузить полученный код обратно в компьютер. Сложно недооценить это достижение Денниса. Его ассемблер позволял программистам писать код, а не головокружительную серию нулей и единиц.
Другая программа, над которой Деннис работал совместно со Стокманом, – отладчик. TX-0 поставлялся с отладочной программой UT-3, взаимодействующей с компьютером во время его работы путем ввода команды непосредственно с флексографа. Но и здесь были большие проблемы. Так, он принимал код только в восьмеричной числовой системе. «Восьмеричная» – система исчисления с основанием 8 (в отличие от двоичной с основанием 2 и арабской с основанием 10). Это сложная в использовании система. Поэтому Деннис и Стокман решили написать нечто лучшее, чем UT-3, что позволило бы пользователям использовать символический, более простой в работе язык ассемблера. Программа получила название FLIT. Она позволила пользователям находить программные ошибки во время сеанса работы, исправлять их и поддерживать работу программы. Деннис рассказывал, что название FLIT произошло от названия ленты для флексографа. Однако на самом деле источником вдохновения послужил спрей от насекомых одноименного бренда. FLIT, квантовый скачок вперед, позволил программистам создавать действительно оригинальные программы на компьютере подобно тому, как музыканты пишут свои произведения с помощью музыкальных инструментов. С помощью отладчика, занимавшего треть из 4096 слов всей памяти TX-0, хакеры могли свободно создавать новый, более смелый стиль программирования.
Какие же программы писали хакеры? Ну, иногда эти программы делали нечто бессмысленное. Например, Питер Самсон сочинил программу, мгновенно превращавшую арабские цифры в римские. А Джек Деннис, хотя и восхитился его мастерством, все же заметил: «Боже мой, кому это пригодится?» Но Деннис понимал, что Самсон это делал ради ощущения собственной силы и восторга пользователя, когда тот вставлял бумажную ленту, следил за лампочками и переключателями и видел, как арабские цифры превращаются в римские.
И именно Джек Деннис подсказал Самсону, что с помощью TX-0 можно воспроизводить звуки. Тогда не было встроенных регуляторов высоты, амплитуды звука, однако существовал способ управлять динамиком – на звучание влиял 14-й бит в 18-битных словах в памяти TX-0, загруженный в конкретную микросекунду. Звук включался или выключался в зависимости от того, был 14-й бит 1 или 0. Так Самсон стал писать программы, меняющие комбинации двоичных символов для получения различных результатов.
В то время лишь немногие в стране экспериментировали, используя компьютер для прослушивания музыки. Используемые методы требовали огромных объемов вычислений, прежде чем машина могла сыграть единственную ноту. Самсон отметал сомнения тех, кто в него не верил и говорил о невозможности достижения результата. Он хотел, чтобы компьютер сразу играл музыку. Поэтому он учился управлять одним битом в памяти компьютера так же искусно, как Чарли Паркер играл на саксофоне. В более поздней версии музыкальной программы Самсон настроил ее таким образом, что при появлении ошибки в коде флексограф переключался и выводил на дисплее: «Ошибаться свойственно людям, прощать – богам».