Софтпанорама 1994, No.66 (50) *** FOREWORD *** Составитель Н.Н.Безруков =================== июнь 1994 ========================================= ---------------------------------------- # К О Л О Н К А Р Е Д А К Т О Р А # ---------------------------------------- Уважаемые коллеги ! В этом месяце исполнилось 30 лет со момента появления System 360 - пожалуй са- мой влиятельной и безусловно самой долгоживущей архитектуры компьютеров. Aрхитектуры, доминировавшей с момента своего появления и до появления микро- процессоров и персональных компьютеров. Практически большинство программис- тов моего поколения, поколения 50-х, так или иначе прошло школу IBM 360/370 и мне кажется сейчас уместно остановиться на некоторых моментах истории выч.техники в нашей стране. Конечно, человек который провел большую часть своей карьеры программиста на IBM 360/370 (которую часто называют просто mainframe, отождествляя с большими компьютерами вообще) не может быть до конца объективным в ее оценке. Oднако сейчас мне по крайней мере есть с чем сравнивать: я довольно много работал в MS-DOS и Windows и имею некоторое представление о UNIX. Начну с иторических замечаний. Так вот, если к моменту появления IBM 360 раз- витие программирования и вычислительной техники шло примерно с пятилетним отставанием от США, то после появления IBM/360 это отставание стало быстро увеличиваться. В 1967 году его можно было оценить примерно в десять лет. Я могу судить об этом на собственном опыте. Я окончил математическую школу в 1967 году и одним из преподававшихся у нас предметов было программирование (вместо с дипломом об окончании средней шко- лы я получил и диплом техника-программиста, по-моему эта специальность тогда называлась вычислитель-программист). Так вот изучали мы ламповые машины по книжке Китова и Криницкого и даже немного работали на Минске-2 в КИИГА. Ин- тересно отметить, что поскольку индексные регистры отсутствовали циклы орга- низовывались путем модификации команд. Т.е. в 1967 году уровень развития вы- числительный машин и программирования у нас можно было охарактеризовать как отсталый. Парк компьютеров был невелик и состоял, в основном, из ламповых ма- шины срежи которых наболее распространенными были M20 (позднее M220 - тран- зисторный вариант M20), Минск-2(c транзисторным вариантом Mинск-22) и разли- чные модификации БЭСМ. Единственным исключением была появившаяся примерно в это время транзисторная машина БЭСМ-6, которая по своей надежности и техническим параметрам была несомненно выдающимся достижением. Неслучайно она была рабочей лошадкой ко- смоса и ядерщиков. Мне на ней работать не пришлось и здесь конечно я могу исказить историческую картину. Насколько мне известно первые машины прихо- дили "голые", как впрочем все отечественные компьютеры, однако со временем было разработано вполне приличное системное программное обеспечение, вклю- чая достаточно полный набор трансляторов. Причем были разработаны и собст- венные языки высокого уровня из которых следует отметить "НЕДИС" транслятор с которого был разработан Владиславам Гусевым. Для своего времени это был очень приличный язык (с элементами Симулы-67) c хорошим, синтаксически ори- ентированным транслятором. Однако массовый выпуск этих машин налажен не был, и по совокупности технических показателей системное программное обес- печение наверное не превосходило системное программное обеспечение ЕС ЭВМ (читай IBM 360). И, безусловно уступало по меньшей мере по таким показате- лям как количество и качество трансляторов. Вообще, ничего близкого по классу к трансляторам уровня Фортран H, PL/1 opt и PL/1 deb ни на одном из компьютеров, будь то БЭСМ, СМ или PC я не видел, хотя транслятор с Фортрана и транслятор с Алгола разработки ГДР на БЭСМ-6 были ничего. Еще раз подчер- кну, что в этой области я многого не знаю, поскольку сам на БЭСМ-6 никогда не работал. Однако по косвенным сведениям (я читал книгу об OC Дубна и об- щался с коллегами, ранее работавшими на этой операционной системе) реализа- ция мультизадачности, время появления и качество многотерминальных систем на БЭСМ уступало IBM/360. После школы я поступил в Киевский политехнический институт, а один из моих одноклассников не поступил и устроился работать в ЦСУ. Так вот они только- только получили Минск-22 - одну из первых советских транзисторных машин. Программировали на ней в основном в абсолютном коде. И это вполне естест- венно, поскольку на ней было всего 8К слов и Ассемблера, как мне помнится, в 1967 году и в помине не было. Причем программирование в абсолютном коде на Минске-22 практиковалось до конца 70-х т.е. практически до списания по- следних экземпляров и я знал специалистов утверждавших, что пишут они на нем не хуже и не медленнее, чем я на ассемблере. В качестве внешней памяти прямого доступа использовалась свободно висящие куски широкой магнитной ленты, которые со страшной скоростью протягивались то взад то вперед. Про- граммы набивались и вводились с бумажной перфоленты. Другой мой приятель, тоже не поступивший в институт, работал на БЭСМ в каком- то академическом ВЦ. Ситуация была та же самая. Правда уже были какие-то эксперименты с Алголом, но это была экзотика. Вывод шел на узкопечатающее цифровое устройство. Кстати АЦПУ в СССР появились довольно поздно и одной и проблем при создании первых трансляторов с Алгола была, как ни странно, не- возможность вывода распечатки. Придумывались какие-то цифровые коды для ка- ждого слова и т.д. В институте помнится, мы изучали машину Мир-1 - одну из первых машин с аппа- ратно реализованным транслятором с подмножества алгола. Что-то вроде первых машин с бейсиком в ПЗУ, но размером в письменный стол. Сказать, что тогда в институте нас учили чему-то полезному я не могу. Те, кто подрабатывал где- то на ВЦ, зачастую были куда квалифицированнее преподавателей. По крайней мере, поскольку я тогда по собственной инициативе выучил Алгол-60 и на эк- замене написал программу на нем, а не в коде МИР-1, преподаватель был слег- ка удивлен и похоже поверил мне на слово ;-). Реально машина больше стояла, чем работала и около нее всегда лежали плоскогубцы для вытягивания и встав- ки плат. Если она не грузилась, то прежде всего рукой проводили по краю плат. Если не помогало, то в ход шли плоскогубцы. Так пытались устранить неконтакт. Никаких устройств ввода мы не использовали. Программа перебива- лись полностью каждый раз. Вывод шел на пишмашинку, служившую консолью. Она часто ломалась. После окончания института я год поработал на Минске-32. Это была несомненно лучшая машина, чем Минск-22 и на ней были почти нормальные магнитные ленты (правда они не всегда читались и долго мотались, но это была мелочь), нор- мальное АЦПУ и даже устройство ввода с перфокарт (а это намного удобнее, чем ввод с перфолент, когда из-за ошибки приходится дублировать всю ленту). Обладание импортной магнитной лентой Scotch было пределом мечтаний каждого программиста. Одна перфокарта содержала одну строку программы и если в ней была ошибка, то ее можно было вынуть и заменить. Правда для этого все перфокарты нужно было предварительно вручную подписать, поскольку устройств, которые надпечатыва- ли набиваемый текст в верхней строке перфокарты тогда еще не было. Ввод был чем-то похож на лотерею и зависел от таких факторов как влажность воздуха и квалификация электронщиков. Колоды перфокарт читались не всегда, поскольку устройства ввода были не на фотодиодах, а на металлических щетках. Иногда перфокарты рвались при вводе или заминались. Ввод приличной колоды перфо- карт был искусством, которым в совершенстве владел каждый приличный про- граммист. Их сбивали в стопку, специальным образом выгибали и т.д. и т.п. Иногда я уходил с машины так ничего и не прочитав, несмотря на то что маши- на работала нормально, вот только ввести перфокарты в нее не удавалось. Ко- лода быстро снашивалась и периодически ее приходилось выводить на устройст- во вывода перфокарт, которое из-за страшного шума при работе называли "бар- малеем". Если колода падала и рассыпалась, то это была трагедия и машинное время пропадало впустую. Поэтому перфокарты носили в специальных обкладках, стянутых резинкой. Нормальным сроком, за который что-то можно было сделать было три часа. Машин- ное время было дефицитом и получить время днем для сторонней организации было практически невозможно. Работали поздним вечером или ночью. Именно на Минске-32 я увидел первого программиста, работавшего на Фортране (кстати это был Александр Боролин). Но поскольку я писал транслятор, Фортран на ме- ня особого впечатления не произвел, зато ЯСК - примитивный ассемблер для Минск-32, сделанный похоже по мотивам ассемблера IBM/360, но без макропро- цессора, я освоил хорошо. Стандартного транслятора с Фортрана я на Минске- 32 так и не застал. Александр Боролин работал на "самодельном" Фортране, написанном кем-то в ИФВЭ (институте физики высоких энергий). Первый раз я увидел советский клон IBM/360 - ЕС 1020 где-то в 1974 году. По- мнится таких машин в Киеве тогда было меньше десятка и машина на которой я работал имела 64К памяти и то ли один, то ли два 7 мегабайтных диска. Как сейчас помню, что первое впечатление у меня было, что это просто суперком- пьютер: то что на Минске-32 требовало часа здесь проскакивало за несколько минут. Прежде всего потому, что сама машина была намного надежнее. Кроме того магнитный диск это конечно не лента. Ну и устройства ввода с перфокарт были с фотодиодами. В общем это явно было новое поколение компьютеров с но- вым программным обеспечением. Час стоил порядка 50(на Минске-32 где-то 30) "безналичных" рублей. Использовалась операционная система DOS. Позднее по- явились машины с 128K и на них начали запускать OS/360. Машина с мегабайтом памяти была по тем временам очень крупной машиной. Аналогично на смену дис- кам 7M постепенно пришли диски 29M, которые к концу 70-х стали наиболее распространенными. Обычно на машине стояло 4 таких дисковода, так, что по объему дисковой памяти они были сопоставимы со 120M винчестером. Позднее появились диски 100M, 200M и 300M, но они были сравнительной экзотикой. Хотя это было время моей юности, я далек от того, чтобы рисовать те времена розовыми красками. Машинное время было страшным дефицитом. Выйти на машину неподготовленным, т.е. без исправленных колод перфокарт, без плана работы на выделенное время было страшным расточительством. Такой роскоши как сей- час, когда можно включить машину и сидеть читать журнал не было и в помине. Альтернативой режиму разделения времени между пользователями, который при- водил к неэффективному использованию техники, но в котором на компьютере хоть удавалось сделать что-то полезное, был так называемый пакетный режим. В больших институтах пользователи послабее часто попадали в эту бюрократи- ческую мясорубку, в котором работать было очень тяжело и отладка шла крайне медленно. Т.е пользователь сдавал свою колоду перфокарт дежурному оператору и получал результаты скажем через два часа. Таким образом за день можно бы- ло протранслировать программу три, в лучшем случае четыре раза. Переводи- лись горы бумаги и работать было очень неудобно. Дело усложнялось тем, что одни бюрократические извращения наслаивались на другие и в результате полу- чался полный маразм. Например в Киевском институте кибернетики программис- тов не пускали к устройствам набивки перфокарт. Нужно было сдавать написан- ные строки девочкам операторам которые набивали их (естественно с ошибка- ми) и возвращали, завернутые в ваш листик. Так голь на выдумки хитра и были умельцы, помнившие перфокарточный код наизусть и при небольших исправлениях вырезавшие дырки бритвой и затыкавшие ненужные шелухой от набивки. Я как и многие "нормальные" (читай, работавшие на крупных хозтемах) пользователи работал на ЕС не в пакетном режиме, а в режиме персонального компьютера. Т.е. в течении выделенного мне времени я мог делать на машине что хотел и никто кроме меня доступа к машине не имел. Я даже ставил свой собственный диск с операционной системой. Для упрощения редактирования я написал редак- тор NEATED, работавший с консоли оператора(пишмашинки Consul-260) и имевший по тем временам достаточно мощную и гибкую систему команд (в качестве внут- реннего представления текста в нем использовался двунаправленный список). Многие работали на машине небольшими группами (часто вдвоем или втроем). Это, пожалуй, был наиболее эффективный режим использования машины. Кроме того, надежность EC существенно уступала надежности персоналок и непо- ладки порой устранялись несколько суток. Особенно часто сбоила память. Кро- ме того иногда не читался диск и появлялась ужасная ошибка IEFxxx 131 DCK ERROR... SWAP from 131 TO 132... Т.е. предлагалось поменять местами диски на дисководах 131 и 132. Менял и все повторялось сначала. И все же нельзя недооценить роль IBM/360 в преодолении нашего отставания. По- скольку программное обеспечение было одно и тоже, перевод любой иностранной книги давал колоссальный эффект. В этот момент на Западе IBM/360 доминиро- вала и связанных с этой серией книг было довольно много. Помню в числе пер- вых переводных книг по IBM/360 была книга Джермейн "Программирование в сис- теме IBM 360", так вот она была чуть ли не настольной книгой программистов на ЕС. Потом для некоторых было большим разочарованием узнать что автор - женщина ;-). Издательство Мир со временем наладило перевод наиболее ценных книг с опозданием в два-три года. Примерно к середине 80-x была переведена почти вся классика, включая монографию Кнута. Кроме того для тех, кто знал английский, была и другая возможность. В ГПНТБ была неплохая подборка иностранных книг и журналов по программированию. Документация к компьютеру представляла собой низкого качества, с многими ошибками и неточностями перевод фирменной документации, отпечатанный на ма- шинке с коряво вписанными от руки английскими словами. Поэтому любая иност- ранная книга представляла значительную ценность, так что возможность ксеро- копирование в ГПНТБ было почти единственным окном в мир, очень важным кана- лом. Кроме того в ГПНТБ была картотека переводов и можно было заказать ксе- рокопию любого перевода. Например, когда я, как и многие другие, увлекся ПЛ/1 - тогда новым языком, который был существенно больше чем, скажем, Фор- тран или Алгол приспособлен к задачам системного программирования, в част- ности, для написанию трансляторов, то я специально ездил в Москву, чтобы скопировать пару книг по ПЛ/1 в ГПНТБ. Цена копии страницы тогда было 3 коп. и копия книги стоила 10-20 руб. Зарплата тогда была у меня 132 руб.(это были не очень большие, но и немалые деньги - инженер после инсти- тута получал всего 95-100 руб., купейный билет из Киева в Москву стоил 14 руб.), так что много я копировать не мог. Несмотря не все вышесказанное, степень изоляции от Запада в брежневские вре- мена была колоссальной. Достаточно сказать, что даже технические журналы просматривались цензурой и страницы с негативными мнениями или фактами об СССР изымались. Правда иногда цензура давала сбои: один раз в ГПНТБ читая свежий ACM Computer Surveys я наткнулся на перепечатку отчета ЦРУ о состоя- нии развития вычислительной техники в СССР и даже снял с него ксерокопию (а может просто цензоры из КГБ уважали коллег из ЦРУ и принципиально не стали изымать статью из журнала :-). Кстати именно компьютеры IBM/360 сыграли немалую роль в преодолении этой изо- ляции. Они также безусловно способствовали развалу социализма. Поскольку контроль за использованием АЦПУ был неполным, а дефицита бумаги не было, сразу появились запрещенный цензурой книги, распространявшиеся на ленте. Поскольку среди моих сервисных программ была программа для распечатки доку- ментации под названием NEAXTX, кто-то набил в ее формате песни Высоцкого. Потом появились книги Стругацких (почти полное собрание), Булгакова(Собачье сердце, Мастер и Маргарита), стихи Пастернака, Мандельштама. В общем возник своего рода электронный самиздат. Конечно, все это очень не нравилось КГБ, но сделать по сути ничего было нельзя. Примерно в 78 году на ЕС появились терминалы и все бросились писать многотер- минальные комплексы. Cначала появился КДО. Потом он был быстро вытеснен бо- лее удобными и мощными системами PRIMUS, JEC, FOCUS, Jessy, OKO, Argus, Vector. Поскольку документации практически не было, тут уже пришлось вле- зать глубоко в операционную систему и в результате уровень системного прог- раммирования существенно возрос и стали возникать своего рода школы прог- раммирования. Одной из наиболее известных была так называемая "железнодо- рожная школа", сложившаяся вокруг МИИТа. Ее ядром были программисты ПКТБ АСУЖТ - те, кто писал систему резервирования железнодорожных билетов Экс- пресс (одну из немногих успешно написанных и работавших систем реального времени на ЕС ЭВМ). Это прежде всего Леонид Нейштат, Владимир Ермаков, Ва- лентин Черняк (который, впрочем, половину времени посвящал доработке Приму- са M - широко известной в то время модификации многотерминальной системы, разработанной в МФТИ, а потом дорабатывавшаяся и модифицировавшаяся Черня- ком и другими программистами). Отмечу, что во "времена перестройки и глас- ности" продажа Примуса через кооперативы была некоторое время очень при- быльным бизнесом - пожалуй Примус был первым удачным коммерческим программ- ным продуктом в бывшем СССР. В целом можно констатировать, что техника была достаточно совместимая, выпус- калось ее много, а программное обеспечения практически идентичным так что полученные из импортной литературы знания можно было применять непосредст- венно. Все это привело к тому, что в СССР появилось достаточно много про- граммистов сравнительно высокого класса. Мне кажется, что благодаря ЕС ЭВМ где-то в районе 1985-87 года, уровень раз- вития советского программирования был наиболее высок, степень отставания от Запада минимальна, а уровень разработки программ порой был не хуже, а иног- да и чуть получше, чем на Западе. Кстати в СССР, в отличие от США широко использовался ПЛ/1 - несомненно наиболее удачный язык среди реализованных в IBM 360/370 и имевший исключительно талантливо написанные трансляторы - настоящие шедевры системного программирования. В Ленинграде и в Киеве были написаны реально работающие трансляторы с Алгол-68 - очень интересного и сложного языка, который к сожалению не получил распространения. Были созда- ны и некоторые отечественные инструментальные средства для ПЛ/1. Например, Владимир Жорницкий написан измеритель, я написан примитивный комплекс прог- рамм для программистов, работающих на ПЛ/1 (куда входил претти-принтер, ре- дактор, программа печати документации и ряд других более мелких программ). Весьма высок был уровень программирования на ассемблере. Были созданы мощ- ные наборы макрокоманд структурного программирования (я помню две: Гусева и модификацию макрокоманд IBM, созданную в ПКТБ АСУЖТ). Был написан ряд ди- зассемблеров, среди которых самым мощным был дизассемблер В.Черняка. Был создан ряд удачных утилит. Среди утилит, разработанных на ассемблере со- ветскими программистами и получивших значительное распространение отмечу систему обслуживания магнитных лент MATA Леонида Бунича. По состоянию, ска- жем, на 1983 год она была явно на уровне или выше мирового уровня для свое- го класса программ и, кстати, до сих пор смотрится очень неплохо на фоне своих западных аналогов. Леонид Бунич также организовал в Москве неформаль- ный семинар по обмену опытом для программистов на ЕС ЭВМ, просуществовавший примерно до 1990 года и потом превратившийся уже в чисто семинар по персо- нальным компьютерам. Другой известной утилитой была программа TestDisk Вла- димира Ермакова - специалиста понимающего супервизор ввода/вывода наверное на уровне лучших специалистов из IBM. Вообще утилиты IBM были настолько спартанскими (если не выразиться резче) что практически любая альтернатива была удобнее. Кстати этого никак не скажешь о трансляторах. В результате много усилий было потрачено на создание библиотек процедур на JCL - языке управления заданиями OS/360 и вспомогательных программ. Широко известны бы- ли библиотеки ПКТБ АСУЖТ, библиотека Гусева (ИК АН УССР) и библиотека Лео- нида Бунича на базе MACROIN - чего-то вроде 4DOS для ЕС ЭВМ. Наиболее интересной и интенсивно развивавшейся областью были базы данных. В основном эксплуатировались адаптированные базы, но были и отечественные раз- работки. Среди последних следует отметить ИНЕС и Пальму. Разработка сложных программ на базе чужой операционной системы была уникальна и хотя приводила к колоссальной потере времени и сил, но с другой стороны позволяла познакомиться и понять методы и алгоритмы слабо доступные даже на Западе. Например обнаруживал человек ошибку в BTAM. Ну не звонить же в IBM. Надо разбираться самому. И ничего, разбирались. На ЕС появилось несколько неплохих дизассемблеров и я даже опубликовал две тематические подборки ста- тей в сборниках статей КИИГА, где я был ответственным секретарем. С появлением персоналок ЕС быстро потеряли привлекательность и их стали де- монтировать. Где-то к 1991 году развитие этой серии прекратилось, а с рас- падом СССР прекратилось и производство компьютеров серии EC. Последней мо- делью была по-моему EC 1068. Многие программисты перешли на персоналки, часть специалистов высокого класса эмигрировала. Я считаю, что такое резкое свертывание применения ЕС ЭВМ было большой потерей для уровня программирования в нашей стране(точнее теперь странах) и в какой- то мере нанесло невосполнимый ущерб. После этого краткого очерка развития системы IBM 360/370 в СССР я постараюсь кратко сформулировать основные аспекты влияния системы 360 на системное программирование в целом. Система IBM/360 была не только удачной промышлен- ной архитектурой, но и полигоном исследований в области операционных сис- тем, трансляторов и, в особенности баз данных. Мощные исследовательские подразделения IBM в это время были настоящими академиями в области програм- мирования и аппаратного обеспечения. Рискну заметить, что вклад IBM в сис- темное программирование значительно превышает, скажем, вклад создателей UNIX. Мне кажется, что применительно к системе 360/370 можно говорить о следующих аспектах этого влияния: - Понятие единой архитектуры (абстрактной машины идентично реализованной на разных аппаратных платформах) развитое затем DEC(созданной специалистами ушедшими из IBM) и Intel(фирмой, созданной с участием IBM). - Байтовая адресация памяти, иерархия байт, полуслово, слово, двойное слово. с целым числом байтов в каждой единице. - Первая универсальная промышленная архитектура типа CISC (complex instruction set computers) с командами переменной длины (до IBM/360 компь- ютеры для коммерчеких применений и компьютеры для научных применений отли- чались архитектурой и системами команд) - Микропрограммная реализация базисной архитектуры. - Первая успешная промышленная реализация сложной мультизадачной многополь- зовательской операционной системы для новой, еще не освоенной архитектуры (это был действительно исключительно сложный для того времени проект кото- рым руководил исключительно талантливый специалист Фредерик Брукс-младший (кстати потом написавший о своем опыте замечательную книгу "Как создаются большие программные комплексы" - есть русский перевод). Сравнивая OS/360 и MS-DOS нельзя не прийти к выводу, что в области операционных систем Microsoft была и остается реакционной силой. - Открытость кода (следует отметить, что OS/360 и все ее компоненты примерно до 1985 года были доступны в исходный текстах). Кстати это был один из мо- ментов, облегчивших создание серии EС в СССР; - Идея и реализация блестящей по замыслу концепции виртуальных машин (VM/CMS). Конечно те извращения, когда под VM заставляли гонять MVT я не оправдываю, но в научном плане это был безусловно значительный шаг. - Реализация тандема из сверхбольшой мультизадачной операционной системы (способная обслуживать тысячи терминалов исключительно надежная рабочая лошадка MVS) и гибкой системы, предназначенной, в основном, для разработки программ (VM/CMS). - Новые идеи и фундаментальные достижения в области построения оптимизирую- щих трансляторов, с языков высокого уровня (Фортран H, PL/1 Opt). - Новые идеи и методы построения отладочных трансляторов (PL/1 Debugging compiler это настоящий шедевр). - Новые языки реализованные и получившие распространение на этой системе (ПЛ/1, REXX, макроязык ассемблера BAL, в области баз данных - SQL). - Огромный вклад в развитие СУБД. Промышленные СУБД (IMS, Adabas, DB/2). Язык SQL. - Концепция языка управления заданиями (JCL) и создание первого переносимого языка управления заданиями высокого уровня (REXX) - Реализация логической независимости файлов от устройств и программ от файлов. - Первая реализация концепции использования мощного языка управления зада- ниями в качестве макроязыка системного редактора, в также интеграции ре- дактора в операционную систему как универсального средства ввода/вывода системных команд. Первая реализация средств выборочного редактирования (slicing) в штатном редакторе операционной системы (команда ALL XEDIT). - Магистральное программирование (pipeline) как базисное средство ввода/вы- вода языка управления заданиями (уровень реализации pipeline в CMS и сте- пень интеграции средств pipeline в REXX безусловно являются уникальными и существенно превосходят UNIX). В заключение мне бы хотелось отметить важность языка REXX и магистрального программирования того уровня на котором оно реализовано в CMS, а также ис- пользование языка управления заданиями в качестве макроязыка редактора. На этом вопросе я, возможно, остановлюсь в сентябрьском или октябрьском номе- ре. REXX это одна из сильных сторон OS/2 и только из-за этого ее стоит на мой взгляд попробовать, поскольку шансов поработать на CMS у большинства читателей, по-видимому, нет. Кстати, хотя UNIX и CMS имеют общего предка, и обе операционные системы создавались разработчиками прежде всего для своих собственных нужд, а не как коммерческий продукт, я хочу подчеркнуть, что уровень реализации pipeline в СMS значительно выше. Вообще судьба играет операционными системами: я, честно говоря, не совсем понимаю зачем IBM по- надобился Билл Гейтс с чужой и достаточно слабой MS-DOS, когда у фирмы было собственная однопользовательская система по уровню на голову выше. Ведь концептуально VM/CMS можно рассматривать как попытку реализации локальной сети виртуальных персональных компьютеров (типа Novell) на одном mainframe компьютере. Программисты безусловно много потеряли от того, что CMS оста- лась только на mainframe и что концепция виртуальных машин не получила раз- вития на PC. С уважением, Н.Безруков 6 июня 1994 г.