Немного истории

За время существования Единой Системы Электронных Вычислительных Машин (ЕС ЭВМ),, а это менее 30 лет и почти 17000 машин типа ИБМ МФ, было выпущено довольно видов и редакций разных ОС и одна СВМ.

Конечно ни одна из этих ОС и СВМ не были полностью уникальными разработками специалистов СЭВ (соцлагеря как принято было говорить). Но тем не менее в СССР были системы которым можно было «доверять» и иметь полную поддержку. В каждом крупном регионе СССР были региональные ПО в составе ВО СоюзЭВМкомплекса и более мелкие локальны центры. В Челябинском центре ПО «Конус» (одно из отделений СоюзЭВМкомплекс, состоявшего из ЦентрЭВМкомлекс, ЗападЭВМкомплекс, СибирьЭВМкомплес и т.д. ... и ПО «Конус») автор этой статьи проработал с августа 1984 года по апрель 1992 года в должности начальника бюро системного обеспечения.

Помню на складе у меня стояло несколько ящиков 2'x2'x2' а в них несколько бобин магнитных лент и несколько десятков книг техдокументации. Стоило это рублей этак 800 (первое что пришло на память. Точно не помню). В этих ящиках были ОС 7 ЕС. Не помню чтобы кто-то их купил, а если и купил то не забрал никто. Речь идет конечно об организациях, не частных лицах. Сами мы тоже ни одной ленты из этих ящиков не брали. У нас были гораздо более свежие версии ОС 7 ЕС непосредственно от разработчиков (НИИ ЭВМ и НИЦЭВТ). А в ящиках были какие-то старые версии.

Первое издание ОС 7 ЕС появилось в 1983 году, но распространение этой системы началось по моим воспоминаниям позже, с издания 3. К этому моменту основной системой была ОС ЕС 6.1, но уже начали появляются на ВЦ и СВМ ЕС. На виртуальных машинах под СВМ ЕС ставились ОС ЕС 6.1. При этом существенно падала производительность.

Существенно исправило это неприятное свойство виртуализации появление Базовой Операционной Системы (БОС) представлявшую основную фишку ОС 7 ЕС.

Структура ОС 7 ЕС.

Структурная схема ОС 7 ЕС
Структурная схема ОС 7 ЕС

ОС 7 ЕС состоит из СВМ ЕС и БОС. СВМ ЕС представлен на рисунке в составе Монитора Виртуальных Машин (Control Program CP) и Подсистемы Диалоговой Обработки (Conversational Monitor System CMS). На самом деле в составе СВМ имелось больше чем только ПДО, но это в данном случае не имеет особого значения.

Базовая Операционная Система (БОС):

..... создает ОС, являющуюся дальнейшим развитием (при обеспечении совместимости снизу вверх для программ пользователей ЭВМ) операционной среды управляющей программы SVS ОС ЕС издания 6.1. При этом она обеспечивает использование основной памяти виртуальной машины объемом до 16 Мб, но не реализует собственную виртуализацию памяти.

Вот здесь начинается самое интересное. ОС ЕС 6.1 могла работать в одном из трех режимов: MFT, MVT и SVS. Первые два режима не образовывали виртуальной памяти и поддерживали мультипрограммую среду («М») с фиксированным числом задач («FT») и переменным числом задач («VT»). SVS это режим MVT с виртуальной памятью 16 MB.

БОС была полностью программно совместима с ОС ЕС 6.1 и выполнялась только на виртуальных машинах. Как правило нескольких одновременно. Более подробно и по современному можно узнать здесь: https://phantom.sannata.org/viewtopic.php?t=42293.

В этой статье важно то что под управлением СВМ (z/VM) существовали полноценные системы созданные специально для загрузки и работе на ВМ.

Сделано это было конечно же с целью сокращения издержек виртуализации. Первым делом под нож шел механизм виртуализации памяти. В самом деле зачем это на виртуальной машине если память ВМ и так виртуальная и ее можно сделать какой угодно. Это давало большой эффект.

Кроме того раз ВМ может быть много то не надо заморачиваться с множественными виртуальными пространствами как в Windows, Linus, и MVS (z/OS). Тем более в первом и втором случае это по всей видимости не доведено до ума до сих пор. Иначе чем объяснить стремление разделять программные комплексы на множества физических серверов и лишать себяб например, прелести коммуникаций между составными частями через память, а не через внешнюю сеть, которая не резиновая..

Но это еще не все. Вместо того чтобы грузить ОС ВМ с индивидуальных устройств загрузки, в СВМ имеется механизм хранимых систем и разделяемых сегментов. Это однажды созданные и сохраненные на диске образы памяти однажды загруженной той или иной системы с диска, остановленной и сохраненной в специальной области хранимых систем и сегментов СВМ (z/VM). После того как это сделано (однажды после инсталляции или обновления ОС ВМ), загрузка ОС ВМ происходит с хранимой системы, одной и той же для всех ВМ использующих ту или иную систему.

В ОС 7 ЕС такими системами были ПДО (CMS) и БОС (аналога в z/VM не было и нет, но есть нечто другое. Об этом ниже). Это весьма сохраняет реальную память и сокращает страничный обмен за счет того что во многих ВМ используется одна и таже копия ядра и участков памяти с кодами системных и пользовательских реентерабельных программ.

Но и это еще не все. В предыдущих статьях я, а в комментариях к ним мой коллега @SIISIIписали что ввод‑вывод МФ весьма удобен и эффективен для виртуализации. Тем не менее эмуляция ввода‑вывода в CP вызывает определенные издержки. В ряде случаев эти издержки можно сократить используя некоторые «договоренности» ОС ВМ с CP. Осуществляется это через инструкцию процессора МФ DIAGNOSE:

В реальном процессоре инструкция DIAGNOSE выполняет диагностические функции, зависящие от процессора. В виртуальной машине интерфейс DIAGNOSE используется для запроса на выполнение служб вашей виртуальной машины. Когда виртуальная машина пытается выполнить инструкцию DIAGNOSE, управление возвращается к CP. CP использует информацию, предоставленную в кодовой части инструкции, для определения того, какую службу следует выполнить. После выполнения этой службы управление возвращается к виртуальной машине.

Таким образом, поскольку инструкция DIAGNOSE, выполненная в виртуальной машине, приводит только к возврату управления к CP, а не к выполнению функций DIAGNOSE реального процессора, коды DIAGNOSE можно рассматривать как способ передачи требований виртуальной машины к CP.

В самом деле в среде виртуальных машин мы имеем два уровня ОС: ОС ВМ и z/VM (CP). Системные функции ОС ВМ в общем случае будут выполняться в СР. Каждая привилегированная команда будет вызывать прерывание и передачу управления СР. Ряд типовых функций любой ОС МФ может быть и в самом деле делегируется для выполнения в СР.

Почему инструкция DIAGNOSE? В ОС реальной машина на МФ для вызова системных функций используется непривилегированная команда SVC (Supervisor Call). Хотя эта инструкция и не привилегированная она вызывает прерывание работы процессора, так называемый SVC прерывание. Оно обрабатывается как и любое другое прерывание, а именно аппаратное переключение в режим Супервизор и передачу управления обработчику SVC прерываний. Обработчик SVC прерывания ОС использует код прерывания (номер SVC — параметр инструкции SVC) для передачи управления программе обработчику кода прерывания. Для этого ядро ОС использует таблицу кодов SVC. В этой таблице входом является код SVC, выходом адрес обработчика кода.

В условиях системы виртуальных машин (z/VM/CP) SVC прерывание в ВМ «отражается» в ОС ВМ, и управление передается не обработчику SVC прерываний СР, а обработчику SVC прерываний ОС ВМ.

Поэтому использовать обычный путь вызова CP через SVC не представляется возможным. Для этого используется инструкция DIAGNOSE как опсано выше в цитате. А именно вызывает прерывание по привилегированной инструкции и передачу управления СР. СР анализирует код, сопровождающий инструкцию DIAGNOSE, и передает управление соответствующей программе обработчику кода также как описано выше для SVC.

Я насчитал примерно 70 кодов инструкции DIAGNOSE распознаваемых CP. Вот пара примеров:

Код DIAGNOSE X'2A8' устанавливает сетевое соединение на имитируемом сетевом устройстве z/VM® для передачи и приёма Ethernet-кадров. Он предоставляет виртуальной машине аппаратно-независимый доступ к имитируемой сетевой карте, созданной с помощью команды CP DEFINE NIC, которая связана с гостевой локальной сетью Ethernet VSWITCH или Ethernet QDIO командой CP COUPLE.

Используйте код DIAGNOSE X'60' для определения установленного размера хранилища вашей виртуальной машины, то есть для определения размера первичного адресного пространства хоста вашей виртуальной машины, исключая любые несмежные сохраненные сегменты или памяти хранимых систем, загруженное сверх определенного размера.

Есть служба коммуникации между виртуальными машинами. Без выхода во внешнюю или внутреннюю сеть. Широко используется в конфигурациях когда несколько машин объединяются в комплекс (не кластер) для выполнения сложных работ. Также используется для внутрисистемного обслуживания по типу клиент-сервер:

The Inter-User Communications Vehicle (IUCV) — это средство связи, позволяющее программе, работающей в виртуальной машине, взаимодействовать с другими виртуальными машинами, со службой системы CP и самой собой. Обмен данными по IUCV осуществляется между исходным и целевым коммуникаторами. Взаимодействие осуществляется по предопределенному каналу связи, называемому путем. Каждый коммуникатор может иметь несколько путей и может одновременно получать или отправлять несколько сообщений по одному и тому же пути.

Есть и другие службы СР, которыми может пользоваться любая ВМ. Всё вместе это называется средства сотрудничества. Эти средства не только уменьшают издержки виртуализации, но и создают возможности извлекать из виртуализации больше чем всего лишь возможность запускать на одном сервере много виртуальных машин. Пусть даже с возмоностью мигрировать ВМ с одного сервера на другой.

Но для этого надо чтобы ОС ВМ их использовали. В некоторых случаях делалось так что ОС ВМ различала что она запускается не на реальной, а на виртуальной машине и в этом случае использовала средства сотрудничества. В противном случае нет.

Другие ОС изначально разрабатывались для ВМ и не могли быть загружены на реальной машине. В ОС 7 ЕС это БОС и ПДО. В z/VM это CMS и GCS — Group Control System — усеченный по функциональности, но оптимизированный вариант MVS для ВМ.

Заключение

В статье показано наличие в z/VM широкого спектра средств сотрудничества ВМ с СР и между собой. Таким образом к ранее сделанному определению о полной виртуализации как полном функциональном аналоге реальной машины можно добавить наличие средств сотрудничества внутри системы виртуальных машин со всеми ее составными частями.

Отсутствие средств сотрудничества говорит об ущербности той или иной системы виртуализации машин.

Рекомендуется для дополнительного чтения:

Хороший обзор всех системных работ в СССР можно прочитать по этой ссылке: https://www.computer-museum.ru/histsoft/oper_es.htm

Обзор всей ЕС ЭВМ по этой:

https://www.computer-museum.ru/histussr/es_hist.htm

Автор обеих статей В.В Пржиялковский Герой Социалистического Труда, лауреат Государственной премии, три ордена. Главный и генеральный конструктор нескольких ЭВМ (не только ЕС ЭВМ). Автор книги «Электронная вычислительная машина ЕС-1020» 1975 год. Уверен на этой книге выросли тысячи, десяткм тысяч специалистов в ИТ во времена СССР.

Комментарии (14)


  1. Litemanager_remoteadmin
    14.11.2025 03:38

    Спасибо , не знал что такое было еще в Советском союзе


    1. romxxxx
      14.11.2025 03:38

      Это было не в "Советском союзе", это было в IBM System/370


      1. zVlad909 Автор
        14.11.2025 03:38

        Никто и никогда и нигде в СССР не пытался присваивать лавры ИБМ. И без этого было сного собственных заслуг перед страной в одни из самых тяжелых ее времен.

        Дай бог России чем нибудь хоть отдаленно похожем отличиться в ИТ. Пока признаков этому нет. Все также волочимся за Западом собирая крохи с барского стола и не можем даже создать такую ОС (пусть на базе какой то) чтобы она действительно заняла ведущее место в ИТ России.

        Вы скажите их много. Да много, но нет одной. И все эти много гораздо более "аналоги" чем были советские ОС ЕС, СВМ ЕС, ОС 7 ЕС, МОС ЕС.


    1. zVlad909 Автор
      14.11.2025 03:38

      Да, было много. Жаль только что современной России не досталось из того ничего.

      Хороший обзор все системных работ в СССР можно прочитать по этой ссылке: https://www.computer-museum.ru/histsoft/oper_es.htm

      Обзор всей ЕС ЭВМ по этой:

      https://www.computer-museum.ru/histussr/es_hist.htm

      Автор обеих статей В.В Пржиялковский Герой Сциалистического Труда, лауреат Государственной премии, три ордена. Главный и генеральный конструктор нескольких ЭВМ (не только ЕС ЭВМ). Автор книги "Электронная вычислительная машина ЕС-1020 " 1975 год.


  1. Zhuravlev-A-E
    14.11.2025 03:38

    СВМ (z/VM)

    СВМ это же в основном переделанная копия VM/370 +/-. А z/VM это конечно развитие VM/370/..., но появилась гораздо позже, в 2000, ЕМНИП

    В ОС 7 ЕС такими системами были ПДО (CMC)

    CMS?


    1. zVlad909 Автор
      14.11.2025 03:38

      СВМ это же в основном переделанная копия VM/370 +/-. А z/VM это конечно развитие VM/370/..., но появилась гораздо позже, в 2000, ЕМНИП

      Переделаная? Зачем ее было переделывать? ЕС ЭВМ это прогрпммно совместимые с S/370 машины. Бери любую систему ИБМ и она будет работать на ЕС ЭВМ.

      Я использую z/VM не VM/370 просто потому что в наши дни уже даже не найти доков по VM/370. А то про что я говорю и ссылаюсь на z одинаково и там и там.

      Сам я не работал непосредственно с VM более 30 лет. Но знаю что случись нужда сяду и начну работать в z/VM сходу.

      CMS?

      Исправил. Спасибо за наводку. Ценю.


      1. Zhuravlev-A-E
        14.11.2025 03:38

        Зачем ее было переделывать?

        Названия, сообщения, кое-какой функционал, ...

        И вообще, аполитично рассуждаешь, клянусь, честное слово! )

        Бери любую систему ИБМ и она будет работать на ЕС ЭВМ.

        Это да, даже до какой-то степени работало в сочетаниях CMS на СВМ и ПДО на VM/370


        1. zVlad909 Автор
          14.11.2025 03:38

          Названия, сообщения,  ....

          Это не бог весть какие переделки. Хотя сообщения на русском языке, таким как я с немецким в школе и институте, а также документация на русском (а в случае с СВМ это был профессиональный, не в смысле языкв а в смысле ИТ, перевод. Его делали те люди кто и в исходных текстах копались), это было вообще архи важно и эффективно.

          кое-какой функционал, ....

          Не кое какой, а весьма приличный. Взять тот же БОС. Вроде бы это IBM OS VS1, но это работало на ВМ с использованием средств сотрудничества. Вы предатавляете сколько и какой это работа была? А людей и средств у НИЦЭВТ поменьше поди было чем в ИБМ.

          Взять тот же СВМ. Мне друзья из НИИ ЭВМ (мы стали друзьями потому что я каждый год ездил в командировки раз по шесть в Минск. Привозил им мои ленты с дампами СВМ, и брал у них ленты с новыми изменениями) говорили что в новых версиях VM IBM они обнаруживали движения, которые они начинали имея старую версию и еще больше того. Т.е. они двигались в том же направлении только медленнее. Тем неменее у наших был и свой функционал, отсутствующий в IBM VM, и аналоги лучшего качества.

          Последнии годы работы с СВМ были такими: ставилась VM/SP новой версии и к ней пакет изменений от НИИ ЭВМ. Без этих изменений рабоать с голой VM/SP было неудобно.


          1. Zhuravlev-A-E
            14.11.2025 03:38

            сообщения на русском языке ... это было вообще архи важно и эффективно ... Не кое какой, а весьма приличный. Взять тот же БОС ... тот же СВМ

            Вы сами отвечаете на ваш же вопрос ("Зачем ее было переделывать?")

            БОС ... Вы предатавляете сколько и какой это работа была?

            Примерно представляю ;) Да, где то БОС хорошо помог, но где-то так и не смогли запустить легаси под БОС и у них по крайней мере до середины нулевых работала ОС ЕС 6.1 с примусом

            ставилась VM/SP новой версии и к ней пакет изменений от НИИ ЭВМ. Без этих изменений рабоать с голой VM/SP было неудобно

            Так же из ПДО брали некоторые полезные доработки и перетаскивали в CMS (благо исходники были и можно было подправлять в случаях неполной совместимости)


            1. zVlad909 Автор
              14.11.2025 03:38

              Примерно представляю ;) Да, где то БОС хорошо помог, но где-то так и не смогли запустить легаси под БОС и у них по крайней мере до середины нулевых работала ОС ЕС 6.1 с примусом

              Уж не про ВЦ ли ЖД речь? Я так и не смог их уболтать перейти под СВМ с их ОС ЕС 6.1, которую они еще и "уродывали" изменение в UCB для их телекоммуникационных устройств. Хотя успешный тест был. Для это пришлось использовать режим СВМ Virtual-Real V=R. Это когда память ВМ (только одной еа одну СВМ) фиксируется в реальной памяти. Но они гоняли одно приложение на одной реальной машине (ЕС-1045), а вторая стояла рядом включеная и ничего не делала. На случай если сломается основная. Никогда за много лет она, насколько я знаю, не момалась. Может иногда для проверки работу переключали.

              Что касаемо Примуса то почему бы ему было не работать в БОС? Сам я, до СВМ поработал в разных мониторах дмалоговой работы и всегда когда переводил тот или иной ВЦ на СВМ уговаривал их использовать ПДО(CMS). Редактор текстов XEDIT превосходил все существующие на тот момент редакторы. А вместе с REXX убивалась всякая необходимость в Примусах, Око, Джесси, Джеки. Сам я правда иногда использовал Око, потму что это была ппрограмма больше для системщиков чем для программистов.

              Так же из ПДО брали некоторые полезные доработки и перетаскивали в CMS (благо исходники были и можно было подправлять в случаях неполной совместимости)

              Я таким мазохизмом не занимался. Я сразу выбрал СВМ и шел с ним плечо к плечу до конца. Исходники у меня тоже были, но я их использавал иначе.

              Ну а Вас, как я понимаю, за основу брался голый VM/SP и пополнялся из СВМ по меренадобности. А что делали в смысле программ обработки машинных сбоев, которые быть уникальны для каждого процессора?

              Кстати вспомнил. Одна организация в Челябинске имела и работала на VM/370. Они даже раньше меня начали работать с виртуальными машмнами. Я еще занимался ОС ЕС 6.1. Они со временем перешли на СВМ. С моей помощью конечно.


          1. bear11
            14.11.2025 03:38

            Интересно, а "поток обратно" заимствований в IBM zOS из русских ОС был? В 90-х?


            1. zVlad909 Автор
              14.11.2025 03:38

              Интересно, а "поток обратно" заимствований в IBM zOS из русских ОС был? В 90-х?

              Если говорить про zOS то конечно нет. Предшественником zOS была MVS. С ней очень мало кто работал и мало кто использовал в СССР. ИБМ стал защищать свои машины от клонирования и новые вервии MVS уже не могли работать на советских ЕС ЭВМ.

              В MVS ИБМ сделал такой рывок что все что могли сделать в СССР стало в принципе не актуално. Да и не много было сделано в ОС ЕС 6.1. БОС тоже не был интересен ИБМ, опять же из-за MVS и GCS, который был под VM и был подмножеством MVS. Впрочем GCS и сейчас есть в zVM.

              Что касаемо СВМ ЕС то знаю что ИБМ кое что позаимствовал у НИИ ЭВМ. Точно знаю что средство трассировки ВМ в оригинальной VM/SP было хуже чем от НИИ ЭВМ.

              ИБМ и вообще Запад позаимствовал много специалистов ЕС ЭВМ. Вот и ваш покорный слуга 25 лет откалымил в Канаде (всяко, скажежите, лучше чем отканадить на Калыме).


  1. Vladimir118
    14.11.2025 03:38

    Ага, помню как начинал работать на ЕС 1022 потом ЕС 1033.

    На ОС 6.1 в MVT использовали подсистему ввода-вывода КРОС 4.1.

    Так вот получили CVM с БОС 7.0.

    Руководство поставило цель интегрировать КРОС 4.1 в БОС 7.0, что было успешно сделано.

    В некоторые исходники КРОС 4.1 были внесены изменения для нормальной работы, а то ввод-вывод на принтера в никуда улетал.

    До сих пор имеется толмут системных таблиц (DCB, TCP, TIOT и т д.) от ОС 6.1 MVT


    1. zVlad909 Автор
      14.11.2025 03:38

      Руководство поставило цель интегрировать КРОС 4.1  ....

      КРОС это JES2 или JES3 была? Гугл ИИ ответил на вопрос "JES КРОСС 4.1" так:

      The query "КРОС 4.1 JES" likely refers to the КРОС 4.1 software or system component related to the JES (Job Entry Subsystem), possibly in a Russian-language context for a mainframe environment. Without further context, the exact meaning is unclear  ....

      Больше ничего не вышло. В СССР была и эта системная компонента (Jes) адаптирована, но широкого применения не получила. Так же как и CICS, IMS, Cobol и наверное другие хорошие вещи из номенклатуры ИБМ продуктов (и не только ИБМ но для ИБМ МФ).

      До сих пор имеется толмут системных таблиц (DCB, TCP, TIOT и т д.) от ОС 6.1 MVT

      Я все что у меня было на бумаге давно выбросил Все это есть онлайн и в более актуальном виде.

      Вы наверняка знаете что если у вас есть доступ к системе, то все эти блоки проаисаны в SYS1.MACLIB или SYS1.SAMPLIB. Увы не могу проверить, буквально вчера остановил все системы на наших МФ.