bannerbannerbanner
Хакеры. Как молодые гики провернули компьютерную революцию и изменили мир раз и навсегда

Стивен Леви
Хакеры. Как молодые гики провернули компьютерную революцию и изменили мир раз и навсегда

Логическое мышление, необходимое для программирования, заполняло все существо хакеров, отразившись не только на их пользовании парламентскими процедурами. Оно стало проявляться и в обычной жизни. Задайте вопрос хакеру, и вы почувствуете, как его мозг обрабатывает биты, пока он обдумывает ответ.

Мардж Сондерс каждое субботнее утро ездила на «Фольсе» в супермаркет Safeway и по возвращении спрашивала мужа: «А не поможешь ли ты мне отнести покупки?» Боб Сондерс отвечал: «Нет». Пораженная отказом, Мардж сама таскала пакеты. Так повторилось несколько раз, после чего она вышла из себя, осыпала его проклятиями и потребовала объяснить, почему он отказывается помогать.

– Глупый вопрос, – сказал он. – Конечно, мне не нравится носить продукты. Вот если бы ты приказала мне их принести, я бы это сделал.

Это было похоже на то, как если бы Мардж ввела программу в TX‐0 и программа крашнулась (нарушилась) из-за неправильного синтаксиса. Только когда она «отладила» свой вопрос, компьютер в мозгу Боба Сондерса стал успешно обрабатывать инструкции.

Глава 2
Этика хакера

Вокруг нового «солнца» – компьютера TX‐0 – зарождался новый мир с совершенно новой философией, этикой и мечтами.

Хакеры TX‐0 даже не предполагали, что, посвящая все свои знания и силы компьютерному программированию с той безграничной преданностью, редко заметной посторонним, они прослывут пионерами в деле симбиоза компьютера и человека. С жаром, свойственным молодым гонщикам, постоянно разгоняющим движки своих болидов, они достигали желаемого, воспринимая все происходящее как должное и обыденное. Даже после того, как начала формироваться особая хакерская культура, появились легенды, а их мастерство программирования превзошло все прежние уровни, хакеры очень неохотно признавали, что в их узком кругу, сосредоточенном вокруг TX‐0, зарождалось новое сообщество со своими нравами и убеждениями.

Принципы новой хакерской этики не обсуждались, с ними лишь молча соглашались. Не издавалось никаких манифестов, миссионеры не пытались обратить кого-либо в свою веру. Компьютер произвел революцию в сознании Самсона, Сондерса, Котока и прочих, чьи жизни до работы с TX‐0 казались лишь подготовкой, прелюдией к настоящему делу – к работе за пультом управления TX‐0. Они лишь молчаливо соблюдали новые принципы. Хакеры более позднего периода, легендарные Гринблатт или Госпер, отнесутся к принципам хакерской этики даже с большей щепетильностью, чем те, кто стоял у истоков этого движения. Хотя пройдет еще несколько лет, прежде чем принципы хакерства будут четко сформулированы.

Тем не менее уже во времена TX‐0 были заложены принципы хакерской этики. Они гласили:

Доступ к компьютерам – и ко всему, что поможет разобраться в устройстве мира, – должен быть полным и безграничным. Всегда уступайте практическому требованию!

Хакеры верят, что важные знания о системах, о мире можно получить, разобрав их на части, наблюдая, как они работают, и используя эти знания для создания новых и даже более интересных вещей. Их возмущают любые запреты и препятствия, возникающие на пути познания, будь то закон, человек или физический барьер.

Это особенно ярко проявляется, когда хакер хочет исправить что-то, что, по его мнению, сломано или нуждается в доработке. Несовершенные системы приводят хакеров в ярость, их первобытный инстинкт – отлаживать системы. Это одна из причин, почему хакеры обычно ненавидят водить автомобиль. Для них система дорожного движения – случайная система светофоров и хаотично проложенных улиц с односторонним движением, вызывающая пробки. Хакером за рулем овладевает импульсивное желание переставить знаки, перепрограммировать светофоры, отладить всю схему дорожного движения.

В идеальном хакерском мире приветствуется вмешательство любого человека, разозлившегося из-за несовершенства системы, в управление светофорами. Необходимо разбирать и менять то, что работает несовершенно. Правила, которые запрещают вам влезать в несовершенные системы, чтобы изменить их, нелепы. Такие правила не следует соблюдать. Такое отношение к миру подтолкнуло членов TMRC создать неформальный Полуночный реквизиторский комитет (Midnight Requisitioning Committee). Когда клубу требовались диоды или пара реле для внедрения новой функции в существующую схему управления, члены «энергетического комитета» под покровом ночи отправлялись на поиски искомого. Хакеры, предельно честные в других вопросах, не считали подобное изъятие кражей – сознательная слепота.

Вся информация должна быть свободной.

Если у вас нет доступа к информации, необходимой для улучшения ситуации, как вы можете что-то исправить? Свободный обмен информацией, особенно если она представлена в виде компьютерной программы, обеспечивал бо`льшую творческую активность в целом. Работая на машине типа TX‐0, практически не имевшей программного обеспечения, вы сталкивались с необходимостью писать системные программы, облегчающие программирование. Приходилось придумывать инструменты для создания инструментов. Их хранили в ящике панели управления, и доступ к ним имели все, кто работал за компьютером. Благодаря свободному доступу к системным программам не приходилось всякий раз изобретать велосипед. Не было необходимости каждому писать собственные системные программы – лучшая версия была доступна каждому, и каждый мог свободно копаться в ее коде, совершенствуя его. В мире должны царить полнофункциональные программы, чей код сокращен и отлажен до совершенства.

Безоговорочная вера в свободу информации была основана на собственно работе компьютера или программы. Биты двоичной системы движутся по прямому, логическому пути, необходимому для выполнения задачи. Этот свободный поток информации и есть суть работы компьютера. Если в память компьютера не сможет поступать информация с устройств ввода-вывода, например считывателей перфолент или свитчей, рухнет вся система. С точки зрения хакеров, любой системе выгоден свободный поток информации.

Недоверие к власти – продвижение децентрализации.

Лучший способ продвигать свободный обмен информацией – открытая система, не имеющая границ между хакером, информацией или оборудованием, необходимым ему в процессе его познания, совершенствования и просто в течение рабочего времени. Хуже всего, если на пути встает бюрократия. Бюрократия – корпоративная, правительственная или университетская – показывает ущербность системы, неспособной адаптироваться к вновь возникшему исследовательскому стремлению истинных хакеров. Бюрократы прячутся за выдуманными правилами (в отличие от логических алгоритмов, на основе которых работают машины и компьютерные программы). Они используют их для консолидации власти, а конструктивный импульс хакеров воспринимают как угрозу.

Олицетворением всего бюрократического мира была огромная корпорация IBM. Причина, по которой она порождала своих монстров, лишь частично была связана с использованием устаревших радиоламп. Главная же причина крылась в том, что этот неуклюжий бизнес-гигант не успевал реагировать на новые идеи, импульсы хакеров. Если бы компания IBM стала лидером (как думали хакеры TMRC), мир был бы раздавлен титанами с радиолампами и перфокартами, и только привилегированные «жрецы» получали бы доступ к компьютерам.

Чтобы убедиться в этом, достаточно было взглянуть на сотрудника корпорации IBM. Белая, застегнутая до последней пуговки рубашка, аккуратно завязанный черный галстук, тщательно зачесанные волосы и пачка перфокарт в руках. Если прогуляться по вычислительному центру, где сменяли друг друга компьютерные гиганты 704, 709, а затем и 7090 – лучшее достижение компании IBM, то нельзя не обратить внимание на педантичный порядок. Были даже огороженные участки, недоступные к посещению без специального разрешения. По сравнению с этим свободная атмосфера лаборатории с TX‐0, безусловно, выигрывала. Здесь неряшливость была нормой, и любой страждущий мог войти в комнату с компьютером.

IBM сделала и продолжает делать многое для развития вычислительной техники. Благодаря своим ресурсам и мощному влиянию она сделала компьютеры неотъемлемой частью жизни в Америке. Для многих слова IBM и «компьютер» стали синонимами. Машины IBM были надежными рабочими лошадками, достойными доверия бизнесменов и ученых. Отчасти это связывалось с консервативным подходом IBM: компания делает ставку не на технологические новшества, а на проверенные временем принципы и агрессивный маркетинг. Заняв лидирующие позиции на компьютерном рынке, IBM превратилась в скрытную и самодовольную империю.

Что действительно сводило хакеров с ума, так это отношение «жрецов» и «послушников» из компании IBM, считавших, что только их компания производит настоящие компьютеры. Все остальное – мусор. С этими ксенофобами, убежденными в собственном превосходстве, невозможно было говорить. Их мозг перенял у компьютера принцип пакетной обработки данных. Это проявлялось не только в их выборе машин, но и в проведении вычислений, в их представлениях о том, как устроен мир. Они не могли понять очевидного превосходства децентрализованной системы, в которой никто не отдает приказов и в которой все занимаются тем, что им интересно. И если у них на пути возникает препятствие, то оно будет удалено хирургически без оформления кучи бессмысленной макулатуры. Они просто будут действовать.

Эти антибюрократические наклонности отражали характер хакеров, с детства привыкших заниматься научной работой, выходя за рамки привычного, в то время как остальные дети осваивались в социуме, сталкиваясь лбами на спортплощадках. Эти юноши, когда-то чувствовавшие себя изгоями, открыли для себя фантастический мир компьютеров, переживая то, что описал Питер Самсон: «Перед вами будто открылась дверь, пройдя через которую вы попали в совершенно другую вселенную…» Хакеры ощутили власть, сев за панель управления компьютера стоимостью в миллион долларов. И любое ограничение этой власти вызывало их возмущение и недоверие.

 

Хакеров нужно оценивать по фактическим навыкам, а не по фальшивым критериям, таким как образование, возраст, раса или положение в обществе.

Подтверждением и ярким примером этого принципа служит принятие двенадцатилетнего Питера Дойча в хакерское сообщество (хотя остальные студенты не принимали его всерьез). С другой стороны, какие бы документальные рекомендации ни предъявлял новичок, к нему начинали относиться всерьез, только когда он показывал, на что способен за панелью управления компьютером. Соблюдение принципа меритократии вовсе не означало врожденную доброту хакерских сердец. Просто им важнее не внешний вид человека, а его способности творить во благо хакерства, создавать новые восхитительные программы, а также то, можно ли с ним обсудить новые свойства системы.

С помощью компьютера можно создавать искусство и красоту.

Музыкальная программа Самсона была тому примером. Но для хакеров искусство программирования не сводилось к умению извлечь приятные звуки из компьютера. Красота заключена в самом программном коде. Хотя Самсон отказывался комментировать свой исходный код для более легкого понимания. Одна из его удачных программ, получившая большую популярность, содержала сотни команд на языке ассемблера. И во всем массиве кода затесался лишь один комментарий в строке номер 1750 – RIPJSB. Пользователи сломали себе головы, пытаясь разгадать загадку этого комментария, пока кто-то не догадался, что в 1750 году умер Бах и RIPJSB означает «Покойся с миром, Иоганн Себастьян Бах» (Rest In Peace Johann Sebastian Bach).

Возникла определенная эстетика стиля программирования. Из-за ограниченного объема памяти TX‐0 (недостаток, свойственный всем компьютерам той эпохи) хакеры высоко ценили инновационные приемы, позволявшие программам выполнять сложные задачи при помощи небольшого количества команд. Чем короче код, тем больше места остается для других программ и тем быстрее она выполняется. Если вы не сильно обращали внимание на скорость выполнения программы и ее размер, а также не гнались за красотой и искусством, то можно было бы хакнуть неудачную программу методом грубой силы. «Ну, мы можем сделать это, добавив двадцать команд, – сказал бы сам себе Самсон. – Ведь гораздо проще написать их, чем придумывать цикл в начале и конце кода, чтобы достичь того же результата с помощью семи или восьми команд». Но только второй вариант вызвал бы восторг друзей-хакеров. Некоторые программы Самсон так искусно втискивал всего лишь в несколько команд, что при взгляде на его код хакеры таяли от восхищения.

Иногда втискивание программ превращалось в некое соревнование, состязание мачо, призванное доказать, и прежде всего самому себе, что он виртуозно владеет системой и может элегантно удалить одну-две команды или, еще лучше, переработать весь алгоритм и создать новый, укороченный на целый блок команд. Алгоритм – специфическая процедура, применяемая для решения сложной компьютерной задачи, своего рода математическая отмычка. Для этого надо взглянуть на проблему с необычного ракурса, так, как никто до вас не смотрел на нее. Только тогда можно осознать общий смысл проблемы. Подобная гениальная марсианская техника позволяла пережить озарение, ощутить присутствие музы, позволявшую хакеру отбросить все ранее придуманное другими умами и создать совершенно новый алгоритм. Так произошло с программой вывода десятичных чисел. Она использовалась для интеграции во множество других программ и перевода двоичных чисел, которыми оперирует компьютер, в привычные десятичные числа. Сондерс назвал задачку «программированием с павлиньим хвостом»: если вы можете написать простенькую рабочую программу перевода в десятичные числа, значит, ваши знания о компьютере вполне достаточны, чтобы расправить хвост и называть себя программистом. А вот если вы можете написать отличный алгоритм перевода в десятичные числа, то у вас есть право именовать себя хакером. Решение задачи перешло из ранга простого соревнования в своеобразный поиск хакерами чаши Грааля.

Создание оптимального алгоритма перевода в десятичные числа заняло несколько месяцев. Непроходимые глупцы, полные идиоты, абсолютные лузеры писали программы с сотней команд для перевода компьютером двоичных чисел в десятичные. А вот хакер, достойный своего звания, мог написать программу с меньшим количеством команд. Следуя процедуре, взглянув на проблему под другим углом, попеременно убирая из алгоритма то одну, то другую команду, можно сократить его и до пятидесяти инструкций.

Это стало серьезным испытанием. Хакеры часами искали способы втиснуть код. И это было уже не просто соревнование – был брошен серьезный вызов их умам. Несмотря на все усилия, никто не мог преодолеть барьер в пятьдесят строк. Естественно, встал вопрос, возможно ли такое в принципе? Существует ли предел, за которым программа просто не сможет работать?

Среди многих, взявшихся за решение головоломки, был Дженсен, высокий молчаливый хакер из штата Мэн. Обычно он тихонечко сидел в комнате Клуджа и писал на распечатках с кодом с тем же упорством и невозмутимостью, с каким лесоруб валит лес. Дженсен всегда стремился найти способы втиснуть свои программы и увеличить скорость их работы. Его код представлял собой причудливый последовательный набор логических и арифметических функций, часто вызывая вычисления в разных частях одного и того же 18‐битного слова. Удивительные вещи, настоящая магия.

До Дженсена считалось, что единственный логический алгоритм для процедуры вывода десятичных чисел – это последовательное вычитание с использованием таблицы степеней числа 10 так, чтобы результат попадал в соответствующие столбцы цифр. Каким-то образом Дженсен догадался, что таблица степеней числа 10 не нужна. Он придумал алгоритм, способный преобразовывать числа в обратном порядке, но благодаря хитрому приему выводить их в верной последовательности. Кроме того, Дженсен математически обосновал свое решение. Остальные хакеры смогли разобраться в его решении только после того, как Дженсен вывесил его на доску объявлений. Тогда они увидели, что ему удалось преодолеть существовавший ранее барьер по сокращению количества команд программы для вывода десятичных чисел. В его алгоритме осталось всего сорок шесть строк. Хакеры разинули рты, пораженные увиденным кодом. Мардж Сондерс вспоминает, что хакеры после случившегося несколько дней были тише воды.

«Мы поняли, что все кончилось, – позже сказал Боб Сондерс. – Мы достигли нирваны».

Компьютеры могут изменить вашу жизнь к лучшему.

Это очевидно, но вера в это формировалась неуловимо. Хакеры редко пытались донести до остальных все преимущества компьютеров. Однако этот принцип проявлялся в обыденной жизни хакеров TX‐0, а также поколений хакеров после них.

Вне всяких сомнений, компьютер изменил их жизнь – обогатил, придал ей смысл, наполнил приключениями. Он позволил им верховодить своими судьбами. Питер Самсон позже говорил: «Мы занимались этим отчасти потому, что у нас это хорошо получалось, а отчасти – ради того, чтобы оставить после себя метафорическое наследие, способное жить собственной жизнью. В этом и заключается магия программирования… Устраняя проблему в поведении [компьютера или программы], вы исправляете ее навсегда. Результат оказывался в точности таким, каким вы его ожидали».

Компьютер, как лампа Аладдина, может исполнять ваши желания.

Безусловно, каждый может ощутить эту силу на себе. Мир, построенный на столпах этики хакеров, даст выигрыш каждому. Это незыблемая вера хакеров. Хакеры с энтузиазмом меняли традиционный взгляд на возможности компьютера, на вопрос, для чего он нужен. Они создавали новый мир, меняющий взаимодействие человека и компьютера.

Это был трудный путь. Даже в таком продвинутом университете, как МТИ, некоторые профессора считали маниакальное увлечение компьютерами легкомысленным и даже безумным. Однажды Бобу Вагнеру, хакеру из TMRC, даже пришлось объяснять профессору инженерного факультета, что такое компьютер. Вагнер ощутил противоборство компьютерных и антикомпьютерных точек зрения еще сильнее на занятиях по математическому анализу. Профессор требовал, чтобы студенты выполняли домашнее задание с помощью грохочущих и неуклюжих электромеханических калькуляторов. Коток учился в этой же группе, и их обоих пугала перспектива работы с этими отсталыми устройствами. «Почему мы должны это делать, – спрашивали они друг друга, – ведь у нас есть компьютер?»

Поэтому Вагнер начал работать над компьютерной реализацией калькулятора. Идея казалась возмутительной. Считалось нерациональным тратить на это рабочее время компьютера. По мнению некоторых, это время драгоценно и достойно только выполнения задач, максимально полно задействующих компьютер. Стандартный путь решения таких проблем предполагал привлечение больших ресурсов со стороны ученых или времени. Хакеры же считали иначе: забавно и интересно скормить компьютеру подобные задачки. Они верили, что и эти проблемы надо решать с помощью интерактивных возможностей компьютера, когда никто не маячит у тебя за спиной и не требует официального допуска к работе. После двух-трех месяцев напряженной работы, продумывая все хитрости организации вычислений с плавающей точкой (программа должна знать, где поставить знак в дробных числах) на компьютере, который до сих пор не имел элементарного алгоритма для выполнения наипростейшего умножения, Вагнер написал три тысячи строк кода. Он заставил чудовищно дорогое устройство выполнять функции калькулятора, который стоил в тысячи раз меньше. Чтобы подчеркнуть иронию ситуации, Вагнер назвал свою программу «Дорогущий настольный калькулятор» (Expensive Desk Calculator), а на одном из занятий он с гордостью продемонстрировал домашнее задание, выполненное с помощью компьютера.

Профессор не оценил его работу. «Ты пользовался компьютером! – сказал профессор. – Ответ не может быть верным».

Вагнер даже не потрудился объясниться. Как он мог донести до препода, что компьютер способен делать то, что раньше казалось невероятным или невозможным? Или как объяснить ему существование программы «Дорогущая печатная машинка», написанной другим хакером, с помощью которой на TX‐0 можно было набирать текст и выводить его на флексограф? Можете ли вы представить профессора, принимающего домашнее задание, напечатанное при помощи компьютера? Как мог этот профессор, да и любой другой человек, далекий от новой, неизведанной пока еще вселенной «компьютер и человек», понять, что Вагнер и его товарищи постоянно моделируют с помощью компьютера «непредсказуемые ситуации»? Со временем и профессор, и все прочие поймут, что мир, открываемый перед человеком компьютером, безграничен.

Если нужны дополнительные доказательства, можно привести пример проекта, над которым в вычислительном центре работал Коток, – шахматная программа. Над ней на машине IBM 704 работал еще бородатый Джон Маккарти, «Дядя», как называли его хакеры. Хотя Коток и другие хакеры, помогавшие ему с программой, презрительно относились к пакетной обработке данных, лежавшей в основе работы IBM 704, им пришлось пересилить себя и выкроить немного ночного времени, чтобы использовать машину в интерактивном режиме. Они вступили в неофициальную битву с системными программистами IBM 704, выясняя, кто из них «пожиратель» рабочего времени компьютера. Бой был жарким, и ксенофобы в белых рубашках и черных галстуках впечатлились и уступили напору хакеров. Они позволили Котоку с его группой касаться кнопок и переключателей IBM 704 – уникальная возможность физического контакта со знаменитым чудовищем IBM.

Роль Котока в воплощении шахматной программы в жизнь была показательна так же, как и роль хакеров в области развития искусственного интеллекта. Обычно какая-нибудь «умная голова» вроде Маккарти или его коллеги, Марвина Минского, начинала научный проект, обсуждалась возможность его реализации, и в случае заинтересованности хакеры тут же подключались.

Шахматная программа изначально писалась на FORTRAN – одном из первых компьютерных языков. Компьютерные языки гораздо больше похожи на английский, чем язык ассемблера. На них легче писать и нужно меньше строчек кода для выполнения серьезных задач. Однако всякий раз, когда в компьютер вводилась программа на языке типа FORTRAN, компьютер сначала переводил команды в двоичный код с помощью компилятора, занимавшего не только значительную часть времени работы компьютера, но и бо`льшую часть его объема памяти. По сути, использование компьютерного языка только увеличивало дистанцию между человеком и компьютером, нарушая их непосредственный контакт. Поэтому хакеры предпочитали язык ассемблера или, как они его называли, машинный язык, пусть даже не такой элегантный, как высокоуровневый FORTRAN.

 

Коток понимал, что из-за огромного количества инструкций будущей шахматной программы часть кода должна быть написана на языке FORTRAN, а часть – на языке ассемблера. Они собирали программу по частям, используя генераторы перемещений, составляющие основу структуры данных, и применяя всевозможные инновационные алгоритмы для реализации стратегии. После ввода в компьютер правил перемещения каждой фигуры были добавлены инструкции для оценки позиции фигуры, анализа ходов и выбора наиболее выигрышного, передвигающего фигуру в наиболее выгодную позицию. Коток работал над шахматной программой в течение многих лет. Код расширялся по мере модернизации компьютеров IBM в МТИ. И однажды памятной ночью хакеры собрались вместе посмотреть, как программа сделает свои первые ходы в реальной партии. Программа уверенно разыграла дебют, но после примерно восьмого обмена ходами начала промахиваться, и компьютеру вот-вот должны были поставить мат. Стало интересно, как отреагирует компьютер. Через некоторое время (присутствующие понимали, что во время пауз компьютер «думает», просчитывая ходы, оценивая, отклоняя большинство вариантов и используя предопределенный набор параметров для выполнения хода) компьютер передвинул пешку на две клетки вперед, перепрыгнув через другую фигуру. Баг в коде? Да, но хитрый баг – так компьютер вывел игру на новый уровень. Может быть, программа попыталась разработать какой-то новый алгоритм достижения победы?

В других университетах профессора публично заявляли, что компьютер никогда не победит человека в шахматах. Но хакерам было виднее. Благодаря им компьютеры покоряли новые вершины, порой самые неожиданные. И хакеры благодаря своей плодотворной, значимой связи с компьютером оказывались в первых рядах среди ощутивших на себе все преимущества этого плотного взаимодействия.

Но не только хакеры могут пользоваться компьютерными благами. Каждый человек может получить искомое, используя интеллектуальные компьютеры в автоматизированном мире. И не выиграет ли он еще больше, если будет подходить к миру с той же пытливой энергией, скептическим настроем по отношению к бюрократии, открытостью к творчеству, бескорыстием в обмене достижениями, стремлением к совершенствованию и желанием создавать, как последователи принципов хакерской этики? А сколько он мог бы выиграть, если бы принимал других людей так же непредвзято, как компьютеры принимают любого, кто вводит код на флексографе? Разве мы не выиграли бы, если бы переняли у компьютеров способы создания совершенной системы и использовали полученные знания для создания совершенного общества? Если бы каждый взаимодействовал с компьютерами с тем же непорочным, продуктивным, творческим импульсом, что и хакеры, хакерская этика распространилась бы по всему социуму, как благословенная волна, и компьютеры действительно изменили бы мир к лучшему.

В монастырских стенах МТИ люди свободно выбирали свой путь и могли жить, ведомые хакерской мечтой. Но никто не предполагал, что эта мечта выплеснется за пределы МТИ. Вместо этого хакеры прямо в стенах МТИ приступили к строительству хакерского Ксанаду – неповторимого и нигде больше не существовавшего.

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38 
Рейтинг@Mail.ru