Эта ностальгическая заметка была написана мною несколько лет назад для другого моего сайта, ныне почившего. Тогда я, совершенно бесцельно блуждая по сети, наткнулся на довольно качественный эмулятор PDP-11 для Linux. И воспоминания молодости нахлынули на меня.
Свой рассказ я веду не от первого лица. Однако, нетрудно понять, что пишу здесь я именно о себе, тогда ещё молодом и амбициозном. О том, как тогда, 40 лет назад, это всё начиналось.
Расширять автоматизацию проектно-конструкторских и научно-исследовательских работ с применением электронно-вычислительной техники…
Основные направления экономического и социального развития СССР на 1981-1985 годы и на период до 1990 года.
Это сейчас персональный компьютер стал неотъемлемой частью рабочего окружения практически любого офисного работника. В 80-е годы прошлого столетия всё обстояло совсем не так.
В годы учёбы в вузе общение студентов с вычислительной техникой, если только их специальность не была связана с ЭВМ напрямую, было сведено к минимуму, даже почти к нулю. Работа же программиста расценивалась как, по крайней мере, волшебство, доступное только избранным. Тем не менее знакомиться с вычислительной техникой и программированием приходилось. В те годы в программу обучения была введена новая дисциплина — САПР (системы автоматизированного проектирования). Это было очень модное и перспективное направление, поощряемое партией и правительством. Само по себе оно (направление) было нужное и правильное, но внедрялось в СССР несколько насильственно. Людям, привыкшим к логарифмической линейке и только-только перешедшим на калькуляторы, принять и понять этот САПР было сложно. Но партия приказала — надо! А партия всегда говорила дело.
И с этим было не поспорить. Студентов начали активно знакомить с ЭВМ. С теми, что были в наличии в учебных заведениях. Это были и и армянская «Наири», само название которой вызывало у студентов улыбки, и невероятно крутая тогда БЭСМ-6, украинская «Проминь», и конечно же, самая современная на тот момент ЕС ЭВМ.
При более близком знакомстве улыбки на лицах учащихся сменялись грустью, а затем и тоской, грозившей перейти в тяжёлую депрессию. Как ни пытались преподаватели научить студентов писать хоть какие-нибудь, ну очень простенькие программки, ничего не получалось. Это объяснялось ещё и тем, что специалистов в этой области было немного. В основном программирование преподавали наспех обученные люди, сами мало понимающие суть этого дела. К счастью многих, большинство преподавателей сами понимали абсурдность этой ситуации, и, в конце семестра они были более, чем снисходительны к студенческому невежеству, большая часть студентов получали твёрдые четвёрки и пятёрки. Так или иначе, большинство выпускников непрофильных ВУЗов вспоминали впоследствии этот курс только в кошмарных снах, и клялись никогда больше даже близко не подходить к компьютеру. Тем более пытаться писать программы.
Однако, после окончания учебного заведения судьба часто забрасывала новоиспечённых инженеров в самые неожиданные места, например, в какой-нибудь НИИ. И, независимо от того, хотел молодой специалист заниматься наукой или нет, приходилось отрабатывать три года не там, где хочется, а там, куда пошлют.
А на новой работе коренные сотрудники, естественно, не хотели пучить себе мозги какими-то там компьютерами, предоставляя эту честь молодым специалистам. Было совсем обычным делом, когда новичку торжествующе вручали увесистую стопку бумаги с результатами каких-то испытаний и предлагали всё это дело обсчитать, ну, скажем, в течение пары ближайших недель. А в качестве инструмента выдавали, к примеру, новенький, в коробке, калькулятор «Электроника МК-46». И с некоторой долей ехидства. Потому, что этот программируемый микрокалькулятор имел весьма неприятную для многих особенность – обратную (польскую) запись. Привыкшие к традиционным калькуляторам научные работники решительно от него отказывались, не желая вникать в такие тонкости. Помимо всего прочего, он (калькулятор) занимал довольно много места на столе, а на столе научного сотрудника, кроме бумаг и калькулятора, в обязательном порядке должно было оставаться место для чашки с чаем и для тарелочки с пирожком. Так было надо.
И вот, когда растерянный и несчастный молодой специалист начинал таки свою работу, бывалые сотрудники, потягивая чаёк, со снисходительной улыбкой наблюдали за ним, ожидая увидеть, как он будет мучиться и страдать.
Но как ни странно, забракованный сотрудниками калькулятор оказывался очень даже неплох для проведения инженерных расчётов. Стремясь облегчить себе жизнь, неожиданно для всех, в том числе и для себя самого, после беглого прочтения инструкции, новичок вдруг умудрялся составить свою первую, довольно простенькую программку, не сразу, конечно. В целом ему это стоило двух или даже трёх 8-часовых рабочих дней. Быть может, даже недели. Но зато затем толстенная пачка результатов экспериментов бывала обработана за один единственный рабочий день! Или даже быстрее. И к немалому удивлению и разочарованию матёрых жрецов науки, включая и руководителя.
Проверив выборочно вычисления с помощью логарифмической линейки и не найдя ошибок, раздосадованный начальник, стремясь поставить на место выскочку-новичка, обычно поручал ему составлять алгоритмы на основании научных изысканий всего коллектива. За много лет. Алгоритмы эти в дальнейшем передавались программистам вычислительного центра, такие центры обязательно были как в любом НИИ, так и на многих предприятиях. Дипломированные программисты обычно ничего не смыслили в нормальных и касательных напряжениях, возникающих, к примеру, при обработке материалов давлением. А младшие и старшие научные сотрудники, в свою очередь, ничего не понимали в программировании. А посему быть посредником между первыми и вторыми торжественно поручалось чрезмерно шустрому молодому специалисту. Или даже нескольким, но возложив всю ответственность на наиболее наглого и гиперактивного.
Как уже говорилось выше, автоматизация и компьютеризация насаждалась в наших учреждениях и на предприятиях сверху, принудительно. От этого некуда было деваться. То, что директивы партии надо выполнять, понимали все. Но, как часто бывает при введении чего-то нового, многие, особенно уже опытные работники, всячески старались избегать этого нового. Если такая возможность была. А вот у молодых инженеров, только закончивших ВУЗ, такой возможности не было. И им, несмотря на данное когда-то обещание никогда не пытаться писать программы и даже не содействовать их написанию, приходилось браться за новое для себя и непростое дело. И получалось! Может быть, благодаря свойственному молодости авантюризму, но получалось!
Видя первые успехи новобранцев на этом поприще, прозорливое начальство спешило возглавить новое перспективное направление и поскорее отрапортовать о достижениях наверх. Не забывая лишний раз подчеркнуть свою руководящую роль.
От составления алгоритмов до написания программ — один шаг, правда, очень широкий шаг, но, тем не менее, его многие тогда делали. Те товарищи, которые языками программирования уже владели, посматривали на новичков снисходительно. Куда, мол, вам! И советовали читать учебник.
Проштудировав учебник, и толком ничего не поняв, молодой специалист всё-же, скорее от отчаяния, писал свою первую программу на Фортране. А что было делать? Начальство ждало новых успехов. С трясущимися коленями, он нёс листок с текстом своей выстраданной первой программы товарищу, опытному программисту. Программист, свысока взглянув на листок, долго и обидно смеялся, чем ещё больше вгонял в краску и без того сконфуженного молодого работника. Затем программист с деловым и очень серьёзным видом принимался вносить исправления. После того, как программа была исправлена, набита в редакторе и сохранена, программист гордо заявлял, что будет её (программу) компилировать. Услышав такое умное слово, наш молодой специалист с ещё большим трепетом взирал на человека, который так много знал. И свято веря, что у такого мастера заработает любая программа, он с почтением и восторгом смотрел на его действия.
Но очень часто случалось, что компилятор вдруг начинал выдавать ошибки буквально на каждой строчке программы. Снисходительная улыбка медленно сползала с лица мастера, он начинал лихорадочно листать руководство, процесс отладки сильно затягивался. Но через какое-то время программа всё же начинала работать. Вводились контрольные данные — результат получался достоверный. Ура! Этот скромный успех часто давал новичку хороший толчок для дальнейшего изучения программирования. А иногда — наоборот. Но начинающий программист делал для себя два немаловажных вывода:
- Оказывается, и настоящим программистам тоже свойственно ошибаться (Errare programmator est).
- Составлять программы не так уж и страшно. А главное — по силам и простым смертным.
Сейчас, когда у каждого офисного работника на столе стоит свой персональный компьютер, а то и два, странно слышать, что в начале 80-х компьютеры были далеко не во всяком подразделении. У кого-то были, у кого-то нет. И компьютеры были совершенно разные. Тут и полукалькулятор-полуЭВМ «Электроника Д3-28» с её примитивным Бейсиком, и довольно громоздкие «Электроника 60» или «Искра 226». Отделы побольше и посолиднее имели у себя СМ-2 или СМ-4. Вычислительные центры оснащались машинами ЕС ЭВМ.
У многих начинающим писателей программ не было своей вычислительной техники. Им, жаждущим новых знаний, приходилось эти свои программы писать под те ЭВМ, к которым у них был в тот момент доступ. Доступ этот иногда милостиво предоставляли обладатели вычислительной техники из других подразделений. Вроде, как в рамках взаимопомощи. Но, как только у новичка начинало что-то получаться, его под любым благовидным предлогом отлучали от вычислительной машины. Кто работал тогда “в науке”, тот знает, насколько ревностно относились там к успехам сослуживцев. И радовались их неудачам. Безмашинным специалистам приходилось осваивать много языков программирования и их диалектов. Конечно, исключительно в том объёме, которого требовала поставленная задача. Они никогда не успевали изучить ни систему, ни язык достаточно глубоко.
Но вот появились машинки ДВК или диалоговые вычислительные комплексы. Не то, чтобы они были первыми из себе подобных, нет. Просто в середине 80-х они стали более или менее доступны для предприятий и учреждений СССР. Именно – более или менее.
Завод в г. Зеленограде не мог удовлетворить всех желающих получить свой персональный ДВК. Компьютеры распределялись на уровне министерств и вожделенной «персоналки» приходилось ждать довольно долго. Часто полученный с таким трудом компьютер оказывался изначально неисправным, и на ремонт тоже уходило время.
Но все эти трудности казались несущественными на фоне тех перспектив, которые открывались перед счастливыми обладателями наших первых персональных компьютеров. Самое ценное было то, что ДВК были совместимы и по системе команд и по архитектуре с серией микро-ЭВМ PDP-11 компании DEC, очень популярной и прогрессивной на тот момент. Клоны PDP-11 были тогда очень широко распространены в Советском Союзе. Это были и упомянутые выше «Электроника-60», и СМ-4, а также другие микро и мини-ЭВМ.
И теперь можно было сосредоточиться на более глубоком и детальном изучении системы. ДВК были построены на 16-разрядных процессорах серии 1801BM с быстродействием до 500 тыс. операций в секунду, которые имели базовый набор команд PDP-11. Операционная система – однопользовательская реального времени ОС ДВК, представляла собой криво русифицированную RT-11. Как правило, она немедленно заменялась оригинальной.
RT-11 имела довольно примитивную плоскую файловую систему, всего 2 уровня: том и файл. Файлы были непрерывными, приходилось часто дефрагментировать диски. Название файла состояло из имени длиной до 6-ти символов и расширения из 3-х букв. Латинских. Но даже с такими недостатками RT-11 была очень хорошей, если не лучшей среди доступных тогда операционных систем. А главное, она была компактной (ничего лишнего) и эффективной.
Наверное, самым популярным в начале и середине 80-х был ДВК-2м. Он имел процессор КМ1801ВМ1 и оперативку целых 56К. Такой скромный объём оперативной памяти сейчас вызовет улыбку, но он считался достаточным. ДВК-2м был оснащён очень распространённым в СССР алфавитно-цифровым терминалом 15ИЭ-00-013. Он также имел сдвоенный 5-дюймовый (40 дорожек) накопитель на гибких магнитных дисках НГМД-6022. Большой прогресс после компакт-кассеты! Часто ДВК-2м комплектовались термопечатающими устройствами, которые требовали специальной бумаги. От них по возможности избавлялись в пользу матричных принтеров: польского DZM-180 или немецкого Robotron 1156. А Robotron 6329 считался верхом совершенства, на нём можно было печатать даже графику. Программы для ДВК писались опять же на Бейсике или на Паскале, уже полноценном языке программирования. Правда, сборка программ на Паскале требовала несколько больших усилий. Сначала была компиляция в промежуточный ассемблерный код, затем в объектный и компоновка. Но зато и возможностей Паскаль давал несоизмеримо больше. Когда же и Паскаля не хватало, на помощь приходил Макроассемблер.
Когда стали выпускаться моноблоки ДВК-3, стало возможно работать и с графикой. Наивно было бы думать, что ДВК-шки использовались исключительно в рабочих целях. Весь набор игр того времени в любой организации имелся и был опробован. Не в ущерб работе, конечно. И стараясь не привлекать внимания начальства. Но зато в таком времяпрепровождении были и плюсы. Наигравшись, в большинстве своём, тогдашние пользователи этих первых персоналок получали стойкий иммунитет против игромании. Это было, как переболеть в детстве ветрянкой. Даже полезно.
Сейчас в кармане штанов чуть ли не каждого школяра лежит смартфон. По своим возможностям он намногог превосходит целый вычислительный центр середины 80-х. Трудно поверить, что на столь примитивной машинке, как ДВК, с её 56К оперативки, можно было создавать вполне даже серьёзные вещи. Правда, и задачи тогда были куда скромнее!