Регистрация Вход
Город
Город
Город
Stepan-studio.ru

Stepan-studio.ru

Оригинальная музыка к спектаклям и мюзиклам. Качественная звукорежиссура и стильные аранжировки. Напишите: vk.com/stepan_studio или stepka68@gmail.com
Подробнее
TAGREE digital-агентство

TAGREE digital-агентство

Крутые сайты и веб-сервисы. Комплексное продвижение и поддержка проектов. Позвоните: +7-499-350-0730 или напишите нам: hi@tagree.ru.
Подробнее

Воспоминания советского еврея-программиста. Часть 3

010. Восьмидесятые. Мини-ЭВМ

Что такое мэйнфрейм на первый взгляд? Это большой зал, заставленный шкафами гудящего и стрекочущего оборудования. Это множество людей, снующих туда-сюда с распечатками, перфокартами, магнитными лентами и паяльниками. Большая ЭВМ, она – большая. А что такое мини-ЭВМ? То же, но в миниатюре: комнатка, стойка в две-три секции, рядом дисплей, иногда поодаль еще парочка экранов, принтер – чаще медленный матричный, но если даже быстрый барабанный, то не громадный, похожий на сервант, а небольшой такой, с постельную тумбу. И никаких тебе фальш-полов с кабельной разводкой и стационарных систем вентиляции-охлаждения – провода проброшены прямо по полу (да и много ли их – сетевые, к дисплеям да к принтеру), а в окно врезан комнатный кондиционер бакинского завода (впрочем, ясно что бакинского, других в Союзе просто не было). Большая ЭВМ впечатляет. Ее любили показывать в кинохронике – линейку лентоводов с бешено вращающимися магнитными лентами (кстати, в реальной работе такого дружного скоростного вращения достичь невозможно, поэтому в кино ленты вращаются в обратную сторону, т.е. перематываются к началу автономно, без взаимодействия с компьютером). А в сюжетах об умной машине обязательно трое-четверо очкариков в белых халатах напряженно пялятся в перфоленту, словно надеются вызнать из нее что-то сокровенное; под торжественное восклицание диктора «Задача пошла на счет!» кто-то нажимает на кнопку Reset, т.е. сбрасывает, вырубает компьютер, после чего аппаратный тест заставляет бойко мигать лампочки на инженерной панели (что как раз и нужно киношникам)... На мини-ЭВМ такую веселую лабуду не снимешь: лентопротяжек две (а то и одна) и это – миниатюрные устройства в стойке, крутят ленты они невыносимо медленно; диски тоже вставляются в выдвижные (прямо из стойки) ящики. Все по сравнению с мэйнфреймом беднее, меньше и видно, что дешевле. Последнее обстоятельство «еэски» и погубило: настоящими мэйнфреймами, одновременно обслуживающими сотни или хотя бы десятки пользователей, они стать не смогли, а обслужить двоих-троих с успехом могла относительно дешевая «эсэмка» или «электроника»…

Существенно полегчало снаряжение программиста. Когда приходилось тащить на себе диски, то это были не тяжеленные еэсовские, а куда более легкие и компактные дисковые кассеты. Из сумки исчезли перфокарты. Навсегда! Все мини-машины были оснащены дисплеями и бумажно-картонажные средства общения с компьютером ушли из нашей жизни. В стойке имелось для проформы устройство чтения перфоленты, но его практически не использовали. Конечно, запасы карт были немалые и они еще много лет применялись в быту – для записей, как закладки для книг, но на работе – наконец-то! – стали ненужны. Как и навыки чтения и «фиксания» лент и карт. Каким это стало облегчением, оценить может только тот, кто всласть намаялся с ними...

Правда, на несколько лет раньше появились дисплеи ЕС-7920. Но, во-первых, далеко не на всех машинах. А во-вторых, они не были полноценными системными консолями (я касаюсь этого в главе «ЕС ЭВМ – pro et contra»). Отечественные умельцы быстро разработали программы, позволявшие на нескольких экранах одновременно выполнять ограниченный набор операций, в основном – редактирование текстов, компиляцию и просмотр сообщений об ошибках. Помню две такие программы: Primus и DProcessor. Разработчики явно конкурировали друг с другом и каждый новый релиз включал все функции программы-соперника плюс еще что нибудь. И все-таки, возможности этих программ были ограниченны, они не могли заменить собой операционную систему разделения времени. Кроме того, постоянно приходилось мигрировать с одной машины на другую: только привыкнешь к сладкой жизни с дисплеями, как – бац оземь! – возвращаешься к перфокартам. Только мини-ЭВМ, где дисплеи были обязательным и единственным средством «ручного» ввода-вывода, как-то психологически зафиксировали переход в новый мир, где компьютер стал ассоциироваться с клавиатурой и экраном. Этот переход стал революцией! Производительность нашего труда выросла невероятно: за один день (или ночь) сидения за экраном можно было сделать больше работы, чем раньше за неделю. Лично для меня, правда, этот новый стиль работы был возвращением к хорошо забытому старому: десять лет назад я именно так работал на БЭСМ-6. Однако, мой случай не просто нетипичен, он крайне редок – я случайно попал в элитарный мир суперкомпьютеров и после того, как неслучайно из него выпал, больше никогда не видал живую БЭСМ...

С массовым внедрением мини-ЭВМ связано и явление, которое могло бы повлечь даже социальные последствия, если бы не случились аккурат в это время такие катаклизмы, что о компьютерных проблемках никто и не вспомнил. Я имею в виду «обезлюдивание» вычислительных центров. В машинном зале мэйнфрейма днем толклась уйма народу: операторы ЭВМ, немаленькая бригада электронщиков, программисты, работники эксплуатационных служб АСУ. Тут же цвел – щебетал и хихикал – целый цветник юных дев, операторов подготовки данных. А рядом сидели суровые тетки, ответственные за контроль информации, архивирование, системную поддержку. Вся эта армия была разбита на группы, сектора и отделы со своими начальниками, парторгами и профоргами... А теперь посмотрим, что делается на мини-машине. В машзале... пардон... в комнатушке уткнулись в экраны два программера да из-за стойки торчат ноги электронщика, который, как обычно, колдует там чего-то с паяльником. Все! А когда программеры написали наконец свои программы и их стали применять пользователи, то... ничего не изменилось: в комнатушке уткнулись в экраны два инженера-расчетчика или сметчика, а из-за стойки, по-прежнему, торчат ноги электронщика. И вся армия посредников между компьютером и конечным пользователем – не нужна! Не нужны милые девушки, что перфорируют исходные данные: пользователь собственноручно их вводит; не нужны суровые тетки контролеры-проверяльщики: интерактивная программа все проверит «на лету» и тут же – в процессе диалога – данные можно поправить. Архивирование сделает сам пользователь или тот же электронщик, его одного на одну машину – больше, чем нужно, вот и пусть еще ленты помотает, чай не перетрудится. С переходом на малые машины теряло смысл само понятие вычислительного центра как самостоятельной организационной структуры, как отдельного помещения (порой даже – отдельного здания), по напичканности всевозможным железом, по пожираемым киловаттам больше похожего на производственное, чем на конторское. Недаром мини-ЭВМ назывались средствами автоматизации уровня отделов, лабораторий, рабочих групп. Их можно было запросто поднять на нужный этаж, поставить в лаборатории, в закутке рядом с бухгалтерией. Можно было даже установить дисплей прямо на рабочее место, например, диспетчеру нефтебазы или сменному инженеру в цеху... Так что, с начала восьмидесятых над персоналом эксплуатационных служб АСУ стали сгущаться тучи...

В то время автоматизация держалась на триаде: программисты, электронщики, асушники. Первые крайне редко «принадлежали» предприятию, где внедрялась АСУ. Обычно они были работниками специализированных проектных или (когда проект особо сложен и/или престижен) научно-исследовательских институтов. Зато предприятию приходилось нанимать много электронщиков. Не от хорошей жизни – качество советских ЭВМ было таково, что требовался бесконечный, каждодневный ремонт... Профессия эксплуатационников восходит еще к докомпьютерной эре, к табуляторам, фактурным и счетно-перфорационным машинам. Мне приходилось в те годы встречать на вычислительных центрах ветеранов, начинавших в сороковые, когда кибернетику клеймили «продажной девкой империализма». (Естественно, к машиносчетным станциям ЦСУ и к расчетно-кассовым центрам Госбанка эти сексуально-философские претензии не относились). Но массовой профессия становится в семидесятые, по ходу массового внедрения ЕС ЭВМ и других компьютеров невоенного (не только военного) назначения. Именно тогда к ней приклеилось прозвище «асушник». А к восьмидесятым профессия достигает своего расцвета: успели выучиться и приобрести рабочий опыт выпускники факультетов автоматизации, сформировались организационно, сложились и устаканились коллективы на предприятиях, наконец, программисты успели понабивать себе шишек во всех местах, тоже понабраться опыта и сделать – запроектировать, отладить и внедрить эти самые АСУ. В начале десятилетия вся громадная (в масштабах страны) махина вертелась, наконец-то, почти без сбоев. И точно так, как всегда в жизни бывает, не успел наступить расцвет, как повеяло упадком. Не явно, разумеется. У программных систем довольно долгий жизненный цикл – лет десять; большинство проектов АСУ были как-раз развернуты к рубежу восьмидесятых и должны были экплуатироваться до начала девяностых. Так что, внешне почти ничего не менялось. Однако, самые прозорливые асушники чувствовали в мини-ЭВМ угрозу для себя. До саботажа дело не доходило, но по моему опыту, внедрение новых проектов на базе мини-машин на предприятиях, где уже были ЕС ЭВМ, проходило куда тяжелеее, чем «с чистого листа»... К концу десятилетия, к окончанию сроков эксплуатации и софта, и железа службы АСУ ждала структурная перестройка и незбежные сокращения. Но тем временем случилась «Перестройка», а вслед за нею сокращению подверглась вся советская экономика. Кто уж, когда останавливались заводы, вспоминал о каких-то АСУ... Однако, это будет еще нескоро, вернемся к началу десятилетия.

Бытует устойчивый миф, что до начала проекта ЕС в стране было де множество разных типов компьютеров, а после – унылое однообразие «еэсок», ну и еще может быть «эсэмок». Конечно, в действительности все не так. К восьмидесятым (а это, пожалуй, наивысшая точка развития советской компьютерной индустрии) разнообразие применяемых архитектур достигло апогея, намного обогнав «славные» шестидесятые. Просто упомянутые выше машины были «мэйнстримом» и многие из ностальгирующих не подозревали о существовании еще каких-то... Однако и я начну обзор мини-машин, с которыми пришлось иметь дело, с мэйнстрима, с так называемых «эсэмок»... Почему так называемых? Судите сами. Семейство СМ ЭВМ имело в своем составе машины пяти (!) абсолютно разных архитектур. С другой стороны то, что принято называть «эсэмкой», выпускалось только в Союзе под четырьмя (!) различными наименованиями: СМ-4 (1420 и ряд других моделей), Электроника-79 (и ряд других моделей), М-400, Наири-4. Добавьте еще польские Mera, венгерские TPA, болгарские ИЗОТ-1016. Все эти машины были совместимы между собой, поскольку являлись клонами PDP-11 компании Digital Equipment Corp. Тут не удержусь, чтоб не воскликнуть: легендарной архитектуры PDP-11 и легендарной компании DEC!

Менее всего программистам свойственны сентиментальность или восторженность. Уж не знаю почему, но типичный программер – это довольно-таки неприятный тип, иронично-насмешливый, язвительный до глумливости. Чтоб что-то похвалить, да еще в превосходных степенях... лучше удавиться. Но заведите с ним разговор о PDP-11 и вы услышите, как голос его теплеет. А ведь работал он даже не на самих PDP, а на кондовых советских клонах. В чем же дело? Эти машины были красивы! Не внешне, конечно. Красива, изящна, элегантна была их архитектура... хм... как объяснить красоту инженерного решения, не вдаваясь в технические детали? Оно было минимально, ортогонально и гомогенно. Главным инструментом дизайнеров была бритва Оккама: при богатстве возможностей – ничего сверх необходимого. Машины получились мощные, надежные, простые в изготовлении (даже советским монтажникам не удавалось их испортить), были на редкость неприхотливы и дуракоустойчивы. Первая модель была выпущена еще в 1970 году. К началу восьмидесятых, когда в Союзе развернули, наконец, их клонирование (да-да, опять десятилетнее отставание) семейство PDP-11 было признано хитом десятилетия, пользовалось заслуженной любовью программистов и имело колоссальный фонд программного обеспечения. Операционные системы производства DEC (а их на наше счастье не пытались «улучшить», а просто переименовали и перевели на русский документацию) отличались простотой использования, надежностью и элегантностью – все логично, ничего лишнего. Были компиляторы двух главных языков – ФОРТРАНа и КОБОЛа... И все-таки, для меня (как и для многих советских программистов) эти машины остались навсегда связаны с другой операционной системой и другим языком, оказавшими в последующие тридцать лет огромное влияние как (глобально) на IT-индустрию, так и (персонально) на мою профессиональную судьбу. Вместе с «эсэмками» появились в Союзе магнитные ленты с дистрибутивами операционной системы Unix и первыми компиляторами языка C. Однако, эта тема заслуживает, пожалуй, отдельного разговора...

Другим семейством машин, на которых пришлось изрядно потрудиться, были СМ-2 и ее многочисленные, также по-всякому именуемые родственницы (СМ-1, СМ-1210, М-7000, ТВСО). Прототипом их послужило почтенное семейство HP-2100 компании Hewlett-Packard, выпускавшееся 30 лет, с 1966 по 1996 годы. Где-то к середине семидесятых (опять это десятилетнее отставание!) в Союзе выпустили первый клон – М-6000. Эти машины были основой промышленной (т.е. на заводе, в цеху) автоматизации. В архитектуре машин не было особых красот и изысков, она была честно заточена под задачи управления технологическими процессами. Системная математика от HP (естественно, переименованная и с документацией по-русски) была такая, как нужно на заводе (или в танке): кондовая, простая, без «бубенчиков и свистулек», но – все работало. Из языков использовался ФОРТРАН и ассемблер. Машины эти были посложнее микроконтроллеров, но попроще тех микропроцессоров, что встраиваются сегодня в микроволновые печи. Никого особо не очаровывая красотой и элегантностью, эти неприхотливые скромные трудяги достойны искреннего уважения. Я где-то читал, что их более десяти тысяч было внедрено непосредственно в промышленности и в «оборонке», на честном автоматизированном управлении техпроцессами. Цифра для Союза – офонаренная! Однако, хотя эти машины и задействовались на самых «престижных» объектах (Олимпиада-80, Байконур), они не были «на слуху». Может дело в том, что разработчики сидели в Северодонецке – в провинции, на отшибе – и в столичной тусовке не засвечивались...

И eще одна провинциальная разработка – вильнюсские машины М-5000. Вот они, кажется, были оригинальной архитектуры. Во всяком случае, никогда не слышал об их прототипах. Выпускались они с начала семидесятых и шли на замену старому счетно-перфорационному оборудованию. Соответственно, машины были заточены под задачи статистики и бухгалтерские расчеты, а из языков (помимо ассемблера) имелся совершенно уместный для таких приложений КОБОЛ. Вот, кстати, пример естественной, нормальной судьбы инженерного решения – без великих взлетов, но и без провалов. Десятилетие спустя, когда пришел срок эти машины списывать, литовцы наладили выпуск двухпроцессорных комплексов СМ-1600. Это был клон PDP-11, но содержащий дополнительный блок – процессор, реализующий систему команд М-5000. Понятно, что в компании DEC понятия не имели о таком монстре: всю работу по программному сопряжению в единый комплекс двух разнородных архитектур сделали в Вильнюсе, и сделали очень грамотно. Процессор М-5000 был ведомым и активировался из основного процессора; дальше обе «машины» работали, разделяя общие ресурсы. Так по задумке разработчиков можно было безболезненно перебазировать на новую технику старые приложения «в двоичном виде», вообще их не меняя. А потом потихоньку, в процессе модернизации программ, переносить их на собственно «эсэмку», благо компилятор КОБОЛа там имелся... В конце концов, ставший ненужным блок М-5000 выключался, а то и выбрасывался из стойки, а СМ-1600 продолжала работать в однопроцессорном режиме... С этой машиной у меня связаны воспоминания о необычном, неожиданном комфорте – на грани сибаритства. Сколько себя помню (за вычетом службы оператором на «Минск-22»), всегда мотался по вычислительным центрам, приходя на арендуемое машинное время. Контора, где я работал, хоть и занималась автоматизацией с 50-х годов, но собственной ЭВМ никогда не имела. А тут вдруг подвернулся заказчик, который за плевый в общем-то проект – помощь в миграции с М-5000 на СМ-1600 – обещал выделить для работы одну «эсэмку» и потом она у нас останется. Проект слепили мигом (как я описал выше, все было уже сделано литовцами – знай, следуй их инструкциям), а потом блок сопроцессора вынули из стойки, докупили память и... стали наслаждаться оседлой жизнью: пришел на работу и никуда дальше не надо тебе бежать с лентами-дисками в рюкзаке, спустился на машинку – по кнопкам постучал, поднялся в офис – чаю попил. Красота!

Напоследок о машинах, на которых, правда, не работал, но имел, как говориться, «самые серьезные намерения»... Немногие знают, что были такие «еэски», которые совсем даже не «еэски», в смысле – ничего общего с архитектурой IBM/360. Это – ЕС-1010 и 1012. О том, как оказались в «едином семестве» ЕС ЭВМ эти «приемные дети», ходили легенды. Ну вот, как запомнилось, так и передам – за правдивость не отвечаю... Было в Союзе нехилое такое Министерство нефтегазовой промышленности, то самое, что стало впоследствии ОАО Газпром – тоже немаленькой такой компанией. Поскольку и в давние уже семидесятые годы нефть и газ так же кормили Советский Союз (в прямом смысле – канадской пшеничкой), как кормят сейчас Россию (в лице ее некоторых, особо достойных граждан), то Миннефтегаз мог позволить себе всякие прихоти, которые не сошли бы с рук какому иному министерству... И вот как-то так получилось, что применялись на предприятиях министерства французские мини-компьютеры Mitra компании CII, которая вскоре была поглощена знаменитой Honeywell-Bull. Почему именно эти машины (а были они не хуже, но и не лучше других) – история умалчивает. Скорее всего, получили их вместе с технологическим оборудованием, освоили, привыкли, а дальше... «от добра добра не ищут». Вскоре стали выпускать клоны французских машин на заводе Videoton в Венгрии, причем, не какие-то ворованные контрафактные копии, а все честнo, по лицензии. А происходило это в самый разгар «еэсовской» пиар-компании и, чтобы все были довольны, присвоили машинкам маркировку ЕС. Ну, хоть горшком назови – не убудет...

Теперь, каким боком тут наша контора. Не получая от родного министерства достаточно проектов и не имея гарантированного бюджетного финансирования, наше начальство хваталось за любую работу – платили бы гроши. Поэтому, мы могли вести проекты на громадных предприятиях, вроде Ингалинской АЭС или Николаевского НГЗ, и одновременно «окучивать» какую-нибудь нефтебазу в Жмеринке... Так вот, наш главный инженер вдруг ненароком задружился с важными перцами из Миннефтегаза и те обещали подкинуть проектики. Командировки в Западную Сибирь никого у нас не смущали – наоборот, прельщали северными надбавками (людей, побывавших в разных Эльбанах и Солнечных, не испугаешь Уренгоем). Нам была дана команда изучать машины и готовиться. Я честно поизучал – понравилось. Сходил в местный Институт газа, где они водились, попробовал по кнопкам поклацать – все вроде нормально. Обычный комплект языков – ФОРТРАН и КОБОЛ – в наличии имелся. И кроме того, очень воодушевляло, что в МГУ делали C-компилятор и портировали Unix, причем, должны были вот-вот закончить... Ну, что дальше? Дальше обычная история: слишком уж радостно предвкушали сладкие, жирные проекты от богатеньких буратин-газовщиков – по «закону зловредности» не могло не сорваться. Много, видать, было желающих откусить от газового пирога и наших не шибко пробивных и влиятельных командиров, как водится, оттерли. Ну что ж, не сложилось. Бывает...

011. Unix & C. Гамбургский счет

Любопытно, что вполне подцензурное советское искусство запечатлело в семидесятые-восьмидесятые годы довольно реалистичный образ советского учреждения. Если героические «Сталевары» варили сталь прямо на мхатовской сцене, а бригадиры-бетонщики горели на работе вместе с пламенными секретарями парткомов, то показать героическое трудовое горение счетовода в нарукавниках было слабó даже гениальным Ефремову и Товстоногову. Так что, неспешная, расслабленная, полусонная жизнь многочисленных НИИ, КБ, ПKTИ, всевозможных учетно-расчетных, контролирующе-регистрирующих, планирующе-администрирующих и совсем уж непонятно чем занимающихся контор была вроде бы как в порядке вещей. Конечно, когда имелся личный интерес, люди работали. В тех же НИИ очень даже упирались, делая диссертацию. Но после защиты можно было «выпасть в осадок». А на заводах и в «пусконаладках» вкалывали из-за хороших (сравнительно) денег – премий и прогрессивок. Но в том же заводоуправлении вполне можно было «припухать» десятилетиями. В целом же система не стимулировала труд: «как вы нам, якобы, платите – так мы вам, якобы, работаем». Впрочем, с оплатой-работой не все так просто...

Пожив достаточно долго на Западе, повидав повседневную жизнь в офисах больших корпораций и государственных ведомств, я уже не «качу бочку» на «самый передовой строй». Вероятно, оплачиваемое беловоротничковое безделье есть непременный и чем-то необходимый атрибут цивилизации... Но оставлю теоретизирование интеллектуалам. По моему скромному разумению, в разумно устроенном обществе у человека есть выбор: гужеваться ли ему на привязи в уютном офисе клерком (с перспективой выбиться в столоначальники) или идти в неуютный, даже жестокий мир бизнеса, где у него будет полная свобода совершать свои собственные ошибки под свою собственною ответственность. В Союзе последняя альтернатива отсутствовала, а взамен ее были три возможности, три дороги. Первая и самая исхоженная, столбовая – водка. Недаром по-русски говорится «уйти в запой». Сколько вот так ушло коллег, знакомых, соучеников, начиная еще со студенческих лет, причем, как назло – талантливых, умных, честных... Не сосчитать. Когда-то читал оправдывающее русское пьянство научное изыскание о генетической, дескать, предрасположенности северных народов к алкоголю. Будучи народом южным, я по этой дороге не пошел. А припустил по кривой и ухабистой тропке «заколачивания бабок». Естественное, обыкновенное вроде желание заработать (не украсть), настолько оно было противно естеству и обыкновению советского жизнеустройства, что носитель оного автоматически превращался если не в преступника, то в субъекта асоциального, уж точно. Сколько лет я работал на двух работах по двум трудовым книжкам, столько ходил, что называется, «по лезвию ножа». В конце концов, когда запахло серьезными неприятностями (и за что?) – бросил. Пошел в промавтоматику. И опять не ладно. Опять приходилось изворачиваться, хитрить, химичить с липовыми нарядами и фальшивыми командировками. И все это, чтобы просто получить свои честно заработанные (да и не ахти какие) деньги. Противно. К тому же, очень уж тяжело эти деньги давались – в ущерб семье, отдыху, чтению, в ущерб профессиональному росту. Поэтому, нет-нет, да и поглядывал я не без зависти на избравших третий путь – «удовлетворение личного любопытства за казенный счет»...

Все-таки забавная была в Союзе система. Зряплата почти не коррелировала с работой. Но за зряшные эти деньги можно было либо дурака валять, либо находить себе занятие по вкусу. Сейчас кажется невероятным, что инженер в ранге главспеца или главного конструктора проекта (не бог весть что – беспартийных евреев на эти должности пускали), при вполне умеренной ловкости мог выбить финансирование себе и своей маленькой группе под тему, какую только его левая пятка желала. Действительно, в какой институт, в какую лабораторию не зайдешь – обязательно там кто-то пишет свою базу данных, компилятор или систему документирования. Сколько оригинальных разработок сделано было в непрофильных НИИ и КБ, а то и вообще – в вычислительном центре при каком-нибудь строительно-монтажном тресте. Разумеется, до рынка ни одна из этих поделок не дошла, ввиду отсутствия оного (рынка то есть). Но красивых, оригинальных, интересных идей, порой даже предвосхищавших западные решения, было предостаточно. А поскольку самого понятия «коммерческий успех» не существовало, определяющим фактором «успеха» советского научного работника, инженера и программиста был «гамбургский счет» – его репутация в кругу коллег.

У меня еще в те годы закрадывалось подозрение, что Совья Властьевна все это прекрасно понимала и сознательно давала возможность технической интеллигенции резвиться на рабочем месте как заблагорассудится – лишь бы в политику, в диссидентство не лезли. Разумеется, я говорю о вегетерианском периоде советской истории, об относительно сытых семидесятых и восьмидесятых, когда вся страна сидела на халявной нефтегазовой игле и – по большому счету – ни хрена не делала. Народ пьянствовал, подворовывал тихонько. Ну, так чего бы не дать интеллигентикам безобидной ученой дурью помаяться?.. Вот так же помаяться увлекательной дурью, но чтоб не бесплатно, а в рабочее время – и мне хотелось. Но как? Кафедры и НИИ были надежно для меня закрыты. Надо было устраиваться на месте, благо возможность такая имелась: контора отчаянно нуждалась в проектах; добудь хоть-какой для своей бригады – тебя не просто одобрят, на руках будут носить. Так-так, а я регулярно ездил в Госплан – сопровождал (в качестве свиты) нашего главного инженера. Ну и завязывал там полезные знакомства, искал удобного случая. И он представился, случай под названием Unix... Но, по порядку...

Впервые о языке C, о системе Unix я прочитал еще в семидесятые... Пользуясь семейным блатом в ГРНТБ (республиканской научно-технической библиотеке), я имел доступ к журналам, которые переводились на русский или реферировались, т.е. считались благонадежными и были всего лишь «для служебного пользования». Каковое пользование заключалось в том, что они в пятницу вечером уносились в сумке из библиотеки, а в понедельник утром благополучно туда возвращались. Так я лет пятнадцать читал Electronics Weekly и Acta Informatica... Но то были рассказы о чем-то далеком и недоступном. Как вдруг, году эдак в 81-м, сразу во многих местах появились магнитные ленты с дистрибутивами Unix v6 и v7. Откуда? Переписали у знакомых, те – у своих знакомых... далее – везде... Система преспокойно запускалась на СМ-4 (игнорируя, естественно, русский язык), а дистрибутивы содержали исходные тексты ядра, компиляторов, утилит, а также полную документацию. Конечно, требовалась русификация драйверов дисплеев и принтеров и «обучение русскому языку» многочисленных программ обработки текстов. Но это все были вполне посильные задачи, главное же – система изначально была вполне работоспособной...

Удивительного в самом факте появления лент мало: в Союз попадала математика от IBM, DEC и HP, теперь вот попали разработки Bell Labs – большое дело! Удивительна была дальнейшая судьба этих лент в Союзе. Не передача (под большим секретом) в пару-тройку институтов, чтобы там на их основе с понтом якобы разрабатывать якобы советскую математику, но бесконтрольное и явно несанкционированное распространение по разным ВЦ в разных городах страны. Похоже, что ленты привезены были в Союз не доблестными героями из «конторы глубинного бурения», а аспирантами-докторантами, выезжавшими по обмену на стажировку в западные университеты (где дистрибутивы Unix распространялись свободно и бесплатно). Конечно, людям вроде меня, бывшим долгие годы невыездными, в это верится с трудом. Когда мне разрешили, наконец, навестить родственников в Польше, я всерьез трясся, что на границе не пропустят купленные там книжки Лема. К счастью, пропустили. Однако помню, как в том же вагоне погранцы повязали старика-поляка. Они когда шли по вагону, то громкой скороговоркой возглашали: «оружие-наркотики-религиозные атрибуты». Это что запрещено, дескать, ко ввозу. Именно так, через тире: оружие – иконки – наркотики... И вот старика обшмонали и обнаружили дешевенькую литографическую бумажную иконку. Старик – явно сельский житель из галицийской глубинки – путая от волнения украинские и польские слова, сбивчиво пытался объяснить, что его старуха больная, он ей везет освященный образок Матки Боски Ченстоховой, только ей, больше никому даже показывать не будет. А когда иконку забрали – заплакал, попытался бухнуться на колени, лопотал, что у старухи рак, она умирает, он только за этим образком в Польшу и ездил... Погранцы увели его и никто в битком набитом вагоне за старика не заступился. И я молчал – такой же трусливый раб, как все, только что с фигой в кармане... Так вот, тогда у меня и в мыслях не могло возникнуть тащить через границу магнитную ленту. Но... это пуганый воробей стреляную ворону боится. А вот знакомый поляк, учившийся в заочной аспирантуре в Киеве, постоянно мотался туда-сюда и именно с лентами. Вряд ли на границе проверяли, где материалы его личной диссертации, а где что-то другое. Да и люди, выезжавшие на Запад на стажировку – хоть и мало таких, но были (даже среди авторов «Заметок» есть) – с хорошими анкетами, непуганые... Так что, по здравому размышлению, версия о привозе в Союз этих лент в порядке частной инициативы выглядит вполне реалистичной.

Другая версия – еще (сюр)реалистичней: через знаменитый рыболовецкий колхоз имени В. И. Ленина, что на острове Сааремаа (вот написал и засомневался: Ленина ли или какого другого краснопузого ублюдка калибром помельче?.. но, не суть важно). Сведущие люди не удивятся и не спросят, а какое это отношение имели эстонские рыбаки к операционным системам и вообще – к компьютерам. Те же, кто не в курсе, могут погуглить "Datasaab affair" – это будет предыстория. Что до самой истории, то позднее мне довелось познакомиться с этими славными колхозниками, о чем расскажу в свое время. На прямой вопрос об их причастности к "Unix affair" я получил довольно уклончивый ответ. Что, как говориться, наводит на...

Ну ладно, так или иначе ленты в страну попали, а дальше... А дальше сработала та Unix-магия, которая очаровывала всякого, кто начинал знакомиться с системой. И которая за считанные годы принесла сугубо исследовательскому, любопытства ради затеянному, некоммерческому проекту феноменальную популярность по всему свету... Хм... тут, чувствую, необходимо сделать некое предуведомление. До сих пор я рассказывал о делах давно минувших, о компьютерах, сохранившихся разве что в музеях, о программах и языках, если и доживших до наших дней, то доживающих где-то в укромных уголках, вдали от столбовых дорог. Unix же сегодня – это даже не одна конкретная система, а целый континент, целая техническая цивилизация со своей сорокалетней историей, что и по меркам человеческой жизни много, а в масштабе спрессованного времени IT-мира соответствует столетиям, эпохам. Это определенная философия, стиль, комплеск идей, определивших облик современной IT-индустрии. Наконец, это весомый сегмент рынка, многомиллиардные активы. Что же до языка C, то он и его потомки (C++, Objective-C, Java, C#) составляют мэйнстрим, доминанту современного программирования... и трудно сыскать язык, созданный в последнюю четверть века и не испытавший его влияния. А для большинства активно работающих программистов (тридцати- и сорокалетних) нынешний мир – единственный, другой они не застали. Я же пытаюсь рассказать о том другом, исчезнувшем мире. О далеких предках могущественных фамилий Unix и C, передавших потомкам свои имена и родовые черты, но отличавшихся от них, нынешних, поведением и мотивацией, привычками и идеалами – очень, очень многим... Тогда в начале восьмидесятых в Союзе мы имели технику семидесятых годов (неизбывное технологическое отставание) и версии Unix нам были доступны из предыдущего десятилетия (не потому даже, что более современные не удалось спереть на Западе, а попросту не было машин, где б они могли работать). Итак, если вдруг кто-то из молодых коллег будет читать этот текст, пусть примет во внимание временнóй фактор: речь идет о первом десятилетии сорокалетней истории. Это все равно как первое столетие четырехвековой истории Нью-Йорка – безлюдные лесные чащобы Манхэттэна, крошечное поселение на побережье и... все еще впереди...

Так чем очаровывал Unix? Прежде всего, языком C, на котором был написан. Долгожданным языком программирования для программистов. Стоп! А другие языки, тот же ФОРТРАН или КОБОЛ, они для кого? Да, для нас, конечно, для кого ж еще. Но только эти языки были заточены под решение тех или иных прикладных задач – инженерно-расчетных или бухгалтерско-учетных, а вот как быть с задачами неприкладными? Они как невидимая часть айсберга – неприметная громадина, с которой пользователь напрямую не соприкасается: операционные системы и базы данных, компиляторы тех же языков программирование, утилиты, драйверы устройств и и еще тысячи всяких разных программ, сервисов, библиотек функций и т.д. и т.п. И все это нам надо программировать. На чем? Нынче и вопроса такого не возникает, но ведь было время, когда в ответ звучало: «на ассемблере» – на низкоуревневом машинном языке. Или же на языках вроде ФОРТРАНа или ПЛ/1 – чересчур высокоуревневых. Гений дизайнера (Денниса Ритчи) как раз и проявился в безошибочном выборе уровня языка, уровня абстракции – достаточно близкого к «железу», чтоб обеспечить эффективность и достаточно далекого от него, чтоб не утратить мобильность... А еще язык был как-то очень ладно скроен, явственно ощущалось, что запроектировал его человек, знаюший ремесло программера не понаслышке. Короче говоря, прочитав с восторгом описание языка (тут еще сыграла свою роль изумительная книга Кернигана и Ритчи, недаром называемая «the White Bible» и по праву считающаяся шедевром технической прозы) и написав пару-тройку программок я уже ни на каких других языках работать не хотел. (Но всему свое время: уже лет пятнадцать, как я на нем не работаю и... не хочу – на C++ или C# куда как удобней)...

Сама же система Unix привлекала своей компактностью, обозримостью, концептуальной стройностью, легкостью. Она изначально задумывалась и создавалась как антитеза тяжеловесным, многофункциональным, переусложненным, труднопостижимым, внушающим почтительный ужас разработкам огромных коллективов, что было характерно для эпохи мэйнфреймов. Квинтэссенция, яркий зримый образ этих чудищ нарисован в замечательной книге руководителя разработки системы OS/360 Фредерика Брукса «Мифический человеко-месяц» (“The Mythical Man-Month” by Frederick Brooks) – асфальтовая топь, зыбучая смоляная трясина, неумолимо затягивающая попавших в нее динозавров. В книге убедительно показано, каких чудовищных усилий и денег стоит разработка больших систем, достижение должного уровня качества и надежности. Создатели Unix участвовали в разработке операционной системы Multics, само название которой (Multiplexed Information and Computing Service) недвусмысленно указывало на сложность, множественность исполняемых функций. Устав барахтаться в смоляной яме «отцы-основатели» Кен Томпсон и Деннис Ритчи принялись делать простую и понятную систему, которую они с явным вызовом поначалу назвали Unics, т.е. “uniplexed” по контрасту с “multiplexed”. (Забавно, что пресловутый монстр Multics выглядит предельно компактным и простым до примитивности на фоне современных операционных систем, потомков Unix).

В своей книге Брукс вспоминает излюбленные журналистами сказания о том, как дескать пара энтузиастов склепала на коленке в гараже замечательную программу, оказавшуюся лучше корпоративных разработок с многомиллионными бюджетами. Многоопытный менеджер проекта с понятным сарказмом вопрошает, почему же дуэты одержимых парней из гаражей не заменили собой софтверные компании? А ведь правда – не заменили. Но и пресловутые гаражные дуэты – не выдумка: Билл Хьюлетт и Дэйв Паккард, Билл Гейтс и Пол Аллен, Стив Джобс и Стив Возняк, из совсем недавних – Ларри Пейдж и Сергей Брин. Они – больше, чем правда: «двое в гараже» – архетип современного мифа. А разгадка кажущегося противоречия в том, что в гаражах начинают, но успешное начинание успешно продолжаться может только в офисе... Unix, созданный хоть и не в гараже, но небольшой группой исследователей, тоже стал мифом, а точнее – жертвой на алтаре собственного культа.

К концу семидесятых Unix являл собой идеальную систему для университетов и исследовательских лабораторий, т.е. для групп энтузиастов. Он был ясен и прозрачен, поскольку реализовывал только «самые вкусные», концептуально важные идеи. По сути, это был замечательный набор инструментов и заготовок для творческого применения при самостоятельном построении операционной среды. Дополнительным плюсом было то, что помимо великолепно написанных программ имелась не менее великолепно написанная документация. Впрочем, тексты эти грех называть казенным словом «документация». Чего стоила только «Книга Джона Лайонса» (“Lions' Commentary on Unix” by John Lions), которая объясняла функционирование ядра системы «в лицах», комментируя работу его модулей и служб – совершенно уникальное, бесценное пособие... Так, а чего же в системе не было? Не было ничего даже отдаленно напоминающего интуитивно-понятный «дружественный» интерфейс. Система предназначалась искушенным профи, а никак не лопуховатым ламерам, и принципиально не «обихаживала» пользователя. Что еще? Вот я упомянул раньше, что не было поддержки русского языка. Так никакого языка, ничегошеньки, кроме базовой (английской) латиницы и неявной локализации для Соединенных Штатов. Предполагалось, что если понадобится французу, японцу или русскому поддержать родной язык, то он изучит исходный код, да и наточит систему соответствующим образом. А если у кого-то на машине стоит устройство, которого не стояло у разработчиков в Bell Labs (и посему нет в поставке), то пускай возьмет и сам напишет драйвер устройства. Ну, а если захочется перенести систему на другую машинную архитектуру, то... все открыто, изучай, пиши C-компилятор (даже не весь, а только кодогенератор – модуль, где сконцентрирована машинная специфика), потом меняй машинно-зависимые модули ядра системы и... вперед. Непростая, но страшно интересная задача.

Итак, Unix был по сути типичным удачным исследовательским проектом. Только – очень удачным. Настолько удачным, что распространение его напоминало пандемию (чему изрядно поспоспешествовали дешевизна и либерализм лицензий). Естественно, не могло не возникнуть желание подзаработать на столь популярной штуковине и... дальше, в восьмидесятые годы, начинается уже другая история: выпуск множества коммерческих версий, череда покупок и перекупок лицензионных прав, бесконечные судебные тяжбы, появление альтернативных ядер (Minix, Linux), в девяностые – дурацкая быдловатая «юниксомания», круто замешанная на завистливой «гейтсофобии»... Все это общеизвестно и совсем неинтересно. На авансцену вышли торговцы, юристы и пиарщики, а симпатичные бородачи – создатели системы – тихонько отошли в тень и, поскольку слово “Unix” стало товаром, продолжили свои исследования под другой вывеской – Plan 9...

Ход событий в Союзе соответствует общему тренду: сначала хаотичное увлеченное «освоение» новой игрушки; потом постепенно выкристализовываются центры, где адаптацией и локализацией начинают заниматься всерьез – ИНЭУМ, Курчатовский институт, ИПК Минавтопрома – и выпускают, наконец, три конкурирующие локализованные версии для советских клонов PDP-11 – ИНМОС, ДЕМОС, МНОС, соответственно (расшифровка аббревиатур: «инструментальная мобильная», «диалоговая единая мобильная», «машинно-независимая» операционная система). Особняком, слегка на отшибе держались те, кто реализовывал Unix на машинах не самых массовых и популярных. Я упоминал уже команду из МГУ, сделавшую реализацию на ЕС-1010 и 1012, причем, написавшую с чистого листа C-компилятор и ядро ОС (насколько я знаю, на французские прототипы этих машин, Mitra-15 и 225, Unix так и не был портирован). В другой команде, ухитрившейся засунуть Unix в «советский Wang», легендарную «ядерно-бухгалтерскую» машину Искра-226 (о, это было не просто!), довелось участвовать автору этих строк. Но это отдельная история...

012. Unix и Искра. Начало

В начале восьмидесятых мне приходилось достаточно часто ездить в Госплан, сопровождая главного инженера. Причина, по которой незнатная провинциальная контора привлекалась к госплановским экспертизам крылась как раз в нашей репутации технически грамотных, но недалеких и неискушенных провинциалов – объективность отчета гарантировалась тем, что уж кто-кто, но мы точно не принадлежим ни к одному из могущественных московских кланов, отчаянная грызня которых замещала отсутствующую рыночную конкуренцию... Так вот, там я подружился... не подружился... ну, скажем – сошелся с одним чиновником отдела вычислительной техники. Александр Александрович был лишь чуть старше меня, но занимал позицию референта начальника отдела (каковой, если не ошибаюсь в советской табели о рангах, был в стране как-бы главный бугор по компьютерам). И вот, пока его босс слушал доклады моего босса, мы болтали о всяких интересных новинках, о «юниксе» в том числе. Александр Александрович еще не забурел на чиновничей должности, напротив, живо всем интересовался и несколько жеманно сокрушался, что злая судьбина забросила его в такое унылое, безотрадное место, как Госплан СССР... И вот как-то раз он поделился головной болью. В Госплане издавна использовались машины Wang 2200. В конце семидесятых при очередном приступе шпиономании (старая советская паранойя о «жучках» в импортных компьютерах) ЦК принял решение о замене их безопасными отечественными аналогами. Прошло несколько лет, машины сделали, но приступ к тому времени поутих и в Госплане эту «советскую гадость» — его аж передернуло от отвращения, — ставить не будут, но выпускать – таки да, будут. Уже вовсю клепают. — Ну, и в чем проблема? — А в том, что машину сделали полностью программно-совместимой с «вангом», т.е. из языков там наличествует только интерпретатор Бейсика. Для всяких расчетно-бухгалтерских задач другого и не надо, но есть пользователи, что требуют шустрой работы, Бейсик их сильно тормозит. И это влиятельные люди, их не «пошлешь». — Так «юникс» туда поставить! — Вот-вот, только никто не хочет браться. Разработчики машины свое дело сделали и уже вовсю дырочки в пиджаках буравят (Александр Александрович оказался пророком – невдолге получили мужики Госпремию), так что оно им не интересно, а в Москве никто не будет за питерскими подтирать, тем более перспектив ноль – за голую зарплату. — А мы бы взялись за зарплату — говорю. — Да? И почем? — Ну... группа из четырех разработчиков... это — обмирая от собственной наглости, — тысяч пятнадцать... — и бровью не повел! — плюс административные расходы... двадцать... и машину. — Короче, для круглого счета, тридцать тыщ в год, два-три года, — подытожил Александр Александрович, — это даром. В Москве за такие копейки разве что обзор литературы сделают. А справитесь? — Да кто ж его знает, — я совсем оборзел, — будем стараться изо всех сил. Вы сами говорите, что даром. А вдруг выгорит. Если нет, обзор литературы напишем. — А какой вам интерес? — Интерес простой. Вот мне светит на следующий год химкомбинат в Балаково или объединение «Азот» в Новомосковске – одна гадость гаже другой: сидеть там безвылазно в вонючем цеху. Или же дома в Киеве делать интересную работу и в Москву в командировки ездить, в театры ходить. — Хм... А что – хорошая мысль... Ну вот, скоро в заседании перерыв, давайте-ка своим боссам эту идею в головы вложим. А вдруг и впрямь выгорит.

Меня еще отец учил: хочешь чего-то добиться, преподнеси идею начальству так, чтоб оно считало ее своей. За обедом я главного обработал. Впрочем, много времени не понадобилось – мужик он был хваткий, на лету подметки рвал и уже за десертом вовсю мне растолковывал плюсы своей идеи, которую (если выгорит) мне предстоит реализовывать. Хитрый аппаратный лис Александр Александрович в советах как обрабатывать начальство, разумеется, не нуждался. Так что после обеда оба они были званы в высокий кабинет, откуда Александр Александрович вышел уже с одобренными цифрами (наш главный инженер – по всему видать – показал высокий класс выцыганивания денег и годовой бюджет проекта подрос до 50 тысяч). Я сел за пишмашинку и мы в четыре руки до конца заседания коллегии подготовили задание на разработку «унифицированного инструментального комплекса для персональной клавишной ЭВМ Искра-226», сокращенно «Уникс-226» (и никакой тебе подозрительной иностранщины, типа “Unix” и близко нет – все чисто), договор с календарным планом и всеми прочими бумагами, которые сразу же и подписали... В тот день из Госплана мы не вышли, а на крыльях вылетели. Дальше обязательная пробежка по магазинам (что бы ни было по работе, но каждый из нас, невзирая на должность, был обязан, возвращаясь из Москвы, закупить лимоны, апельсины и прочее по списку) и вот, наконец, мы в вагоне. Чем хороша поездка с начальством – в спальном вагоне (СВ). Сели и тут шеф достает из саквояжа бутылку армянского коньяка, икорку, другую вкусную закусь. Когда успел затариться, ведь по магазинам мы вместе гоняли, да и не купишь такое в магазине? Не иначе, как в госплановских закромах. Но, не важно откуда добыл, приятно (не скрою), что «проставился». Этот вечер мы славно провели, обсуждая будущий проект, «уговорили» коньячок под стук колес... А наутро, в Киеве начались трудовые будни.

Даже с госплановским нарядом на руках машину пришлось «выбивать» на заводе «Счетмаш» почти полгода. Но время не было потеряно: я смотался в Курск с грозным предписанием об оказании всяческого содействия и привез полный комплект документации на машину – еле допер. Съездил также на ЛЭМЗ, к разработчикам (кстати, не удивительно разве, что дизайн компьютера делали на Ленинградском электро-механическом заводе; и это при наличии ИНЭУМ, ИПИАН, ИТМиВТ, НИИУВМ, НИЦЭВТ, НИИЭВМ, НПО НЦ, ИПУ и прочих грандов советского комьютеризма). Питерцы, в отличие от курян, приняли меня радушно и госплановская пайцза не понадобилась: мужики они оказались доброжелательные (никакой угрозы в конкурентно-карьерном плане мы для них не представляли), дали полные архитектурные спецификации на машину, листинги «прошивок» микропрограмм и их собственный инструментальный стенд, с помощью которого был сделан интерпретатор Бэйсика – он включал ассемблер и отладчик. (Тут надо бы пояснить, что Искра-226 позиционировалась как высокоуровневый Бейсик-компьютер и никаких средств программирования на машинном языке, никаких сведений об архитектуре машины пользователю не предоставлялось. Этот вакуум информации породил совершенно дикие домыслы об ее устройстве).

Итак, не дожидаясь появления машины мы слепили пока программный эмулятор процессора и начали работу по компилятору... Впрочем, не буду нагружать читателя подробностями что, как и в какой последовательности делалось – сейчас это уже никому не интересно. Сразу подытожу: за два года мы справились с поставленной задачей и «выкатили» систему; еще год ушел на всякие доделки и оптимизацию, а также на поддержку телекоммуникации, машинной графики и высокоточной арифметики... Все эти три года жизнь у нас была просто райская. То есть, пахать приходилось ого-го как, но зато время в командировках скукожилось с шести-восьми месяцев в году до вполне приемлемых шести-восьми недель. А то ведь я в собственном доме появлялся как гость, командировочный рюкзак даже не распаковывался никогда. Полностью избавиться от других проектов и поездок на заводы не удалось, но то, что осталось, можно было терпеть. А поездки в Москву так были просто удовольствием. И не только из-за театров...

Совершенно вылетело из памяти как я впервые попал в Институт повышения квалификации Минавтопрома. Помню, что приехал туда докладывать о нашей работе – там регулярно проводились семинары по «юниксизации». Но ведь не с улицы я к ним зашел, на участие в семинаре надо было получить приглашение, тем более на доклад. Не помню – отшибло начисто. Не исключено, что все тот же Александр Александрович меня туда порекомендовал... Что помню, так это долгое, томительное сидение в жарко натопленной, душной аудитории (была зима) и отчаянную борьбу с дремотой. В научном мире, как я понимаю, свои правила игры – аспиранты и кандидаты должны были «набирать очки», участвуя в разных конференциях. Наверное поэтому программа семинара чего только не содержала, имеющего весьма отдаленное отношение к Unix: и какое-то оптимальное агрегирование многомашинных комплексов, и опыт реализации транслятора языка Алгол-68 на ЕС (это я как раз послушал), и совсем заоблачные доказательства чего-то там в реляционных алгебрах... Мое сообщение было самым последним и я измаялся, пока дождался. Посему, выйдя к доске, поступил крайне нестандартно: раздал заранее отпечатанные листки с координатами-телефонами и сказал, что тема выступления хорошо если интересна двоим-троим из всех присутствующих, а посему мучать вас не стану – идите себе с миром, а я отвечу на вопросы оставшихся, если таковые будут. Народ радостно ломанулся на выход и остались аккурат три человека. Один сказал: «А чего нам тут сидеть в духоте, пойдем на машину, там у нас и чайничек есть» — «В гермозоне?» — «Ну, а где ж ему еще быть?» Сразу стало легко и приятно: свои люди... Так я познакомился с заведующим кафедрой прикладной математики и вычислительной техники Михаилом Изгияевичем Давидовым и его замечательной командой – «птенцами гнезда Давидова», как они себя называли.

Если приложимо к еврею определение «крестный отец», то Михаил Давидов был крестным отцом советского «юниксизма». В ИПК, на его кафедре образовался своего рода неформальный клуб, где собирались люди, интересующиеся Unix и что-то делающие в этой области. Люди очень несхожие, весьма амбициозные и совсем не «стайные», к тому же – работавшие в разных, порой относящихся к враждующим кланам, организациях. Собрать вместе стаю котов – это мало кому удается, а если и удалось – долго не длится. Давидову удалось. Сказалось его великое терпение и мастерство медиатора. Также сыграло свою роль, что сам он недвусмысленно отказался от личных амбиций разработчика (их собственный проект МНОС вскорости влился в «курчатовский» ДЕМОС), продолжая при этом – единственный известный мне завкафедрой – активно помногу программировать и исподволь направлять своих талантливых мальчиков. Он позиционировал ИПК, как место подготовки специалистов по Unix, место проведения формальных конференций и неформальных встреч – не для обязывающей координации работ (все равны, никто никем не управляет), но для «сверки часов», оценки твоих достижений коллегами по строгому «гамбургскому счету»...

А вот что Давидов таки да координировал, так это совместную, общими усилиями подготовку Unix-документации на русском языке. Здесь и нам удалось положить свои пять копеек в общую копилку... С самого начала в наш проект была заложена денежка на перевод «зарубежных информационных материалов». Мне удалось втравить в это дело блистательного киевского переводчика – Леонида Бурштейна, который к тому же работал программистом (технические переводы были тогда чуть ли не единственным легальным способом дополнительно подзаработать) и в процессе перевода сам здорово увлекся «юниксом», т.е. переводил текст, не только великолепно владея языком (как английским, так и русским), но и понимая профессионально предмет изложения – идеальный случай! Мог бы сразу вносить текст в компьютер, но правила бюро переводов требовали печати на пишмашинке со вписыванием английских слов ручкой. Потом эти переводы в количестве одного экземпляра депонировались в ГРНТБ и никто б их никогда не увидел, если бы второй экземпляр я не привозил на время в ИПК. Там на курсах по «юниксу» курсанты (для получения зачета) вводили в машину энное количество страниц документации, вычитывали и проверяли введенное сокурсниками. Таким вот способом стали общедоступны на русском языке “UNIX Programmer's Manual” шестой и седьмой редакций (это три огромных фолианта) плюс дюжины три отдельных немаленьких книжек с описаниями программ и языков (lex, yacc, awk, sed, ratfor, и многих других). Тексты эти разошлись на магнитных лентах по всей стране, а с появлением рунета – появились на множестве сайтов, и нигде не фигурировало имя переводчика. Восстанавливая справедливость называю его: Леонид Бурштейн.

Разумеется, все тексты, подготовленные участниками клуба, были доступны всем участникам клуба. Так, через короткое время по-русски можно было прочесть и «Язык программирования Си» Кернигана и Ритчи, и «Руководство по операционной системе UNIX» Готье, и множество описаний как системы, так и всевозможного софта, на ней работающего. Появились и первые оригинальные (непереводные) учебники по C и Unix пера (точнее, клавиатуры) того же Давидова. Никогда ранее, при «официальной» адаптации западных систем, у программистов не было столь качественной и полной документации и сопутствующих книг (об авторском праве и роялти, конечно, никто тогда не думал)... Мы же для себя решили давнишнюю проблему: по согласованию с заказчиком вся наша официальная документация состояла из трех страничек, отпечатанных чин-чинарем на форматках с рамочками и штампиками в точном соответствии с ГОСТом, где рассказывалось о том, как запустить Unix-утилиту man (просмотр и печать документации). И завершала руководство сакраментальная фраза, что дескать вся остальная информация доступна в диалоговом режиме прямо на машине. Точка! Ах, нет... плюс еще пяток страниц для нормоконтроля с чертежами программ... Уже обещал раньше рассказать про это проклятие, мучившее несколько поколений советских программистов. Не буду дальше откладывать.

Давным давно, еще в докомпьютерную эру (с двадцатых годов) применялись для изображения последовательных процессов или алгоритмов блок-схемы (flowcharts). На них отдельные элементарные (на данном уровне абстракции) шаги изображались прямоугольничками, последовательность шагов – стрелочками, а ветвления (проверки условий) ромбиками. В самом-самом начале, когда языков программирования еще не было, а программы непосредственно кодировались числовыми кодами или, в лучшем случае, писались в «содержательных обозначениях», как рекомендовал патриарх нашего ремесла Александр Львович Брудно, блок-схемы были важным подспорьем. В таковом качестве во время оно их и застандартизировали.

Прошли десятилетия, то есть минули целые эпохи. А от программистов по-прежнему требовали чертить эти чертовы стрелочки и ромбики. Смысла в этом было аж никакого. Во-первых, теоретически доказано, что любой алгоритм, записанный на языке высокого уровня (на любом языке) имеет эквивалентное графическое представление в виде блок-схемы и почти наоборот, любая правильная блок-схема (фишка тут в слове «правильная») эквивалентна некоторому тексту на том или ином языке программирования. Но текст программы завсегда лучше блок-схемы, хотя бы потому, что последней можно только любоваться, а первый – это реальный кусок программы, который компилируется и выполняется на машине. Есть разница? Во-вторых, блок схема может показать только синхронный, строго последовательный процесс вычислений, а в жизни такое наблюдается разве что в небольших несложных программах. Реальные же системы – это не однопоточные алгоритмы, а целые искусственные миры, где множество населяющих их объектов-персонажей (как программных, так и аппаратных) взаимодействуют друг с другом, посылая в непредсказуемые моменты времени сигналы и возбуждая прерывания, и где множество потоков вычислений исполняются одновременно и ассинхронно, порой еще и на множестве процессоров и машин. Получается, что блок-схемами можно проиллюстрировать только маленькие кирпичики, но никак не всю систему, но зачем дополнительно иллюстрировать то, что и так внятно и понятно (с комментариями) записывается в текстовом виде?

Казалось бы, не нужны, так не пользуйтесь. А действительно не нужны – любой программист, хоть разработчик, хоть представитель заказчика предпочтет посмотреть исходный текст программы, а не эти картинки. Непрограммисту они – тем более до лампочки. И только ГОСТу, в лице его полномочного представителя – нормоконтролера, они нужны. Дороги как произведения изобразительного искусства. Он их проверяет на соответствие требованием оформления – такая-то ширина линий, столько-то миллиметров длина стрелочки, такой-то отступ квадратика от ромбика... Смысл схемы контролеру совершенно недоступен. Можете себе представить, какая халтура там процветала? В нашей конторе (как и в сотнях и тысячах таких же контор по всему Союзу) сидели тетки-чертежницы и тушью на кальках рисовали никому не нужные стрелочки и ромбики. Зато безработицы не было! Уже Союз загибался, но в девяностом году, если не ошибаюсь, успели под занавес выпустить новый ГОСТ все на ту же тему рисования блок-схем. Какая-то навязчивая, неотвратимая мания. Ну да ладно...

Загляну еще разок на гостеприимную кафедру Давидова. Всякий раз, бывая в Москве, я туда заглядывал – что-то привозил из переводов, записывал на магнитную ленту новинки. Никогда более я не выступал на конференциях и не посещал оные (признаться, говорильня меня утомляла), но неформальными беседами с Михаилом Изгияевичем и его зубастыми, нахальными мальчиками я дорожил. Понимаю, что наша возня с Искрой-226 – машиной, которую они никогда в глаза не видели – была им абсолютно не интересна, однако меня всегда доброжелательно слушали, вдумывались и по делу критиковали и хвалили. Было на ком «обкатать» идеи: не товарищи по бригаде (они внутри, в деле, слишком близко – «лица не увидать»), а именно, вот такие – посторонние и... не посторонние...

Так прошли три года. Проект благополучно завершился. Мой благодетель, Александр Александрович ушел с повышением в какое-то министерство. Экспертизы для Госплана как-то тоже сошли на нет и... я перестал ездить в Москву. Да так перестал, что вот уже лет 25 – четверть века – в Москве не был. Уж и не буду никогда. Московские контакты и связи постепенно ослабли, истончились, а там и вовсе прервались. Остались только воспоминания, которые вот для верности доверяю интернету...



Источник: http://berkovich-zametki.com/Forum2/viewtopic.php?f=7&t=1034&start=10

Поделитесь с друзьями:

Смотрите также:

история ВТ

 

Комментарии:

masterlym


А Вам всё не ймёцца всё о миравом госпоццтве печётеся

Ответить

Что до самой истории, то позднее мне довелось познакомиться с этими славными колхозниками, о чем расскажу в свое время.
__________________________________________________________
я бы тоже с удовольствием набил бы морду паре этих колхозников.
оказывается они и к операционкам причастность имеют... а нас они снабдили форезными камерами, сделаными из дешевого плексигласа и который при небольшом нагреве (а токи при форезе бывают такие, что буфер закипает) начинает вести в разные стороны. коснтрукция камеры сделана так, что собрать ее и провести форез - это нужно нетривиальые способности. у меня в отделе (камеры остались в наследство от института) только третий сотрудник совладал с ними. наклепали они этого говна на всю страну.
прикольно, что был лет пять в пушино в одном из ведущих наших биологических институтов и увидел такую камеру. совершенно нулевую. стояла как подствка под что-то. говорб с приколом:
- че, не пользуетесь?
- дак наукой доказано, что ими нельзя провести форез... у нас в пущино ни один институт не смог это сделать.
- а у НАС В СИБИРИ СМОГЛИ.
немая сцена...
впрочем это уже все воспоминания. камеры те и сейчас валяются где-то, но слава аллаху, купили таки нормальные биорадовские. :). зато как интересно было решать эту задачу - поставить форез в камере, в которой конструкционно это сделать нельзя :)

Ответить

Вообще-то товарищ насчет блок-схем несколько погорячился. Это хорошо, если программа на два листа исходников и есть время в ней разобраться. А вот если в программе пара миллионов строк, да с включением полусотни сторонних библиотек, к которым по определению нет исходников, - без схем как-то тяжеловато. Мягко говоря.
К тому же, будучи толково примененными, эти схемы очень способствуют проектированию программ "сверху вниз" - от задачи к тонкостям реализации. Всего-то и дел - с каждым шагом уточнять и детализировать блоки предыдущего шага.
Более того, ныне эти блок-схемы выросли в целый язык моделирования программ - например, UML (Unified Modeling Language), положенный ныне Микрософтом в основу систем [полу]автоматического программирования: рисуешь полдесятка диаграмм и схем, описывающих поведение программы, а система сама дописывает реализацию если не всех, то как минимум большинства блоков диаграммы. Остается поправить/подрихтовать/уточнить (опять же на уровне блоков схемы) - и программа готова. Пока, насколько знаю, совсем автоматически получается не очень хорошо (громоздко, неоптимально и избыточно), но вот в полуавтомате уже получается неплохо.

Ответить

Нисколько не погорячился. Программе на миллионы строк соответстует блок-схема с миллионами прямоугольничков и ромбиков. Если программу ещё можно прочитать, то такую блок-схему прочитать невозможно. Программа в пару экранов читается на счёт "раз", а соответствующая ей блок-схема из 50 фигурок со стрелками (как минимум по фигурке на каждую строку) - совершенно невнятное чудовище.
А если вспомнить, что на блок-схеме можно представить только одну управляющую конструкцию - ветвление? Нарисуй блок-схему для пары вложенных C-style циклов for, или ещё лучше - циклов типа foreach из Perl и PHP, и сравни, что нагляднее - такая блок-схема или кусочек текста программы. Чтобы окончательно понять, что автор имел в виду, сравни время, потраченное на рисование этих невнятных загогулин, со временем на сочинение и набивание этого куска программы из пяти строчек.
UML - это совсем другое. ЕМНИП, в первых версиях UML вообще не было блок-схем. Глупо спорить, что изучать или редактировать схему базы данных по нарисованной схеме с табличками и стрелочками куда удобнее, чем по описывающему её тексту на SQL. Без диаграммы классов в мало-мальски серьёзном объектно-ориентированном приложении тоже жить скучновато, особенно на этапе проектирования архитектуры. Это, меж делом, ещё и примеры тех случаев, когда UML православно использовать для генерации кода. Но использовать блок-схемы для генерации текстов функций и методов - это уже запредельный идиотизм, как и сами блок-схемы.

Ответить

This thread is old, I know, and my comment is in English, but: Do you know where one might find a copy of this Unix?

Ответить

 
Автор статьи запретил комментирование незарегистрированными пользователями. Пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте, чтобы иметь возможность комментировать.