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:
В этот день... 21 November