Lprint #10
10 июля 1997

                                          
                                          
(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:


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
News - Closing the Gate SPbZXNet <=> Internet. The new dial-up newspaper SPbZXWeek.
Feedback - contact the publisher.

В этот день...   21 November