Хакеры: Герои компьютерной революции - Стивен Леви
Шрифт:
Интервал:
Закладка:
Упрямство хакеров в этом вопросе показывало их преданность качеству вычислений: они не были готовы идти на уступки, используя систему низкого качества, которая могла бы обслуживать больше людей и возможно нести в народ идею хакерства. С их точки зрения, использование наилучшей системы было более правильной идеей служения хакерству. Система с разделением времени сюда не укладывалась.
Фредкину пришлось ввязаться в сложную политическую борьбу. Его стратегией было обработать самых яростных противников разделения времени из лагеря Гринблатта. С самим Гринблаттом у него были весьма дружеские отношения, он был единственным на девятом этаже, который называл Гринблатта — Рики. Поэтому он ему всячески льстил и обхаживал его. Он рассказывал Гринблатту как можно будет увеличить мощность PDP-6, установив в нее дополнительную память, так что у нее будет памяти больше у любого другого компьютера в мире. Он обещал, что система с разделением времени будет лучше любая виденная ранее, и хакеры будут иметь над ней полный контроль. Он обрабатывал Гринблатта в течение многих недель, и, в конце концов, Рики Гринблатт согласился с тем, что на PDP-6 следует реализовать разделение времени.
Спустя некоторое время, Фредкин сидел в своем кабинете, когда открылась дверь и внутрь зашел Билл Госпер во главе группы из нескольких хакеров. Они встали в линию перед столом Фредкина и дружно вперились в него ледяным взглядом.
«Что случилось?», — спросил Фредкин.
Некоторое время они продолжали на него смотреть. В конце концов, они начали говорить.
«Мы хотели бы знать, что ты сделал с Гринблаттом», — сказали они, — «У нас есть причины полагать, что ты его загипнотизировал».
Госпер особенно тяжело воспринимал идею совместного управления PDP-6. Его поведение напоминало Фредкину о архитекторе по имени Рурк из книги Эйна Рэнда "The Fountainhead", который сделал проект прекрасного здания, а когда начальники Рурка вмешались в проект и испортили его прекрасный замысел, Рурк в итоге взорвал здание. Фредкин позднее вспоминал, что Госпер говорил ему, что если на PDP-6 будет сделано разделение времени, то он уничтожит машину. «Так же как Рурк», — говорил Фредкин, — «Он чувствовал, что если эта ужасная вещь все-таки случиться, то вам следует все это взорвать и разломать. Я понимал его чувства, а поэтому придумал компромисс». Компромисс заключался в том, что ночью машина могла работать в однопользовательском режиме, так что хакеры могли продолжать запускать на ней гигантские дисплейные программы и полностью управлять PDP-6.
Полностью эксперимент в разделении времени завершился не так уж и плохо. Причиной этому было создание новой системы с разделением времени, системы, душой которой была Хакерская Этика.
* * *Ядро системы было написано Гринблаттом и Нельсоном за несколько недель упорного хакинга. После того как некоторая часть программного обеспечения была написана, Том Найт и остальные сделали необходимую для него настройку оборудования, а также добавили память — состоявшую из большого шкафа, шириной в обхвате как две стиральных машины Landromat, которая немедленно получила прозвище Moby Memory. Администрация одобряла работу хакеров над системой, поэтому Гринблатт и остальные пользовались полной властью в отношении того как ее следует делать. Признаком того что эта система отличается от остальных (такой, например, как Совместимая Система с Разделением Времени CTSS) было название, которое дал этой хакерской программе Том Найт: Несовместимая система с разделением времени (Incompatible Time-sharing System (ITS).
Название было ироничным, в плане дружественности остальных систем и программ, ITS была куда как более совместима, чем CTSS. В соответствии с Хакерской Этикой, ITS могла быть легко связана с другими вещами, таким образом, что она могла бесконечно расширяться, а пользователи могли пробовать этот мир более эффективным способом. Как и в любой системе расширения времени, на ITS несколько пользователей могли запускать несколько программ одновременно. Но в этой системе один пользователь мог одновременно запускать несколько программ. В ITS делался сильный акцент на использование преимуществ дисплеев, в частности была реализована весьма продвинутая система редактирования, которая работала в полноэкранном режиме («за несколько лет до того как этим начался пользоваться весь остальной мир», —позднее хвастался Гринблатт). Так как хакеры хотели, чтобы машина работала максимально быстро (так же как и в однопользовательском режиме), Гринблатт и Нельсон написали код на машинном языке, который позволял осуществлять беспрецендентный контроль над системой разделения времени.
Внутри ITS было еще более сильное олицетворение Хакерской Этики. В отличие от остальных систем с разделением времени ITS не использовала паролей. Она была сделана так, что позволяла хакерам иметь доступ к любомупользовательскому файлу. Старая практика держать ленты в ящике, в коллективной программной библиотеке, которая позволяла остальным пользоваться ими и совершенствовать их, была реализована и в ITS. Каждый пользователь мог иметь набор персональных файлов, которые хранились на диске. Открытая архитектура ITS подталкивала пользователей просматривать эти файлы, смотреть какими интересными хаками занимаются остальные, искать ошибки в программах и устранять их. Если, к примеру, вам нужна была функция, которая рассчитывает косинус, вы могли полазить по файлам Госпера и найти его хак, который считал синус при помощи десяти команд. Вы могли бы посмотреть программы признанных хакеров, посмотреть идеи, в них содержащиеся, и восхититься тем, что они сделали. Идея была в том, что программы принадлежали не конкретным людям, а всему миру пользователей.
В ITS также сохранялось чувство сообщества, которое было у хакеров, когда на машине работал только один пользователь, а все остальные грудились вокруг и смотрели что он кодирует. Посредством хитрой координатной коммутационной системы, пользователь не только мог определить, кто еще работал в системе, просто набрав команду, но и переключиться на монитор пользователя. Можно было работать одновременно с другим пользователем. Например, Найт мог войти в систему, обнаружить что Госпер сидит на другом порту, вызвать его программу, а затем писать свой код в программу, которую хачил Госпер.
Данное свойство использовалось всеми возможными способами. Позже, когда Найт делал сложные графические терминалы, могло быть так, что пользователь сидел в тяжких раздумьях над своей программой, и вдруг, внезапно на экране появлялся шестиногий… жук. Он начинал ползать по экрану, начинал поедать ваш код, роняя повсюду маленькие светящиеся крошки. В это время за другим терминалом бился в истерическом смехе хакер, который таким непонятным способом, сообщал вам, что в вашей программе находится ошибка. И хотя любой подключившийся к системе пользователь мог заниматься не только вещами такого рода, но и забраться в ваши каталоги и удалить файлы (как они говорили «репать»), которые в них находились, ваши программы, которые вы долго и упорно хачили и другую ценную информацию, такого никогда не делалось. При работе на ITS, хакеры всегда следовали правилам чести.
Доверие, которое ITS оказывала пользователям, наилучшим образом проявлялось в обращении с проблемой умышленных выводов системы из строя. Раньше, хакерский обряд посвящения заключался в выводе из строя системы с разделением времени и нанесения ей таких увечий, что регистры перегружались избыточными расчетами и система «вешалась». Становилась полностью мертвой. Позднее хакеры выросли из этого деструктивного режима, но часто случалось, что это представляло собой существенную проблему для тех, кто с этой системой работали. Чем больше запоров и замков было навешано на систему, тем больший соблазн испытывал какой-нибудь случайный хакер для того чтобы поставить систему на колени. Multics, например, чтобы вывести его из строя, требовал весьма нетривиального хака. Так что всегда находился какой-нибудь «мачо», который самоутверждался вешая Multics.
ITS, в полную противоположность этому имела специальную команду с помощью которой можно было завесить систему. Все что для этого надо было сделать — просто набрать KILL SYSTEM, после чего PDP-6 с хрустом останавливалась. Идея заключалась в том, чтобы повеселиться над тривиальностью того, как это можно было делать. В редких случаях, какой— нибудь лозер мог посмотреть на доступные команды и сказать: «Эй! А что делает команда KILL?», после чего завешать всю систему. В общем и целом, ITS была доказательством того что лучшая система безопасности заключалась в отсутствии всякой безопасности.
Естественно, что как только ITS начала работать на PDP-6, на систему обрушился шквал желающих отлаживать систему, который не спадал еще в течение десяти лет. Гринблатт был самым выдающимся из тех, кто тратил все свое время на «хакинг ITS», разыскивая ошибки, добавляя новые свойства и заставляя части кода работать быстрее. Так что ITS стала своего рода домом для системных хакеров.