(C) Евгений Щербатюк '96 (W) Filosof '97
Взгляд назад.
Пешкарус - средство или способ пе-
редвижения, основанный на
перемещении нижних конеч-
ностей, требует немалого
опыта (не меньше года тре-
неровок)
В конце 50-х годов компьютеры прочно
укоренились в научно-исследовательских
центрах и университетах, финансовых и ста-
тистических отделах банков и больших кор-
пораций. Исследователи и производители вы-
числительных машин прилагали старания к
тому, чтобы программирование компьютеров
становилось легче, а сами они - мощнее.
Появление языков высокого уровня в основ-
ном решило проблему трудоемкости програм-
мирования и сделало его доступным для ши-
рокого круга инженеров и научных работни-
ков. Энтузиасты, особенно в университетах
и колледжах, отыскивали новые перспективы
применения компьютеров, обучали работе с
ними студентов, словом, делали то, что бы-
ло необходимо для осуществления прогнозов
о блистательном будущем и неоценимом зна-
чении компьютерной техники.
Одним из препятствий, вставшем на их
пути, была система пакетной обработки
программ. Те, кому приходилось работать на
больших машинах единой серии (ЕС), знают и
помнят, что это такое. Как я подозреваю,
большинству наших читателей пакетная обра-
ботка известна понаслышке. Поэтому разре-
шите вспомнить молодость и рассказать о
ней пожалуй больше, чем она заслуживает.
Пакетная обработка вызвана к жизни чис-
то экономическими причинами. Вычислитель-
ные комплексы стоили очень дорого, и для
них была разработана система, позволяющая
выполнять на одной машине не одну програму
за раз, а целый пакет программ. Конечно,
программы попрежнему выполнялись поочеред-
но, но это давало возможность полнее заг-
рузить центральный процессор за счет сок-
ращения простоев во время ввода/вывода.
Такой пакетная обработка выглядела в гла-
зах специалистов по системному програмиро-
ванию. Рядовые программисты видели ее со-
вершенно иначе. Во-первых, доступ к комп-
ьютеру был строго ограничен. Мы писали
программы и по десять раз их проверяли -
что поделаешь, наше время было гораздо де-
шевле компьютерного. Потом переписывали
печатными буквами текст программы с разро-
зненных листочков на специальные бланки,
которые сдавали в перфокарторскую. Девушки
перфокартощицы переводили текст программы
на перфокарты, временами совершая любые
мысленные ошибки и немыслимые опечатки.
Справедливости ради нужно заметить, что
количество ошибок перфорации нередко было
меньше количества программистских описок.
Готовые стопки перфокарт с программами
сдавались операторам для прогона. Через
некоторое время, в лучшем случае через
час, в худшем спустя сутки, можно было
забрать результаты. Плодами первого прого-
на всегда были длинные списки ошибок пер-
форации, описок и неправильных конструкций
языка программирования. Цикл (ручная рабо-
та с текстом - перфорация - прогон) тянул-
ся до победного конца и мог длится неделя-
ми. График использования нами процессорно-
го времени, в соответствии с которым про-
пускались наши программы, писался на месяц
вперед. Очень часто нельзя было истратить
прогон только на то, чтобы компилятор на-
шел ошибки вместо тебя. Поэтому мы предпо-
читали вручную прогонять исходный текст,
изображая из себя компьютер, чем тратить
драгоценное машинное время на поиск триви-
альных по своей сути ошибок. Делалось это
так, взяв упрощенный, но достаточно полный
набор исходных данных, мы вручную прогоня-
ли программу, исполняя оператор за опера-
тором, строка за строкой. Первое, чему
учился програмист, это аккуратно писать
печатными буквами и перечеркивать знак ну-
ля, чтобы он отличался от буквы "О". Так
сокращалось количество ошибок перфорации.
Отдельного абзаца заслуживает способ
хранения программ на перфокартах. Одна
перфокарта содержала одну строку (80 зна-
комест) текста. Каждый символ строки
представлялся комбинацией пробивок в соот-
ветствующей колонке перфокарты. Слегка
поднаторев в обращении с картами програ-
мисты начинали читать текст по карточным
пробивкам и исправлять текст в программе,
вручную заклеивая одни пробивки и прорезая
новые. Целью являлось ускорение работы за
счет экономии времени на обращение к пер-
фокартощицам. Изредка удавалось проникнуть
в процессорный зал и лично присутствовать
при прогоне программы, тогда от умения "на
лету" править карты зависело, сколько раз
удастся пропустить программу за пол-часа
машинного времени.
Теперь представьте себе, каким потрясе-
нием было уронить и рассыпать перфокарты
программы, каких усилий стоило собрать их
заново. Человеку, неумевшему читать симво-
лы по кодовым пробивкам карт, это было во-
обще не по силам. Он вынужден был заново
отдать программу на перфорацию и потерять
дни. Предположим, текст этой статьи зашиф-
рован простым кодом, разрезан на строчки,
которые потом перемешаны. Кто в здравом
уме возьмется его собирать, укладывая
клочки по порядку ? Мы брались. Так было
легче и быстрее. Второй урок, преподавав-
шийся программистской жизнью, учил нумеро-
вать карты в колоде. Это, правда, не спа-
сало, когда рассыпались две колоды (и бо-
лее), так что у многих входило в привычку
помечать на каждой карте имя программы,
нумеровать карты и подписывать пробитый на
них текст. Я до сих пор помню лицо нович-
ка, который получил на перфорации текст
своей первой программы, весело спросил:
"Кто со мной в перфокарты? ", лихо перета-
совал колоду и вдруг осознал, что натво-
рил.
Да, приятно отвлечься, но пора возвра-
щаться из Советского Союза конца 70-х -
начала 80-х в Соединенные Штаты Америки
конца 50-х начала 60-х годов.
Сотрудники факультета математики Дарт-
мутского колледжа Томас Куртс и Джон Кал-
мени получили докторские степени в Принс-
тонском университете. Куртц познакомился с
компьютерами в 1951 году на курсах в Кали-
форнийском университете. Камени участвовал
в создании атомной бомбы в 1945 году, а
его наставником был сам фон Нейман. После
войны Камени работал в Принстонском инсти-
туте перспективных исследований ассистен-
том у Альберта Энштейна и заканчивал док-
торантуру. В 1953 году ему предложили
возглавить математический факультет Дарт-
смутского колледжа в штате Нью-Гемпшир.
Ближайшим местом, где Курц и Камени
могли работать со своими программами, был
Массачуссетский технологический институт
(МТИ), расположенный в 215 километрах.
Курц, обычно отвозивший программы в МТИ,
стал завсегдатаем в поезде и в полной мере
настрадался от пакетной обработки. Камени
мечтал установить компьютер в Дартсмуте,
но не представлял себе, как можно научить
программированию коллег и сотрудников, ес-
ли процесс будет оставаться таким устраша-
ющим. В 1954 году колледж приобрел неболь-
шую машину LGP-30 и Курц возглавил вычис-
лительный центр. В течении наскольких лет
Курц и Камени разрабатывали простые языки
для работы на своей машине. Случай, когда
один из студентов младшего курса, ранее не
имевший дела с компьютерами, разработал
язык ДАРТ, окончательно убедил их что ра-
бота с компьютером по силам всем студен-
там. Идея обучать студентов работе на
компьютере практически, а не на лекциях, и
вне зависимости от их специализации нашла
поддержку у руководства колледжа.
После того как вы ранее прониклись впе-
чатлениями о буднях пакетной обработки
программ, не потребуется долгих обьясне-
ний, почему она стала препятствием на пути
приобщения студентов к компьютеру. Матема-
тиков, физиков, инженеров "прелести" па-
кетной обработки не отпугивали, они уже
понимали цену компьютерных вычислений.
Ученые и студенты гуманитарных специальных
специальностей просто не могли поверить,
что компьютерная обработка данных способна
принести им результаты, значения которых
стоило бы всех мытарств пакетной обработ-
ки, и сторонились компьютера.
Впервую очередь Курц и Камени решили
расправится с пакетной обработкой. Они
планировали использовать систему разделе-
ния времени, впервые предложенную в МТИ.
Суть разделения в следующем. К центрально-
му процессору компьютера подключается нес-
колько терминалов, снабженных алфавот-
но-цифровой клавиатурой. Центральный про-
цессор, управляемый соответствующей прог-
раммой, по очереди подключается к каждому
терминалу на несколько миллисекунд. Перек-
лючение происходит очень быстро, и у чело-
века создается впечатление, что он единов-
ластно распоряжается компьютером.
По замыслу Курца и Камени следовало
сделать язык программирования настолько
простым, чтобы "студенты могли использо-
вать его уже после трех часов занятий". На
роль операторов были намечены простые и
содержательные слова английского языка,
такие как PRINT (печатать), SAVE (сохра-
нить) и так далее. В ходе разработки ново-
го языка рождались новые идеи. Предполага-
лось, что студенты работая в системе с
разделением времени, сами будут набирать
тексты программ, вводить и получать ре-
зультаты. Так появилась мысль об интерак-
тивности программ, то есть о том, что
программа по ходу своего выполнения может
и должна вести диалог, взаомодействовать с
програмистом или пользователем. Другой на-
ходкой стал обобщенный числовой тип дан-
ных, с единым внутренним представлением,
когда почти любое применение чисел в фор-
мулах оказывалось правильным - в отличие
от Фортрана. Новый язык нарекли Бейсиком.
BASIC - это Beginners All-Purpose Symbolic
Code (символический код общего назначения
для начинающих).
В 1963 году Кемени начал разработку
компилятора языка Бейсик. Двоим студентам
было поручено создать операционную систему
с разделением времени для машин General
Electric 225 и Datanet-30, приобретение
каторых стало возможным благодаря субсидии
Национального научного фонда и скидке,
предоставленной "Дженерал Электрик". 1 мая
1964 года в 4 часа утра в полуподвале
Дартмутского колледжа Кемени с соратниками
стоял у телетайпов, использовавшихся в ро-
ли терминалов, и набивал программы. Кемени
вспоминал: " Мы и раньше неоднократно про-
делывали подобную операцыю, но именно в
тот раз все заработало. Одновременно роди-
лись и язык Бейсик и система разделения
времени". Вскоре большинство крупных орга-
низаций пользаволось в работе системой
разделения времени. Правда, они применяли
не Бейсик, а другие языки программирова-
ния.
Нужно ли говорить, насколько популярен
Бейсик в наши дни? По некаторым данным им
владеет больше людей, чем всеми другими
языками программирования, вместе взятыми.
Одним из "рассадников" страсти к комп-
ьютерам был Массачуссетский технологичес-
кий институт. В МТИ существовал студенчес-
кий клуб технического железнодорожного мо-
делирования. Одна группа студентов изго-
тавливала макеты местности, а другая -
электрическую начинку для них. Энтузиасты
из числа последних с фанатичным рвением
проводили часы за монтажем, улучшением и
переделками страны игрушечных паровозиков.
У них сложился свой жаргон, так наладка
или починка называлась "разминанием" аппа-
ратуры. Работа, не приносящая ничего, кро-
ме удовольствия, как и грубоватые шуточки,
назывались "хак" (hack). Тех, кто ею зани-
мался, как и пеоказливых студентов, окрес-
тили "хакерами" (hacker). Попадание комп-
ьютера в поле зрения хакеров было лишь
вопросом времени.
Пока на вычислительном центре царила
пакетная обработка, их доступ к машине был
очень ограничен. Все изменилось, когда в
1958 году в МТИ появилась небольшая машина
TX-0. Она была построена на транзисторах и
кроме того имела отличный электронно-луче-
вой монитор, устройство воспроизведения
звука и даже световое перо, которым можно
было рисовать на экране монитора. Главное,
на ней не было системы пакетной обработки,
человек вводил перфоленту с программой и
сразу же получал результаты. Студентам
разрешили работать на TX-0, когда она была
свободна.
Программисты-маньяки стали творить чу-
деса. Один заставил компьютер играть Баха,
другой - преобразовывать числа из арабской
формы записи в римскую. Хакер-преподава-
тель создал компьютерную игру, в которой
нужно было иправлять мышкой в лабиринте и
собирать кусочки сыра. В другом варианте
игры сыр был заменен мартини и по мере
прохождния лабиринта походка мышки стано-
вилась все менее твердой.
Вскоре в МТИ появился еще один компью-
тер: PDP-1. PDP-1 был предвестником ми-
ни-компьютеров. Кеннет Олсен, выпускник
МТИ , понял, что существует потребность в
компьютерах меньшей мощности (и стоимости)
и основал компанию, выпустившую PDP. В PDP
хакеры влюбились с первого взгляда. Самая
увлекательная игра пренадлежала перу про-
фессора Марвина Минского, занимавшегося
искусственным интелектом. При помощи трех
световых пятнышек на экране можно было
строить завитки, розы и геометрические фи-
гуры. Среди хакеров, увлекшихся новой иг-
рой, был Стефен Рассел, большой любитель
фантастики, второсортных боевиков и комп-
ьютеров. Взяв за основу программу Минско-
го, он дал волю своим страстям и сделал
игру, названную "Космические войны". Два
игрока управляли космическими кораблями и
старались поразить друг друга ракетами,
наблюдая за ходом сражения на мониторе.
Рассел предложил друзьям-хакерам усовер-
шенствовать программу, за что они приня
лись с восторгом. Один из них встроил в
игру астрономические таблицы, и теперь она
проходила на фоне экваториального звездно-
го неба. За 24 часа на экране сменялось
365 звездных ночей. Другой хакер ввел в
программу учет тяготения Солнца и планет.
Если не считать перерывов на еду, Рассел с
друзьями играли не переставая. Для больше-
го удобства оно сделали то, что можно наз-
вать "дедушкой" современного джойстика. Не
прекращая игры, можно было встать со стула
и размять ноги, прохаживаясь по комнате с
панелькой из кнопок и переключателей в ру-
ках.
У хакеров сложилась своя этика. Все
программы, в том числе игры "Мышка в лаби-
ринте" и "Космические войны", считались
всеобщим достоянием. Копии программ сво-
бодно распространялись по неформальной ха-
керской сети по всей территории США. Никто
не был озабочен вопросом авторских прав,
поскольку коммврческой ценности программы
не представляли. Положение скоро перемени-
лось, на программах были нажиты огромные
состояния, вопрос авторских прав и пиратс-
тва встал очень остро. Но первоначальное
движение хакеров, людей беззаветно и бес-
корыстно увлеченных компьютерами, еще су-
ществует, хотя и заметно поредело, а слово
"хакер", с подачи продавцов программного
обеспечения, стало ругательным.
Other articles: