Чтение онлайн

на главную - закладки

Жанры

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

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

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

С

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поделиться:
Популярные книги

На границе империй. Том 6

INDIGO
6. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.31
рейтинг книги
На границе империй. Том 6

Возмездие

Злобин Михаил
4. О чем молчат могилы
Фантастика:
фэнтези
7.47
рейтинг книги
Возмездие

Маяк надежды

Кас Маркус
5. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Маяк надежды

Невеста

Вудворт Франциска
Любовные романы:
любовно-фантастические романы
эро литература
8.54
рейтинг книги
Невеста

Кодекс Охотника. Книга XVIII

Винокуров Юрий
18. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVIII

Береги честь смолоду

Вяч Павел
1. Порог Хирург
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Береги честь смолоду

Соль этого лета

Рам Янка
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Соль этого лета

Неправильный лекарь. Том 1

Измайлов Сергей
1. Неправильный лекарь
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неправильный лекарь. Том 1

Бастард Императора. Том 5

Орлов Андрей Юрьевич
5. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 5

Попаданка в семье драконов

Свадьбина Любовь
Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
7.37
рейтинг книги
Попаданка в семье драконов

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Я не Монте-Кристо

Тоцка Тала
Любовные романы:
современные любовные романы
5.57
рейтинг книги
Я не Монте-Кристо

Довлатов. Сонный лекарь 3

Голд Джон
3. Не вывожу
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Довлатов. Сонный лекарь 3

Неудержимый. Книга XIII

Боярский Андрей
13. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIII