Хакеры, герои компьютерной революции
Шрифт:
МакКензи беспокоился только о том, чтобы его не обвинили в превращении лаборатории в "детский сад". Этот, еще маленький мальчик, в коротких штанишках, но в то же время достаточно длинный, чтобы доставать головой до консоли TX-0, просматривал код, который Официально Санкционированный Пользователь (весьма вероятно им был какой-нибудь надутый аспирант) набил на Flexowriter-е. При этом, мальчик ему говорил своим писклявым подростковым голосом нечто вроде: "Ваша проблема в том, что данное допущение в данном месте неверно? Вам здесь нужны другие команды". Как правило, надутый аспирант немедленно задавался вопросом: "Кто этот маленький червь?", после чего начинал злиться и повышать на него голос, приказывая выйти отсюда и поиграть в игрушки где-нибудь в другом месте. Но, обычно комментарии Питера оказывались правильными. Кроме того, Дейтч хвастливо заявлял, что он в состоянии написать гораздо лучшие программы, чем те которые он видел, и, что самое интересное - у него это получалось.
Самсон, Коток,
Официально Санкционированные Пользователи появлялись у TX-0 с регулярностью прихода и ухода на работу. Программы, которые они запускали, представляли собой статистические исследования, поиски взаимных корреляций, моделирование процессов происходящих в ядре, то есть прикладные программы. Пользователи от них были в восторге, но в представлении хакеров это была пустая трата времени и ресурсов. В хакерских головах гнездилось непреодолимое желание сесть за консоль TX-0, такое же, какое испытывает пилот желающий сесть за штурвал самолета. Или, как выразился Питер Самсон, большой любитель классический музыки: "Вычисления на TX-0 были подобны игре на музыкальном инструменте: абсурдно дорогом музыкальном инструменте, на котором вы могли бы импровизировать, писать музыкальные пьесы, или подобно битникам на Гарвард-Сквер, что в миле отсюда, выть как привидение когда воображение начинало полностью отказывать."
Одной из вещей, которой они активно пользовались, была система программирования, которую создали Джек Деннис и профессор Том Стокман. Когда TX-0 привезли в МТИ, ее немного "раздели" по сравнению с тем оснащением, которое у нее было в стенах Lincoln Lab.
Была существенно уменьшена память; до 4,096 "слов" из восемнадцати битов каждое. ("Бит" - двоичная цифра: 1 или 0. Эти двоичные числа единственное, что понимают компьютеры. Последовательность из двоичных чисел представляет собой "слово"). Кроме того, TX-0 не имел почти никакого программного обеспечения. Поэтому Джек Деннис, еще до того как он показал TX-0 ребятам из TMRC , написал "системные программы", то есть такое программное обеспечение, которое помогало пользователям работать с машиной.
Первой вещью, над которой работал Деннис, был ассемблер. Это было специальное программное обеспечение, переводившее программу, написанную на языке ассемблера в двоичный код. Язык ассемблера представлял собой символические трехбуквенные сокращения, которые на самом деле были командами машины. Ассемблер транслировал их в машинный язык, который, состоял из двоичных чисел 0 и 1. TX-0 имел довольно ограниченнуюсистему команд, так как его дизайн позволял использовать только два бита из каждого восемнадцатибитного слова в качестве команды для компьютера, то есть могли использоваться только четыре инструкции (каждая из возможных комбинаций двух битов - 00, 01, 10, и 11 представляла собой команду). Все что компьютер мог делать, могло быть сведено к выполнению одной из тех четырех инструкций: ему требовалась одна команда, чтобы складывать два числа, и последовательность из примерно двадцати команд, чтобы умножить два числа. Тщательный просмотр написанного длинного списка команд компьютера, записанных в двоичном виде, например, 10011001100001 могли легко превратить вас в заговаривавшегося душевнобольного уже по истечении нескольких минут. Но та же самая команда на языке ассемблера могла бы выглядеть как ADD Y. После загрузки ассемблера в компьютер, который написал Деннис, вы могли бы писать программы в более простой символической форме, и спокойно сидеть и ждать, потирая от удовольствия руки, в то время как компьютер выполнял для вас перевод в двоичный код. После этого вы скармливали компьютеру уже подготовленный "объектный" код. Ценность этой программы была неизмерима: она позволяла программистам писать на языке, который напоминал естественный язык, а не эти бесконечные, вызывающие головокружение, ряды единиц и нолей.
Другая программа, над которой Деннис работал вместе со Стокманом, была новым вариантом отладчика или дебаггера (debugger - средство для удаления ошибок или багов (bug). Еще одно значение слова bug - насекомое, жук пр.перев.). TX-0 передали с программой отладки под названием UT-3, который позволял общаться с компьютером во время его работы, печатая команды непосредственно на Flexowriter-е. Этот отладчик имел большой недостаток: он воспринимал подаваемые ему команды только в восьмиричном виде. "Восьмеричный" - значит, что в основе системы исчисления лежит число восемь (в противоположность двоичной системе, в которой основой системы является число два, а в арабской системе исчисления, которой мы пользуемся ежедневно, является основой число десять), и поэтому восьмеричная система является достаточно сложной для повседневного использования. Зная об этом, Деннис и Стокман решили написать нечто лучшее, чем UT-3, что позволило бы пользователям работать с символическим языком ассемблера, который был более легок в использовании. В конце концов,
Ну и какие же программы делали хакеры? Ну, иногда, это вообще не имело никакого значения, что делали эти программы. Питер Самсон однажды хакерил всю ночь программу, которая мгновенно конвертировала арабские числа в римские цифры, и Джек Деннис, который восхитился искусством, с которым Самсон проделал этот "подвиг", сказал, "Мой Бог, почему кто-нибудь другой не захотел это сделать?" Но Деннис на самом деле знал почему. Вполне достаточным оправданием было чувство власти и достижение совершенства, которое Самсон получал, когда он заправлял ленту с программой в считыватель, смотрел на мерцающие огни машины и щелкал выключателями. После чего, он видел как арабские цифры, нарисованные на простой старой классной доске, превращались в римские цифры - тоже своего рода хак, который в свое время сделали римляне.
Именно Джек Деннис высказал Самсону предположение о весьма больших возможностях TX-0 и о ее способности посылать звуковые сигналы через спикер. И хотя не имелось никаких специальных средств для управления высотой, амплитудой, или тоном звука, способ управления им все-таки был спикер производил звуковой сигнал в зависимости от состояния четырнадцатого бита в восемнадцатибитном слове, которое TX-0 содержал в своем сумматоре в некоторую конкретную микросекунду. Звук включался или выключался в зависимости от того, был ли бит #14 нулем или единицей. Поэтому Самсон приступил к написанию программ, которые меняли бы различными способами числа в сумматоре, что позволило бы разными способами производить звуки различной высоты.
В то время, только несколько людей в стране экспериментировали с использованием компьютера для создания музыки, и методы, которые они использовали, требовали интенсивных вычислений прежде, чем машина была в состоянии проиграть хотя бы ноту. Самсон, который реагировал крайне нетерпеливо, в отношении тех, кто предупреждал его о том, что он предпринимает попытки сделать невозможное, хотел, чтобы компьютер играл музыку прямо сейчас. Он научился управлять этим одним битом в сумматоре настолько хорошо, что мог командовать им так же, как Чарли Паркер саксофоном. В более поздней версии этого компилятора музыки, Самсон сделал так, что, если вы делали ошибку при программировании музыки, Flexowriter, переключался на красную ленту, и печатал "Человеку свойственно ошибаться, а божеству свойственно прощать".
Когда люди со стороны слышали мелодию Иоганна Себастьяна Баха исполняемую одноголосной, монофонической квадратной волной, без всякиз признаков гармоничного звука, как правило, это не производило на них впечатления. Подумаешь, большое дело! "Этот гигантский кусок железа стоит три миллиона долларов и почему, интересно, он не в состоянии сделать то же самое, что умеет делать пятидолларовое игрушечное пианино?" Непосвященным было бесполезно объяснять, что Самсон фактически обошел процесс, которым музыка создавалась в течение многих веков. Музыка всегда возникала непосредственно при создании колебаний, которые уже были звуком по своей природе. А то, что было в программе Самсона, фактически представляло собой перезагрузку чисел, битов информации, загруженных в компьютер и составлявших код, в котором и находилась собственно музыка. Вы могли провести массу времени, просматривая на код, и вряд ли бы угадали, где же здесь была музыка. Код становился музыкой только тогда, когда в сумматоре, находящемся где-то среди металла, проводов и кремниевых транзисторов, из которых состоял TX-0, происходили миллионы ошеломляюще кратких обменов данными. Самсон попросил компьютер, который не имел никаких явных навыков в использовании голоса, спеть ему песню и TX-0 подчинился.
Это была компьютерная программа, которая не только была музыкальным произведением в переносном смысле, она в буквальном смысле слова была музыкой. Она выглядела как программа, которая выполняла сложные математические расчеты и статистический анализ. Цифры, которые Самсон запихивал в компьютер, были универсальным языком, на нем можно было написать все: от фуги Баха до системы противовоздушной обороны.
Самсон не говорил об этом ничего людям, которые в этом не разбирались, и которые не были впечатлены тем, что он сделал. Сами хакеры тоже не обсуждали этого, и не ясно даже, анализировали ли они вообще это явление в таких космических масштабах. Но Питер Самсон сделал это, и его коллеги, оценили его деяние по заслугам - потому что было очевидно, что это очень красивый и аккуратный хак, а этого было достаточно для оправдания траты массы времени на него.