Хакеры. Как молодые гики провернули компьютерную революцию и изменили мир раз и навсегда
Шрифт:
Маккарти запустил на неуклюжем гиганте IBM 704 программу, пытавшуюся играть в шахматы. Для критиков зарождающейся области искусственного интеллекта это был всего лишь еще один пример бездумного оптимизма таких людей, как Джон Маккарти. Но у Маккарти складывалось определенное представление о том, на что могут быть способны компьютеры, и игра в шахматы была только началом.
Все это казалось захватывающим, однако не разжигало интерес Котока, Самсона и их товарищей. Они хотели разобраться с тем, как компьютеры работают. Новый язык программирования, LISP, о котором рассказывал Маккарти в рамках курса № 641, конечно, вызывал интерес. Однако его нельзя было сравнить с фантастическими переживаниями во время акта программирования или получения собственной распечатки «священной» машины – слова, сказанного машиной! Или того интереса, что на протяжении часов помогал им корпеть над программой, разбираясь, что пошло не так, как должно было пойти,
Компьютеры IBM оказались способны на многое, их тайны открывались старейшим «жрецам» МТИ, имеющим доступ к «священной» машине. Так, несколько программистов, аспирантов, совместно с Маккарти написали программу, при запуске зажигавшую на экране ряды огоньков в последовательности, имитирующей игру в пинг-понг. Маленький шарик будто перелетал слева направо, а после нажатия оператором переключателя – обратно. Очевидно, программа создавалась с целью произвести впечатление на коллег, чтобы потом им захотелось взглянуть и на более серьезные проекты.
При этом нужно было стремиться минимизировать объем программы, поскольку память компьютеров тех лет была крайне малой. Однажды Джон Маккарти заметил, что его студенты, получившие доступ к машине 704, работали над своими компьютерными программами, извлекая максимум пользы из наименьшего количества инструкций, пытаясь максимально сократить код и уменьшить количество карточек, загружаемых в компьютер. Сокращение программы на одну или две инструкции превратилось для них в навязчивую идею. Маккарти сравнивал их с «лыжными задницами» (ski bums): они испытывали такой же адреналиновый всплеск от сокращения кода, как горнолыжники от бешеной скорости при спуске с горы. Так родился термин «втиснуть программу» (program bumming), означающий доработку программы, ее оптимизацию и сокращение инструкций без потерь в результативности. В лаборатории часто слышалось бормотание в духе: «Может, у меня получится втиснуть программу, сократив количество инструкций и обойдясь тремя карточками вместо четырех».
В 1959 году интерес Маккарти переключился с шахматной программы на создание нового способа общения с компьютером – на язык программирования LISP. Тогда Алан Коток с друзьями взялись за реализацию шахматного проекта. Они обучали этой игре сначала машину 704, затем 709, а после ее замены – и 7090. Постепенно группа Котока стала занимать максимум компьютерного времени во всем вычислительном центре МТИ.
Однако работа с компьютерами IBM не удовлетворяла их. Худшим было ждать результат от момента, когда ты загрузил инструкции в машину, до момента, когда компьютер выдаст ответ. А потеря хотя бы одной буквы в инструкции приводила к фатальной ошибке программы. Весь процесс приходилось повторять с самого начала на фоне огромного количества правил, соблюдение которых требовалось во время работы в вычислительном центре. Большая часть правил была внедрена для физического ограждения машины от контактов с такими фанатиками, как Самсон, Коток и Сондерс. Самое жесткое правило гласило, что никто не имеет права трогать компьютер или вмешиваться в его работу. Но именно этого и добивались члены «энергетического комитета» клуба, и невозможность прикоснуться к машине сводила их с ума.
Один «жрец», пусть и низшего ранга, проявлял особенное рвение в соблюдении этого правила в ночную смену. И Самсон придумал, как ему отомстить. Однажды, копаясь в магазине электротехники Илая, он обнаружил электрическую плату, весьма похожую на напичканную радиолампами часть «внутренностей» компьютера IBM. Как-то, примерно в 4 часа утра, излишне строгий младший «жрец» отлучился на минутку, а когда вернулся, Самсон сообщил ему, что машина перестала работать, но он уже нашел неисправность, и показал сломанную плату, купленную им в магазине Илая.
Младший «жрец» с трудом выдавил из себя: «Г-где ты это взял?»
Самсон, взглянув большими зелеными глазами прямо в лицо напуганному инженеру, медленно указал на открытый корпус машины, где, разумеется, никогда и не было этой платы, хотя пространство выглядело подозрительно пустым.
Младший служитель ахнул. По его лицу пробежала гримаса, и его чуть не стошнило. Он бормотал проклятия. Без сомнения, он уже видел в своем воображении, как из его зарплаты вычитают миллионы. Он успокоился, только когда его начальник, немного разбирающийся в психологии одержимых юнцов из TMRC, пришел и все объяснил.
Не только он ощутил на себе гнев хакера, которому запрещали доступ к желанному объекту.
Однажды клуб посетил его бывший член, а
ныне сотрудник одного из факультетов МТИ Джек Деннис. Будучи студентом в 1950-е годы, он с воодушевлением работал над созданием железнодорожных моделей, системы питания и управления под макетом. В последнее же время Деннис работал на компьютере, предоставленном сотрудничающей с университетом военной лабораторией Линкольна. Компьютер назывался TX-0 – один из первых транзисторных компьютеров в мире. В лаборатории Линкольна TX-0 использовался для диагностики гигантского компьютера TX-2, обладавшего настолько сложным устройством, что только с помощью специально созданного младшего брата можно было выявлять его неисправности. Теперь же, после завершения его главной задачи, трехмиллионный TX-0 отправился в университет в долгосрочную ссылку. Очевидно, в лаборатории Линкольна не ждали его возвращения. Деннис предложил членам клуба посмотреть на новую машину.Эй, «жрецы» и «послушники»! Не хотите ли познакомиться с папой римским?
Компьютер TX-0 располагался на втором этаже корпуса № 26, в помещении научно-исследовательской лаборатории электроники, прямо над вычислительным центром, в котором обитал гигант IBM 704. Лаборатория напоминала мостик управления старым космическим кораблем. TX-0, или «тиксо», как его иногда называли, был для своего времени миниатюрной машиной – одним из первых компьютеров с транзисторами размером в палец вместо радиоламп размером с ладонь. Тем не менее он занимал бо`льшую часть комнаты вместе с пятнадцатью тоннами вспомогательного оборудования для кондиционирования воздуха. Рабочие компоненты TX-0 размещались на нескольких высоких узких стеллажах, похожих на прочные металлические книжные полки, со спутанными проводами и аккуратными рядами крошечных, похожих на бутылки контейнеров с транзисторами. Другая стойка представляла собой сплошную металлическую переднюю панель, испещренную мерцающими датчиками. Перед стеллажами располагалась L-образная консоль с синей столешницей – пульт управления космическим кораблем из романов Герберта Уэллса. На коротком крыле столешницы стоял флексограф, напоминающий обычную печатную машинку, переделанную военными и заключенную в серый армейский корпус. В верхней части столешницы располагались элементы панели управления в корпусах ярко-желтого цвета. На обращенной к пользователю стороне корпуса располагались датчики, несколько линий мерцающих лампочек в четверть дюйма размером, система металлических переключателей размером с рисовое зерно, и наконец, главное – круглый дымчато-серый дисплей с электронно-лучевой трубкой.
Члены клуба прыгали от счастья. Машина не использовала карточки! Пользователь сначала набирал программу на длинной тонкой бумажной ленте с помощью флексографа (в соседней комнате стояло несколько запасных), затем садился за панель управления, загружал программу, пропуская ленту через считывающее устройство, и сидел там, пока программа работала. Любой сбой обнаруживался сразу, а для диагностики использовались переключатели и сигнальные датчики. Компьютер даже имел аудиовыход: пока программа работала, динамик на панели управления издавал что-то вроде музыки, как плохо настроенный электроорган, чьи ноты вибрировали с нечетким, космическим шумом. Аккорды на этом «органе» изменялись в зависимости от того, какие данные считывала машина в каждую данную микросекунду. Вызубрив эти звуки, фактически можно услышать, над какой частью кода программы работает компьютер. То же понималось и по щелчкам флексографа, придававшим ощущение присутствия на поле боя с пулеметными трелями.
Еще более удивительно, что благодаря таким «интерактивным» возможностям, а также благодаря доступности TX-0, можно было модифицировать программу, сидя за компьютером. О, чудо!
Ничто не могло сдержать Котока, Сондерса, Самсона и других от попыток сесть за компьютер. К счастью, TX-0 не был огражден такой бюрократией, как IBM 704. Не шатались поблизости «жрецы». Главный инженер, хитрый седовласый шотландец Джон Маккензи, благосклонно допускал членов TMRC в научно-исследовательскую лабораторию электроники к TX-0, пока остальные выпрашивали официальные разрешения на доступ к компьютеру для работы в своих проектах.
Самсон, Коток, Сондерс и еще один первокурсник, Боб Вагнер, вскоре поняли, что в корпусе № 26 лучше всего работать ночью. На это время никто в здравом уме не записывался, чтобы поработать час-другой на машине. Лист для записи вывешивался каждую пятницу рядом с кондиционером в научно-исследовательской лаборатории электроники. TX-0 работал двадцать четыре часа в сутки. Компьютеры в то время были слишком дороги, чтобы тратить их время впустую и оставлять простаивать по ночам. Кроме того, запустить выключенный компьютер в то время было довольно сложно. Поэтому программисты TMRC, переименовавшись в хакеров TX-0, изменили образ жизни, чтобы приспособиться к новому графику. Они записывались на ночные сеансы работы, а если кто-то не являлся в назначенный час, работали и в это время.