VM/CMS
VM/CMS — это операционная система с виртуальной машиной, разработанная корпорацией IBM для своих мейнфреймов (больших вычислительных машин). VM/CMS представляет собой комбинацию двух компонентов: гипервизора VM (Virtual Machine), который обеспечивает создание и выполнение множества изолированных виртуальных машин, и операционной системы CMS (Conversational Monitor System), работающей в каждой из этих виртуальных машин и предоставляющей пользователю интерактивную среду. Система была впервые выпущена в 1972 году для семейства мейнфреймов IBM System/370 и стала одной из первых коммерчески успешных реализаций паравиртуализации.
История
Разработка VM/CMS велась в исследовательском центре IBM в Кембридже (штат Массачусетс, США) как часть проекта CP-40 (Control Program-40) в середине 1960-х годов. Первоначальная цель заключалась в создании системы, которая позволила бы нескольким пользователям одновременно работать на одном мейнфрейме в интерактивном режиме. К 1967 году была разработана экспериментальная система CP-67 для IBM System/360 Model 67, которая включала в себя гипервизор CP (Control Program) и операционную систему CMS. В 1972 году IBM коммерциализировала эту систему под названием VM/370 (Virtual Machine/370), а CMS стала её пользовательской составляющей.
В 1980-е и 1990-е годы VM/CMS активно использовалась в корпоративных средах, научных учреждениях и государственных организациях, где требовалась высокая надёжность и одновременная работа сотен пользователей. Система прошла через множество версий, включая VM/ESA (Enterprise Systems Architecture), выпущенную в 1988 году, и текущую версию z/VM, представленную в 2000 году для мейнфреймов архитектуры z/Architecture. VM/CMS стала основой для развития многих концепций виртуализации, которые сегодня применяются в таких продуктах, как VMware, Hyper-V и KVM.
В России VM/CMS применялась в государственных учреждениях, банках и научных институтах до середины 2000-х годов, однако с распространением более дешёвых и простых в обслуживании систем на базе x86-архитектуры её использование сократилось. Тем не менее, z/VM остаётся поддерживаемой и развиваемой платформой для критически важных приложений в крупных организациях.
Архитектура и принципы работы
Гипервизор VM
Основой VM/CMS является гипервизор CP (Control Program), который управляет аппаратными ресурсами мейнфрейма (процессорное время, память, устройства ввода-вывода, каналы связи). CP создаёт для каждого пользователя или приложения отдельную виртуальную машину, которая эмулирует полный набор аппаратных средств реального мейнфрейма. Каждая виртуальная машина получает собственную виртуальную память, процессоры (виртуальные CPU) и устройства хранения данных.
Ключевая особенность CP — это паравиртуализация: виртуальные машины не имеют прямого доступа к аппаратному обеспечению, а взаимодействуют с CP через специальные интерфейсы. Это обеспечивает высокий уровень изоляции и безопасности: сбой в одной виртуальной машине не влияет на другие. CP также поддерживает динамическое распределение ресурсов, что позволяет гибко настраивать производительность под нагрузку.
CMS (Conversational Monitor System)
CMS — это операционная система, работающая внутри каждой виртуальной машины. Она предоставляет однопользовательскую интерактивную среду, ориентированную на выполнение команд, редактирование текста, разработку программ и управление файлами. CMS не является многозадачной в полном смысле, так как внутри одной виртуальной машины работает только один пользователь. Однако за счёт большого числа виртуальных машин, каждая из которых может запускать CMS, система обеспечивает параллельную работу многих пользователей.
CMS включает в себя:
- Командный интерпретатор — набор команд для управления файлами, выполнения программ и настройки среды.
- Файловую систему — поддерживались файлы с фиксированной длиной записей (record-based) на дисках (мини-дисках), подключённых к виртуальной машине. Каждый мини-диск мог иметь размер от нескольких мегабайт до нескольких гигабайт.
- Редакторы — встроенные текстовые редакторы (например, XEDIT) для создания и изменения файлов.
- Языки программирования — в CMS доступны компиляторы для языков FORTRAN, COBOL, PL/I, Assembler, а позднее — C, Pascal и REXX.
Связь между виртуальными машинами
VM/CMS поддерживает межмашинное взаимодействие через механизмы CP, такие как виртуальные каналы (virtual channels), очереди сообщений (MSG) и общие диски (shared disks). Это позволяет организовывать распределённые вычисления, при которых несколько виртуальных машин обмениваются данными или выполняют совместные задачи.
Основные возможности и особенности
Многопользовательская работа
VM/CMS была разработана для одновременной работы десятков и сотен пользователей, каждый из которых имел собственную виртуальную машину. Пользователи могли подключаться к системе через терминалы (в том числе удалённые по протоколам IBM 3270) и работать в интерактивном режиме. Это делало VM/CMS альтернативой системам пакетной обработки (таким как OS/360), где пользователь сдавал задание и ждал результата.
Изоляция и безопасность
Каждая виртуальная машина полностью изолирована от других: одна машина не может читать или записывать данные в память другой без явного разрешения CP. Это обеспечивает высокий уровень безопасности, что критически важно для финансовых и государственных приложений. Кроме того, CP строго контролирует доступ к устройствам ввода-вывода, что предотвращает несанкционированное копирование данных.
Гибкость настройки
Система позволяет администратору (системному программисту) задавать для каждой виртуальной машины фиксированный объём памяти, количество виртуальных процессоров, доступ к дисковому пространству и привилегии. Это даёт возможность точно настраивать ресурсы под потребности конкретного пользователя или приложения.
Совместимость с приложениями
Для программы, работающей в виртуальной машине, окружение практически неотличимо от реального мейнфрейма. Поэтому VM/CMS может запускать операционные системы, предназначенные для «голого» железа (например, MVS, DOS/VSE, а позднее Linux), а также прикладное ПО, написанное для мейнфреймов. Это свойство делает VM/CMS платформой для эмуляции и тестирования, а также для выполнения устаревших приложений.
Применение
Корпоративные серверы
До середины 1990-х годов VM/CMS была одной из ведущих платформ для организации серверов в банках, страховых компаниях и государственных учреждениях. Система позволяла запускать на одном мощном мейнфрейме сотни экземпляров приложений (например, системы управления базами данных, финансовые системы и системы бронирования), причём каждая виртуальная машина работала стабильно и автономно.
Научные и образовательные учреждения
VM/CMS активно использовалась в университетах и исследовательских центрах для обучения программированию, проведения численных расчётов и работы с базами данных. Благодаря возможности создавать изолированные среды, студенты могли работать каждый на своей виртуальной машине, не влияя друг на друга.
Разработка и тестирование ПО
Система была популярна среди разработчиков программного обеспечения для мейнфреймов. Она позволяла одновременно запускать несколько версий операционных систем (например, MVS и DOS/VSE) на одном физическом сервере, тестировать их совместимость и отлаживать код без риска повредить основную среду.
Эмуляция и виртуализация устаревших систем
В современной практике VM/CMS (в форме z/VM) используется для выполнения старых приложений, написанных для мейнфреймов IBM, которые невозможно перенести на другие архитектуры. Также она применяется для обучения и имитации работы мейнфреймов в учебных целях.
Примеры использования в России
В СССР и постсоветской России VM/CMS применялась в следующих организациях:
- Государственные банки — для учёта и обработки платёжных документов, ведения расчётных счетов.
- Научно-исследовательские институты (например, Институт атомной энергии имени И. В. Курчатова, ВЦ РАН) — для научных расчётов, ведения баз данных и моделирования.
- Министерство обороны — для автоматизации учёта и управления (по открытым данным).
С переходом на персональные компьютеры и серверы x86 в 1990–2000 годах использование VM/CMS на мейнфреймах сократилось, но в ряде критических систем (например, в некоторых банковских процессах) она продолжает эксплуатироваться до сих пор.
Современное состояние
На 2025 год IBM продолжает поддержку и развитие системы z/VM (версии 7.4, выпущена в 2023 году), которая является прямым преемником VM/CMS. z/VM работает на мейнфреймах серии IBM Z (архитектура z/Architecture) и используется для виртуализации операционных систем Linux, z/OS (преемник MVS) и других. CMS по-прежнему доступна в составе z/VM, хотя её функциональность в значительной мере уступает современным альтернативам. Основное применение z/VM сейчас — это инфраструктура облачных вычислений на мейнфреймах, а также выполнение устаревших приложений.
Технологии, заложенные в VM/CMS (гипервизор, изоляция виртуальных машин, управление ресурсами), оказали существенное влияние на развитие виртуализации в индустрии: они стали концептуальной основой для решений, используемых в дата-центрах и облачных сервисах по всему миру.
Источники
- IBM Corporation. «VM/370: Virtual Machine Facility/370 — Introduction and Planning Guide». IBM, 1972.
- IBM Corporation. «z/VM: General Information Manual». IBM, 2021.
- Creasy, R. J. «The Origin of the VM/370 Time-Sharing System». IBM Journal of Research and Development, 1981.
- Safford, F. «The VM/CMS System: A Tutorial». Proceedings of the IEEE, 1982.
- Ватаманюк, А. И. «Операционные системы ЭВМ. Учебное пособие». М.: Изд-во МГТУ им. Н. Э. Баумана, 1995.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →