Система виртуальных машин: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Метки: с мобильного устройства через мобильное приложение через приложение для Android
 
(не показана 81 промежуточная версия 25 участников)
Строка 1: Строка 1:
{{другое название|СВМ|СВМ}}
[[Изображение:VM_FL.png|thumb|Экран файлового менеджера FILELIST (FL) в СВМ, получен на эмуляторе «ЕСли» в системе «Букет». X — введённая команда вызова редактора XEDIT для соответствующего файла]]
{{Карточка ОС
'''Система Виртуальных Машин''' ([[Аббревиатура|аббр.]] '''СВМ''') — операционная система [[ЕС ЭВМ]], аналог системы [[VM]] фирмы [[IBM]].
| name=СВМ
| family=VM
| developer=[[IBM]], [[НИИЭВМ]]
| source_model=[[Закрытое программное обеспечение|Закрытая]]
| kernel_type=[[Виртуальная машина]]
| license=Proprietary
| working_state=Историческое
}}
[[Файл:VM FL.png|thumb|Экран файлового менеджера <u>FL</u>IST в ПДО СВМ, получен на эмуляторе «ЕСли» в системе «Букет». <tt>X</tt> — введённая команда вызова редактора <tt><u>X</u>EDIT</tt> для соответствующего файла]]
'''Систе́ма виртуа́льных маши́н''' ('''СВМ''') — [[операционная система]] для [[ЕС ЭВМ]], аналог системы [[VM (операционная система)|VM]] фирмы [[IBM]].


== Основные особенности СВМ ==
== Основные особенности СВМ ==
СВМ (VM, и её ранняя версия CP/CMS) — первая система, в которой была реализована технология [[виртуальная машина|виртуальных машин]]. Виртуализация в СВМ была последовательной и полной, в частности, на виртуальной машине можно было запустить другую копию системы СВМ, и так далее. Более того, запуск СВМ на виртуальной машине СВМ был рекомендованным методом генерации новой версии системы для установки. В частности, это означало, что любое реальное устройство ЭВМ могло быть тем или иным методом представлено в виде виртуального устройства на виртуальной машине. {{нет АИ 2|До сих пор ни одна другая реализация виртуальных машин не обладает таким свойством.|21|12|2016}}

СВМ (VM, и её ранняя версия CP/CMS) - первая система, в которой была реализована технология [[виртуальная машина|виртуальных машин]]. Виртуализация в СВМ была последовательной и полной, в частности, на виртуальной машине можно было запустить другую копию системы СВМ, и так далее. Более того, запуск СВМ на виртуальной машине СВМ был рекомендованным методом генерации новой версии системы для установки. В частности, это означало, что любое реальное устройство ЭВМ могло быть тем или иным методом представлено в виде виртуального устройства на виртуальной машине. До сих пор ни одна другая реализация виртуальных машин не обладает таким свойством.


== Статус СВМ ==
== Статус СВМ ==
Система виртуальных машин в социалистическом лагере была впервые адаптирована в версии 1 предприятием «[[Robotron|Роботрон]]» (ГДР), а затем, с версии 2, развивалась [[НИИЭВМ]] (Минск). Благодаря активности НИИЭВМ, СВМ рассматривалась в СССР как один из основных компонентов системного программного обеспечения ЕС ЭВМ и впоследствии стала основой версии 7 [[ОС ЕС]], предлагавшейся в качестве штатного варианта для применения на системах ЕС ЭВМ Ряд-3 и выше. Наибольшее распространение в СССР получили версии СВМ 3 и 4. Версия 5 была выпущена уже в период распада СССР и массового отказа от использования оборудования ЕС ЭВМ, в связи с чем не получила широкого распространения, а под названием «СВМ версия 6» минские специалисты выпустили пакет программ для VM, обеспечивающий её максимальную совместимость с приложениями СВМ.{{нет АИ|21|12|2016}}


С другой стороны, по причинам, не имеющим рационального объяснения, фирма IBM никогда не поощряла использование своей операционной системы VM, и VM всегда позиционировалась маркетингом IBM на вторых ролях по отношению к другим операционным системам мейнфреймов — MVS, OS и даже DOS, гораздо менее технологичным и дружественным к пользователю. Скорее всего, низкий бюджет разработки VM как первоначально экспериментального проекта не позволил финансовому руководству IBM признать её равной тем системам, на которые было затрачено гораздо больше средств.{{нет АИ|21|12|2016}}
Система виртуальных машин в социалистическом лагере была впервые адаптирована в версии 1 предприятием «Роботрон» (ГДР), а затем, с версии 2, развивалась НИИЭВМ (Минск). Благодаря активности НИИЭВМ, СВМ рассматривалась в СССР, как один из основных компонентов системного программного обеспечения ЕС ЭВМ, и впоследствии стала основой версии 7 ОС ЕС, предлагавшейся в качестве штатного варианта для применения на системах ЕС ЭВМ Ряд-3 и выше. Наибольшее распространение в СССР получили версии СВМ 3 и 4.

В то же время, по причинам, не имеющим рационального объяснения, фирма IBM никогда не поощряла использование своей операционной системы VM, и VM всегда позиционировалась маркетингом IBM на вторых ролях по отношению к другим операционным системам мэйнфреймов — MVS, OS и даже DOS, гораздо менее технологичным и дружественным к пользователю. Скорее всего, низкий бюджет разработки VM, как первоначально экспериментального проекта, не позволял финансовому руководству IBM признать её равной тем системам, на которые было затрачено гораздо больше средств.


== Архитектура СВМ ==
== Архитектура СВМ ==
Архитектурно СВМ состояла из нескольких независимых компонентов. Центральным компонентом был монитор виртуальных машин (МВМ, IBM-овское название — CP, Control Program), который управлял аппаратурой реальной ЭВМ и реализовывал набор виртуальных машин с заданной конфигурацией. Остальные компоненты представляли собой операционные системы или системонезависимые программы виртуальных машин, работавшие под управлением МВМ: подсистема диалоговой обработки (ПДО), подсистема сетевой передачи файлов (ПСП), подсистема логической коммутации абонентских пунктов (ПЛК), подсистема анализа дампов (ПАД), подсистема дистанционной передачи файлов (ПДП), подсистема контроля технических средств (ПКТ), средства генерации и обслуживания (СГО).


=== ПДО ===
Архитектурно СВМ состояла из нескольких независимых компонентов. Центральным компонентом был монитор виртуальных машин (МВМ, IBMовское название — CP, Control Program), который управлял аппаратурой реальной ЭВМ и реализовывал набор виртуальных машин с заданной конфигурацией. Остальные компоненты представляли собой операционные системы или системонезависимые программы виртуальных машин, работавшие под управлением МВМ: подсистема диалоговой обработки (ПДО), подсистема сетевой передачи файлов (ПСП), подсистема логической коммутации абонентских пунктов (ПЛК), подсистема анализа дампов (ПАД), подсистема дистанционной передачи файлов (ПДП), подсистема контроля технических средств (ПКТ), средства генерации и обслуживания (СГО).
'''ПДО''' (Подсистема диалоговой обработки, название IBM — '''CMS''', Conversational Monitor System, ранее Cambridge Monitor System; обратный перевод на английский — PTS, Programming and Testing System) представляла собой основную операционную систему виртуальной машины в СВМ, в которой осуществлялась работа пользователей. ПДО предоставляла пользователю диалоговый интерфейс, фактически работа пользователя за терминалом в ПДО на виртуальной машине напоминала работу на персональном компьютере. Это был очень серьёзный шаг вперёд по сравнению с более ранними операционными системами ЕС ЭВМ, диалоговые возможности которых либо полностью отсутствовали, либо были очень ограниченны.

ПДО (IBMовское название — CMS, Conversational Monitor System, ранее Cambridge Monitor System) представляла собой основную операционную систему виртуальной машины в СВМ, в которой осуществлялась работа пользователей. ПДО предоставляла пользователю диалоговый интерфейс, фактически работа пользователя за терминалом в ПДО на виртуальной машине напоминала работу на персональном компьютере. Это был очень серьёзный шаг вперёд по сравнению с более ранними операционными системами ЕС ЭВМ, диалоговые возможности которых либо полностью отсутствовали, либо были очень ограничены.


=== Служебные подсистемы ===
Подсистемы ПСП, ПЛК, ПАД, ПДП, ПКТ, СГО были предназначены для задач обслуживания системы и прикладными программистами и пользователями не использовались.
Подсистемы ПСП, ПЛК, ПАД, ПДП, ПКТ, СГО были предназначены для задач обслуживания системы и прикладными программистами и пользователями не использовались.


=== Гостевые ОС ===
Кроме того, на виртуальной машине СВМ можно было запускать любую операционную систему ЕС ЭВМ, предназначенную для работы на реальном железе, например, ОС ЕС, ДОС ЕС, МОС ЕС, МВС и т. д. В составе ОС ЕС версии 7 была разработана специальная операционная система БОС, функционально эквивалентная ОС ЕС версии 6 (SVS), но предназначенная специально для работы на виртуальной машине СВМ. БОС, в отличие от подавляющего большинства других системных средств ЕС ЭВМ, являлась самостоятельной разработкой советских программистов, независимой от фирмы IBM. Так как ОС ЕС являлась пакетной системой, пользователи ПДО могли передавать в неё подготовленные пакеты заданий и получать результаты при помощи виртуального [[перфоратор]]а и виртуального [[АЦПУ]].
Кроме того, на виртуальной машине СВМ можно было запускать любую операционную систему ЕС ЭВМ, предназначенную для работы на реальном «железе» (так называемые гостевые ОС) — ОС ЕС, ДОС ЕС, МОС ЕС, МВС и т. д. В составе ОС ЕС версии 7 была разработана специальная операционная система БОС, функционально эквивалентная ОС ЕС версии 6 (SVS), но предназначенная специально для работы на виртуальной машине СВМ. БОС, в отличие от подавляющего большинства других системных средств ЕС ЭВМ, являлась самостоятельной разработкой советских программистов, независимой от фирмы IBM. Так как ОС ЕС являлась пакетной системой, пользователи ПДО могли передавать в неё подготовленные пакеты заданий и получать результаты при помощи виртуального [[перфоратор]]а и виртуального [[АЦПУ]].


=== Производительность монитора виртуальных машин ===
Монитор виртуальных машин теоретически позволял поддерживать до 10000 виртуальных машин на одной реальной системе. На практике количество одновременно активных виртуальных машин ограничивалось производительностью ЭВМ, и могло достигать нескольких десятков.
Монитор виртуальных машин теоретически позволял поддерживать до 10000 виртуальных машин на одной реальной системе. На практике количество одновременно активных виртуальных машин ограничивалось производительностью ЭВМ и могло достигать нескольких десятков.


В ЕС ЭВМ Ряд-3 и выше были реализованы средства микропрограммной поддержки СВМ.
В ЕС ЭВМ Ряд-3 и выше были реализованы средства микропрограммной поддержки СВМ.


== Учёт времени ==
== Совместимость с ОС ЕС ==
Архитектура СВМ позволяла естественным образом организовать учёт использования машинного времени, что было весьма актуально для дорогих в эксплуатации многопользовательских систем. Команда МВМ <tt><u>Q</u>UERY <u>T</u>IME</tt>, доступная пользователю виртуальной машины, позволяла узнать текущие дату и время, а также общую величину процессорного времени реального и виртуального процессоров, использованного в текущем сеансе работы виртуальной машины. Пользовался популярностью нехитрый скрипт на языке [[REXX]], который при выходе из системы выдавал такую команду, умножал полученный результат на стоимость машинного времени системы и сообщал пользователю итоговую сумму, в которую обошлась его работа для эксплуатирующей ЭВМ организации. Для программиста, не занимавшего процессор интенсивными расчётами, а выполнявшего обычную разработку и отладку программ, на ЕС-1066 типичная стоимость машинного времени составляла порядка 10 рублей за рабочий день (то есть примерно была равна заработной плате). Ресурсоёмкие программы при эксплуатации могли использовать на порядки больше процессорного времени. Конечно, программисты в СССР не платили за машинное время из своего кармана, но из этой цифры видно, что труд программистов по оптимизации кода окупался в то время очень быстро.{{нет АИ|21|12|2016}}


== Совместимость с ОС ЕС ==
Помимо возможности использования ОС ЕС и БОС под управлением МВМ, сама ПДО была спроектирована таким образом, чтобы максимально облегчить перенос программ из ОС ЕС. К виртуальной машине ПДО можно было подключать диски в формате ОС ЕС и запускать непосредственно загрузочные модули ОС ЕС специальной командой OSRUN (с определёнными ограничениями на используемые системные вызовы). Кроме того, большинство прикладных программ для ОС ЕС можно было просто перекомпилировать под ПДО, чтобы получить настоящие исполняемые модули ПДО. Системные вызовы ПДО были максимально совместимы с ОС ЕС, большинство прикладных программ для ЕС ЭВМ писалось на их общем подмножестве и могло выполняться как в среде ОС ЕС (и МВС), так и в среде ПДО.
Помимо возможности использования ОС ЕС и БОС под управлением МВМ, сама ПДО была спроектирована таким образом, чтобы максимально облегчить перенос программ из ОС ЕС. К виртуальной машине ПДО можно было подключать диски в формате ОС ЕС и запускать непосредственно загрузочные модули ОС ЕС специальной командой <tt><u>OSRUN</u></tt> (с определёнными ограничениями на используемые системные вызовы). Кроме того, большинство прикладных программ для ОС ЕС можно было просто перекомпилировать под ПДО, чтобы получить настоящие исполняемые модули ПДО. Системные вызовы ПДО были максимально совместимы с ОС ЕС, большинство прикладных программ для ЕС ЭВМ писалось на их общем подмножестве и могло выполняться как в среде ОС ЕС (и МВС), так и в среде ПДО.


== Разделяемые сегменты ==
== Разделяемые сегменты ==
Для обеспечения эффективного использования системы виртуальной памяти предусматривалось выделение части адресного пространства, по желанию системного программиста, под так называемые разделяемые сегменты. Например, текстовый редактор, компилятор или библиотека поддержки языка программирования могли быть загружены в разделяемый сегмент и, таким образом, все использующие их пользователи фактически обращались к одной и той же копии в виртуальной памяти, вместо того, чтобы создавать отдельную копию для каждой виртуальной машины.

Для обеспечения эффективного использования системы виртуальной памяти, предусматривалось выделение части адресного пространства, по желанию системного программиста, под так называемые разделяемые сегменты. Например, текстовый редактор, компилятор или библиотека поддержки языка программирования могли быть загружены в разделяемый сегмент и, таким образом, все использующие их пользователи фактически обращались к одной и той же копии в виртуальной памяти, вместо того, чтобы создавать отдельную копию для каждой виртуальной машины.


== Работа с файлами в ПДО ==
== Работа с файлами в ПДО ==
В отличие от систем ДОС ЕС, ОС ЕС и МВС, предоставлявших очень громоздкую и неудобную для повседневного использования систему управления файлами (точнее, в их терминологии, наборами данных), в ПДО была реализована концепция так называемых мини-дисков с возможностью использования собственной файловой системы. Мини-диск представлял собой виртуальное дисковое устройство, эмулируемое МВМ. Мини-диск можно было отформатировать в файловой системе ПДО, в таком случае он содержал единый каталог файлов. Идентификатор файла состоял из имени файла (до 8 символов), расширения (до 8 символов) и режима файла (1 буква диска и 1 цифра режима доступа). Компоненты имени разделялись пробелом, режим файла можно было опускать целиком или указывать только букву диска. Например, файл с именем <tt>PROFILE EXEC A1</tt> — файл автозагрузки системы ПДО типа <tt>EXEC</tt> (на одном из скриптовых языков) на основном пользовательском мини-диске <tt>A</tt>, с обычным режимом доступа <tt>1</tt>.


Структура файлов ПДО соответствовала структуре наборов данных ОС ЕС (за исключением наиболее сложных типов наборов данных), то есть каждый файл разбивался на записи определённого формата и длины. Основным форматом текстовых файлов в ПДО был формат <tt>F(80)</tt>, то есть образ виртуальной колоды 80-колоночных [[Перфокарта|перфокарт]].
В отличие от систем ДОС ЕС, ОС ЕС и МВС, предоставлявших очень громоздкую и неудобную для повседневного использования систему управления файлами (точнее, в их терминологии, наборами данных), в ПДО была реализована концепция так называемых минидисков с возможностью использования собственной файловой системы. Минидиск представлял собой виртуальное дисковое устройство, эмулируемое МВМ. Минидиск можно было отформатировать в файловой системе ПДО, в таком случае он содержал единый каталог файлов. Идентификатор файла состоял из имени файла (до 8 символов), расширения (до 8 символов) и режима файла (1 буква диска и 1 цифра режима доступа). Компоненты имени разделялись пробелом, режим файла можно было опускать целиком или указывать только букву диска. Например, файл с именем PROFILE EXEC A1 — файл автозагрузки системы ПДО типа EXEC (на одном из скриптовых языков) на основном пользовательском минидиске A, с обычным режимом доступа 1.


Мини-диски могли совместно использоваться несколькими виртуальными машинами, так был организован совместный доступ к мини-дискам с системными программами и доступ пользователей к данным друг друга. Предусматривалась парольная защита мини-дисков по чтению и записи.
Структура файлов ПДО соответствовала структуре наборов данных ОС ЕС (за исключением наиболее сложных типов наборов данных), то есть каждый файл разбивался на записи определённого формата и длины. Основным форматом текстовых файлов в ПДО был формат F(80), то есть образ виртуальной колоды 80-колоночных перфокарт.


В целях совместимости с ДОС ЕС, ОС ЕС и МВС, в ПДО преимущественно использовался механизм внешней ассоциации файлов, заимствованный из этих систем. Хотя программа в ПДО могла открыть файл на диске непосредственно по его имени, фактически так были устроены только немногочисленные системные программы типа файловых утилит, текстового редактора и т. п. Штатным механизмом для прикладных программ было ассоциирование файла на диске (или устройства) с именем файла в программе при помощи команды <tt><u>FI</u>LEDEF</tt>, выдаваемой перед выполнением программы (аналог оператора <tt>DD</tt> в языке [[JCL]] для ДОС, ОС и МВС). Например, команда <tt><u>FI</u>LEDEF SYSPRINT <u>DISK</u> TEST LISTING</tt> означала, что системный вывод (<tt>SYSPRINT</tt>) следующих за ней программ следует записывать в файл на мини-диске ПДО с именем <tt>TEST LISTING</tt> (и подразумеваемым режимом <tt>A1</tt>).
Минидиски могли совместно использоваться несколькими виртуальными машинами, так был организован совместный доступ к минидискам с системными программами и доступ пользователей к данным друг друга. Предусматривалась парольная защита минидисков по чтению и записи.

В целях совместимости с ДОС ЕС, ОС ЕС и МВС, в ПДО преимущественно использовался механизм внешней ассоциации файлов, заимствованный из этих систем. Хотя программа в ПДО могла открыть файл на диске непосредственно по его имени, фактически так были устроены только немногочисленные системные утилиты типа файловых утилит, текстового редактора и т.п. Штатным механизмом для прикладных программ было ассоциирование файла на диске (или устройства) с именем файла в программе при помощи команды <u>FI</u>LEDEF, выдаваемой перед выполнением программы (аналог оператора DD в языке [[JCL]] для ДОС, ОС и МВС).


== Усечения и аббревиатуры ==
== Усечения и аббревиатуры ==
Для удобства диалоговой работы в СВМ в большинстве команд МВМ, ПДО и системных программ, а также в некоторых операндах команд допускалось использование усечений и аббревиатур. Например, слово <tt>READER</tt> могло вводиться в виде одного из усечений <tt>READER</tt>, <tt>READE</tt>, <tt>READ</tt>, <tt>REA</tt>, <tt>RE</tt>, <tt>R</tt> или в виде аббревиатуры <tt>RDR</tt>. Более часто используемые команды и операнды имели более короткие усечения, вплоть до одной буквы, более редко используемые — более длинные. В описании синтаксиса обязательная часть усечения выделялась большими буквами или подчёркивалась, например: <tt><u>R</u>EADER</tt> | <tt><u>RDR</u></tt>.

Для удобства диалоговой работы в СВМ в большинстве команд МВМ, ПДО и системных программ, а также в некоторых операндах команд допускалось использование усечений и аббревиатур. Например, слово READER могло вводиться в виде одного из усечений READER, READE, READ, REA, RE, R или в виде аббревиатуры RDR. Более часто используемые команды и операнды имели более короткие усечения, вплоть до одной буквы, более редко используемые — более длинные. В описании синтаксиса обязательная часть усечения выделялась большими буквами или подчёркивалась, например: <u>R</u>EADER&nbsp;|&nbsp;<u>RDR</u>


== Редактор XEDIT ==
== Редактор XEDIT ==
[[Файл:VM XEDIT.png|thumb|Экран текстового редактора <tt><u>X</u>EDIT</tt> в ПДО СВМ, получен на эмуляторе «ЕСли» в системе «Букет»]]


Начиная с СВМ версии 3, в ПДО применялся очень развитый текстовый редактор <tt><u>X</u>EDIT</tt>, который, в частности, полностью управлялся на языке REXX. С помощью скриптов на REXX для XEDIT реализовывались многие сложные системы, такие, например, как системы коллективного управления версиями программ. Впоследствии клоны XEDIT (KEDIT, SEDIT, THE) были реализованы в различных операционных системах персональных компьютеров, но не очень прижились, так как идеология XEDIT в значительной степени была ориентирована на особенности работы с терминалом мейнфрейма. Редактор THE (The Hessling Editor) в настоящее время распространяется под лицензией [[GPL]] для платформ [[Unix]], [[z/OS]], [[MS-DOS]], [[OS/2]], [[Windows]], [[QNX]], [[Amiga]], [[BeOS]], [[Mac OS X]]. Интересно, что распространением версии THE для z/OS занимается сама фирма IBM.
[[Изображение:VM_XEDIT.png|thumb|Экран текстового редактора XEDIT в СВМ, получен на эмуляторе «ЕСли» в системе «Букет»]]

В ПДО применялся очень развитый текстовый редактор XEDIT (команда Xedit), который, в частности, полностью управлялся на языке REXX. С помощью скриптов на REXX для XEDITа реализовывались многие сложные системы, такие, например, как системы коллективного управления версиями программ. Впоследствии клоны XEDITа (KEDIT, THE) были реализованы в операционных системах персональных компьютеров, но не очень прижились, так как идеология XEDIT в значительной степени была ориентирована на особенности работы с терминалом мэйнфрейма.


== Электронная почта ==
== Электронная почта ==

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


== Системы программирования и язык REXX ==
== Системы программирования и язык REXX ==
Основными средствами программирования для ПДО были скриптовые языки [[REXX]] и более ранние [[EXEC]] и [[EXEC2]], [[ассемблер]]ы, компиляторы с языков [[ПЛ/1]], [[Фортран]], [[Кобол]]. Также, для ПДО было реализовано множество других систем программирования, таких как: [[Паскаль (язык программирования)|Паскаль]], [[Си (язык программирования)|Си]], [[Лисп]], [[Пролог (язык программирования)|Пролог]], система символьных вычислений [[REDUCE]], технологический язык для разработки системного ПО [[PLS (язык программирования)]] и т. д.


В СВМ версии 3 в состав ПДО был впервые включён интерпретатор языка [[REXX]], получившего затем более широкое распространение в операционной системе [[OS/2]] и реализованного также для многих других операционных систем.
Интерпретатор языка REXX был впервые включён в состав ПДО в СВМ версии 3. Язык REXX получил впоследствии широкое распространение в операционной системе [[OS/2]] и был реализован также для многих других операционных систем. В СВМ популярность REXX среди пользователей была более ограничена, чем в OS/2, так как скриптовый язык предыдущих версий ПДО, EXEC2, обеспечивал достаточно широкие возможности, и необходимость в использовании более сложного языка REXX возникала реже, в то время как в OS/2 единственной альтернативой REXX был крайне ограниченный язык [[.bat]]/.cmd-файлов.

Основными средствами программирования для ПДО были скриптовые языки [[REXX]] и более ранние [[EXEC]] и [[EXEC2]], [[ассемблер]], компиляторы с языков [[PL/I]], [[Фортран]], [[Кобол]]. Также для ПДО было реализовано множество других систем программирования, таких как [[Паскаль]], [[Си]], [[Лисп]], система символьных вычислений [[REDUCE]] и т. д.


== Литература ==
== Рекомендуемая литература ==
* Тимонин В. И. СВМ ЕС: Основы функционирования и средства обеспечения пользователя. — М.: Изд-во МАИ, 1990. — 232 с.: ил. ISBN 5-7035-0157-1
* Тимонин В. И. СВМ ЕС: Основы функционирования и средства обеспечения пользователя. — М.: Изд-во МАИ, 1990. — 232 с.: ил. ISBN 5-7035-0157-1
* Система виртуальных машин для ЕС ЭВМ: Справочник/И. М. Булко, Н. Н. Дорожко, Л. И. Дудкин и др.; Под ред. Э. В. Ковалевича. — М.: Финансы и статистика, 1985. — 360 с.
* Система виртуальных машин для ЕС ЭВМ: Справочник/И. М. Булко, Н. Н. Дорожко, Л. И. Дудкин и др.; Под ред. Э. В. Ковалевича. — М.: Финансы и статистика, 1985. — 360 с.
* Пекер Ф. Л., Морозов Б. А. Прикладное программирование в системе виртуальных машин ЕС ЭВМ: Справочное пособие. — Минск: Вышэйшая школа, 1989. — 208 с.: ил. ISBN 5-339-00213-6
* Потапов В. И., Денщиков А. В., Шкода О. Б. Работа в системе виртуальных машин ОС ЕС/Под ред. В. Н. Лебедева. — М.: Финансы и статистика, 1988. — 253 с.: ил. ISBN 5-279-00117-1


[[Категория:Операционные системы]]
[[Категория:Операционные системы мейнфреймов]]
[[Категория:Программное обеспечение ЕС ЭВМ]]
[[Категория:Программное обеспечение ЕС ЭВМ]]

Текущая версия от 08:02, 16 декабря 2023

СВМ
Экран текстового редактора THE в Mac OS X
Экран текстового редактора THE в Mac OS X
Разработчик IBM, НИИЭВМ
Семейство ОС VM
Тип ядра Виртуальная машина
Лицензия Proprietary
Состояние Историческое
Экран файлового менеджера FLIST в ПДО СВМ, получен на эмуляторе «ЕСли» в системе «Букет». X — введённая команда вызова редактора XEDIT для соответствующего файла

Систе́ма виртуа́льных маши́н (СВМ) — операционная система для ЕС ЭВМ, аналог системы VM фирмы IBM.

Основные особенности СВМ

[править | править код]

СВМ (VM, и её ранняя версия CP/CMS) — первая система, в которой была реализована технология виртуальных машин. Виртуализация в СВМ была последовательной и полной, в частности, на виртуальной машине можно было запустить другую копию системы СВМ, и так далее. Более того, запуск СВМ на виртуальной машине СВМ был рекомендованным методом генерации новой версии системы для установки. В частности, это означало, что любое реальное устройство ЭВМ могло быть тем или иным методом представлено в виде виртуального устройства на виртуальной машине. До сих пор ни одна другая реализация виртуальных машин не обладает таким свойством.[источник не указан 2926 дней]

Статус СВМ

[править | править код]

Система виртуальных машин в социалистическом лагере была впервые адаптирована в версии 1 предприятием «Роботрон» (ГДР), а затем, с версии 2, развивалась НИИЭВМ (Минск). Благодаря активности НИИЭВМ, СВМ рассматривалась в СССР как один из основных компонентов системного программного обеспечения ЕС ЭВМ и впоследствии стала основой версии 7 ОС ЕС, предлагавшейся в качестве штатного варианта для применения на системах ЕС ЭВМ Ряд-3 и выше. Наибольшее распространение в СССР получили версии СВМ 3 и 4. Версия 5 была выпущена уже в период распада СССР и массового отказа от использования оборудования ЕС ЭВМ, в связи с чем не получила широкого распространения, а под названием «СВМ версия 6» минские специалисты выпустили пакет программ для VM, обеспечивающий её максимальную совместимость с приложениями СВМ.[источник не указан 2926 дней]

С другой стороны, по причинам, не имеющим рационального объяснения, фирма IBM никогда не поощряла использование своей операционной системы VM, и VM всегда позиционировалась маркетингом IBM на вторых ролях по отношению к другим операционным системам мейнфреймов — MVS, OS и даже DOS, гораздо менее технологичным и дружественным к пользователю. Скорее всего, низкий бюджет разработки VM как первоначально экспериментального проекта не позволил финансовому руководству IBM признать её равной тем системам, на которые было затрачено гораздо больше средств.[источник не указан 2926 дней]

Архитектура СВМ

[править | править код]

Архитектурно СВМ состояла из нескольких независимых компонентов. Центральным компонентом был монитор виртуальных машин (МВМ, IBM-овское название — CP, Control Program), который управлял аппаратурой реальной ЭВМ и реализовывал набор виртуальных машин с заданной конфигурацией. Остальные компоненты представляли собой операционные системы или системонезависимые программы виртуальных машин, работавшие под управлением МВМ: подсистема диалоговой обработки (ПДО), подсистема сетевой передачи файлов (ПСП), подсистема логической коммутации абонентских пунктов (ПЛК), подсистема анализа дампов (ПАД), подсистема дистанционной передачи файлов (ПДП), подсистема контроля технических средств (ПКТ), средства генерации и обслуживания (СГО).

ПДО (Подсистема диалоговой обработки, название IBM — CMS, Conversational Monitor System, ранее Cambridge Monitor System; обратный перевод на английский — PTS, Programming and Testing System) представляла собой основную операционную систему виртуальной машины в СВМ, в которой осуществлялась работа пользователей. ПДО предоставляла пользователю диалоговый интерфейс, фактически работа пользователя за терминалом в ПДО на виртуальной машине напоминала работу на персональном компьютере. Это был очень серьёзный шаг вперёд по сравнению с более ранними операционными системами ЕС ЭВМ, диалоговые возможности которых либо полностью отсутствовали, либо были очень ограниченны.

Служебные подсистемы

[править | править код]

Подсистемы ПСП, ПЛК, ПАД, ПДП, ПКТ, СГО были предназначены для задач обслуживания системы и прикладными программистами и пользователями не использовались.

Гостевые ОС

[править | править код]

Кроме того, на виртуальной машине СВМ можно было запускать любую операционную систему ЕС ЭВМ, предназначенную для работы на реальном «железе» (так называемые гостевые ОС) — ОС ЕС, ДОС ЕС, МОС ЕС, МВС и т. д. В составе ОС ЕС версии 7 была разработана специальная операционная система БОС, функционально эквивалентная ОС ЕС версии 6 (SVS), но предназначенная специально для работы на виртуальной машине СВМ. БОС, в отличие от подавляющего большинства других системных средств ЕС ЭВМ, являлась самостоятельной разработкой советских программистов, независимой от фирмы IBM. Так как ОС ЕС являлась пакетной системой, пользователи ПДО могли передавать в неё подготовленные пакеты заданий и получать результаты при помощи виртуального перфоратора и виртуального АЦПУ.

Производительность монитора виртуальных машин

[править | править код]

Монитор виртуальных машин теоретически позволял поддерживать до 10000 виртуальных машин на одной реальной системе. На практике количество одновременно активных виртуальных машин ограничивалось производительностью ЭВМ и могло достигать нескольких десятков.

В ЕС ЭВМ Ряд-3 и выше были реализованы средства микропрограммной поддержки СВМ.

Учёт времени

[править | править код]

Архитектура СВМ позволяла естественным образом организовать учёт использования машинного времени, что было весьма актуально для дорогих в эксплуатации многопользовательских систем. Команда МВМ QUERY TIME, доступная пользователю виртуальной машины, позволяла узнать текущие дату и время, а также общую величину процессорного времени реального и виртуального процессоров, использованного в текущем сеансе работы виртуальной машины. Пользовался популярностью нехитрый скрипт на языке REXX, который при выходе из системы выдавал такую команду, умножал полученный результат на стоимость машинного времени системы и сообщал пользователю итоговую сумму, в которую обошлась его работа для эксплуатирующей ЭВМ организации. Для программиста, не занимавшего процессор интенсивными расчётами, а выполнявшего обычную разработку и отладку программ, на ЕС-1066 типичная стоимость машинного времени составляла порядка 10 рублей за рабочий день (то есть примерно была равна заработной плате). Ресурсоёмкие программы при эксплуатации могли использовать на порядки больше процессорного времени. Конечно, программисты в СССР не платили за машинное время из своего кармана, но из этой цифры видно, что труд программистов по оптимизации кода окупался в то время очень быстро.[источник не указан 2926 дней]

Совместимость с ОС ЕС

[править | править код]

Помимо возможности использования ОС ЕС и БОС под управлением МВМ, сама ПДО была спроектирована таким образом, чтобы максимально облегчить перенос программ из ОС ЕС. К виртуальной машине ПДО можно было подключать диски в формате ОС ЕС и запускать непосредственно загрузочные модули ОС ЕС специальной командой OSRUN (с определёнными ограничениями на используемые системные вызовы). Кроме того, большинство прикладных программ для ОС ЕС можно было просто перекомпилировать под ПДО, чтобы получить настоящие исполняемые модули ПДО. Системные вызовы ПДО были максимально совместимы с ОС ЕС, большинство прикладных программ для ЕС ЭВМ писалось на их общем подмножестве и могло выполняться как в среде ОС ЕС (и МВС), так и в среде ПДО.

Разделяемые сегменты

[править | править код]

Для обеспечения эффективного использования системы виртуальной памяти предусматривалось выделение части адресного пространства, по желанию системного программиста, под так называемые разделяемые сегменты. Например, текстовый редактор, компилятор или библиотека поддержки языка программирования могли быть загружены в разделяемый сегмент и, таким образом, все использующие их пользователи фактически обращались к одной и той же копии в виртуальной памяти, вместо того, чтобы создавать отдельную копию для каждой виртуальной машины.

Работа с файлами в ПДО

[править | править код]

В отличие от систем ДОС ЕС, ОС ЕС и МВС, предоставлявших очень громоздкую и неудобную для повседневного использования систему управления файлами (точнее, в их терминологии, наборами данных), в ПДО была реализована концепция так называемых мини-дисков с возможностью использования собственной файловой системы. Мини-диск представлял собой виртуальное дисковое устройство, эмулируемое МВМ. Мини-диск можно было отформатировать в файловой системе ПДО, в таком случае он содержал единый каталог файлов. Идентификатор файла состоял из имени файла (до 8 символов), расширения (до 8 символов) и режима файла (1 буква диска и 1 цифра режима доступа). Компоненты имени разделялись пробелом, режим файла можно было опускать целиком или указывать только букву диска. Например, файл с именем PROFILE EXEC A1 — файл автозагрузки системы ПДО типа EXEC (на одном из скриптовых языков) на основном пользовательском мини-диске A, с обычным режимом доступа 1.

Структура файлов ПДО соответствовала структуре наборов данных ОС ЕС (за исключением наиболее сложных типов наборов данных), то есть каждый файл разбивался на записи определённого формата и длины. Основным форматом текстовых файлов в ПДО был формат F(80), то есть образ виртуальной колоды 80-колоночных перфокарт.

Мини-диски могли совместно использоваться несколькими виртуальными машинами, так был организован совместный доступ к мини-дискам с системными программами и доступ пользователей к данным друг друга. Предусматривалась парольная защита мини-дисков по чтению и записи.

В целях совместимости с ДОС ЕС, ОС ЕС и МВС, в ПДО преимущественно использовался механизм внешней ассоциации файлов, заимствованный из этих систем. Хотя программа в ПДО могла открыть файл на диске непосредственно по его имени, фактически так были устроены только немногочисленные системные программы типа файловых утилит, текстового редактора и т. п. Штатным механизмом для прикладных программ было ассоциирование файла на диске (или устройства) с именем файла в программе при помощи команды FILEDEF, выдаваемой перед выполнением программы (аналог оператора DD в языке JCL для ДОС, ОС и МВС). Например, команда FILEDEF SYSPRINT DISK TEST LISTING означала, что системный вывод (SYSPRINT) следующих за ней программ следует записывать в файл на мини-диске ПДО с именем TEST LISTING (и подразумеваемым режимом A1).

Усечения и аббревиатуры

[править | править код]

Для удобства диалоговой работы в СВМ в большинстве команд МВМ, ПДО и системных программ, а также в некоторых операндах команд допускалось использование усечений и аббревиатур. Например, слово READER могло вводиться в виде одного из усечений READER, READE, READ, REA, RE, R или в виде аббревиатуры RDR. Более часто используемые команды и операнды имели более короткие усечения, вплоть до одной буквы, более редко используемые — более длинные. В описании синтаксиса обязательная часть усечения выделялась большими буквами или подчёркивалась, например: READER | RDR.

Редактор XEDIT

[править | править код]
Экран текстового редактора XEDIT в ПДО СВМ, получен на эмуляторе «ЕСли» в системе «Букет»

Начиная с СВМ версии 3, в ПДО применялся очень развитый текстовый редактор XEDIT, который, в частности, полностью управлялся на языке REXX. С помощью скриптов на REXX для XEDIT реализовывались многие сложные системы, такие, например, как системы коллективного управления версиями программ. Впоследствии клоны XEDIT (KEDIT, SEDIT, THE) были реализованы в различных операционных системах персональных компьютеров, но не очень прижились, так как идеология XEDIT в значительной степени была ориентирована на особенности работы с терминалом мейнфрейма. Редактор THE (The Hessling Editor) в настоящее время распространяется под лицензией GPL для платформ Unix, z/OS, MS-DOS, OS/2, Windows, QNX, Amiga, BeOS, Mac OS X. Интересно, что распространением версии THE для z/OS занимается сама фирма IBM.

Электронная почта

[править | править код]

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

Системы программирования и язык REXX

[править | править код]

Основными средствами программирования для ПДО были скриптовые языки REXX и более ранние EXEC и EXEC2, ассемблеры, компиляторы с языков ПЛ/1, Фортран, Кобол. Также, для ПДО было реализовано множество других систем программирования, таких как: Паскаль, Си, Лисп, Пролог, система символьных вычислений REDUCE, технологический язык для разработки системного ПО PLS (язык программирования) и т. д.

Интерпретатор языка REXX был впервые включён в состав ПДО в СВМ версии 3. Язык REXX получил впоследствии широкое распространение в операционной системе OS/2 и был реализован также для многих других операционных систем. В СВМ популярность REXX среди пользователей была более ограничена, чем в OS/2, так как скриптовый язык предыдущих версий ПДО, EXEC2, обеспечивал достаточно широкие возможности, и необходимость в использовании более сложного языка REXX возникала реже, в то время как в OS/2 единственной альтернативой REXX был крайне ограниченный язык .bat/.cmd-файлов.

Литература

[править | править код]
  • Тимонин В. И. СВМ ЕС: Основы функционирования и средства обеспечения пользователя. — М.: Изд-во МАИ, 1990. — 232 с.: ил. ISBN 5-7035-0157-1
  • Система виртуальных машин для ЕС ЭВМ: Справочник/И. М. Булко, Н. Н. Дорожко, Л. И. Дудкин и др.; Под ред. Э. В. Ковалевича. — М.: Финансы и статистика, 1985. — 360 с.
  • Пекер Ф. Л., Морозов Б. А. Прикладное программирование в системе виртуальных машин ЕС ЭВМ: Справочное пособие. — Минск: Вышэйшая школа, 1989. — 208 с.: ил. ISBN 5-339-00213-6
  • Потапов В. И., Денщиков А. В., Шкода О. Б. Работа в системе виртуальных машин ОС ЕС/Под ред. В. Н. Лебедева. — М.: Финансы и статистика, 1988. — 253 с.: ил. ISBN 5-279-00117-1