VM/370
VM/370 (Virtual Machine/370) — это операционная система для мейнфреймов IBM System/370, разработанная компанией IBM и выпущенная в 1972 году. Она реализует концепцию виртуализации, предоставляя каждому пользователю полную, изолированную копию аппаратного обеспечения мейнфрейма (виртуальную машину), на которой можно запускать собственные операционные системы, включая более ранние версии OS/360, DOS/360 и CMS (Conversational Monitor System). VM/370 стала одной из первых коммерчески успешных систем, реализующих виртуализацию на уровне аппаратной архитектуры, и оказала значительное влияние на развитие вычислительной техники, включая современные гипервизоры.
История
Предшественники
Разработка VM/370 началась с исследовательского проекта CP/CMS (Control Program / Cambridge Monitor System) в Кембриджском научном центре IBM в середине 1960-х годов. CP/CMS, работавший на мейнфрейме IBM System/360-67, продемонстрировал возможность создания эффективных виртуальных машин, полностью воспроизводящих аппаратную архитектуру. Однако System/360-67 не имел аппаратной поддержки виртуализации, и CP/CMS полагался на сложное программное обеспечение для эмуляции.
Разработка и выпуск
В 1970 году IBM выпустила System/370, которая, в отличие от System/360, изначально проектировалась с учётом требований виртуализации. В 1972 году, с выходом модели System/370-158, была представлена аппаратная поддержка виртуализации — Dynamic Address Translation (DAT) и инструкция Start Interpretive Execution (SIE). На основе этих нововведений IBM создала VM/370, которая стала официальной заменой CP/CMS. Первая версия, VM/370 Release 1, была выпущена в 1972 году.
Развитие и эволюция
VM/370 активно развивалась в 1970-х и 1980-х годах. Ключевые версии включали:
- VM/370 Release 2 (1973): Добавлена поддержка виртуальных машин с расширенной памятью.
- VM/370 Release 6 (1976): Внедрена поддержка виртуальных машин с плавающей запятой и улучшена производительность.
- VM/370 Release 7 (1979): Введена поддержка виртуальных машин с 31-разрядной адресацией (вместо 24-разрядной), что позволило адресовать до 2 ГБ памяти.
- VM/SP (VM/System Product) (1980): Унифицированная версия, объединившая VM/370 и CMS. VM/SP стала основной операционной системой для мейнфреймов IBM на протяжении 1980-х годов.
- VM/XA (VM/Extended Architecture) (1983): Версия, оптимизированная для архитектуры System/370 XA, поддерживающая 31-разрядную адресацию и расширенные возможности управления памятью.
- VM/ESA (VM/Enterprise Systems Architecture) (1990): Версия, адаптированная для архитектуры ESA/390, включающая поддержку 64-разрядной адресации (в более поздних версиях).
- z/VM (2000): Современная версия VM/370, работающая на мейнфреймах IBM Z. z/VM поддерживает 64-разрядную адресацию, виртуализацию на уровне процессора и памяти, а также интеграцию с Linux.
Архитектура и принцип работы
Гипервизор (Control Program)
VM/370 состоит из двух основных компонентов: Control Program (CP) — гипервизора, и Conversational Monitor System (CMS) — операционной системы для интерактивной работы. CP управляет аппаратными ресурсами мейнфрейма и создаёт виртуальные машины, каждая из которых является полной копией аппаратной архитектуры System/370. CP использует аппаратную поддержку виртуализации (SIE-инструкцию) для прямого выполнения большинства инструкций гостевых операционных систем на реальном процессоре, что обеспечивает высокую производительность.
Виртуальные машины
Каждая виртуальная машина (VM) имеет собственный:
- Виртуальный процессор: Эмулирует архитектуру System/370, включая регистры, память и систему команд.
- Виртуальная память: Адресное пространство, управляемое через DAT-таблицы, которые отображают виртуальные адреса на физические.
- Виртуальные устройства ввода-вывода: Эмулируют дисководы, ленточные накопители, принтеры и терминалы. CP управляет доступом к реальным устройствам через виртуальные каналы.
- Виртуальная консоль: Терминал, через который пользователь взаимодействует с виртуальной машиной.
CMS (Conversational Monitor System)
CMS — это однопользовательская операционная система, работающая внутри виртуальной машины. Она предоставляет интерактивную среду для разработки, отладки и выполнения программ. CMS включает:
- Командный интерпретатор: Позволяет выполнять команды, такие как
DIR(список файлов),COPY(копирование),RUN(запуск программы). - Файловая система: Использует виртуальные диски (мини-диски), которые могут быть общими между несколькими виртуальными машинами.
- Редактор: Встроенный текстовый редактор (например, XEDIT) для создания и редактирования файлов.
- Поддержка языков программирования: CMS включает компиляторы и интерпретаторы для FORTRAN, COBOL, PL/I, Assembler и других языков.
Управление ресурсами
CP распределяет процессорное время, память и устройства ввода-вывода между виртуальными машинами. Используется планировщик, основанный на приоритетах, который может выделять кванты времени для каждой виртуальной машины. Виртуальные машины могут быть настроены на работу в пакетном режиме (batch) или в интерактивном режиме (time-sharing).
Применение
Разработка и тестирование
VM/370 широко использовалась для разработки и тестирования операционных систем и прикладного ПО. Разработчики могли запускать несколько версий OS/360, DOS/360 или CMS на одной физической машине, изолируя их друг от друга. Это позволяло отлаживать системные компоненты без риска повредить основную среду.
Образовательные и исследовательские цели
В университетах и исследовательских центрах VM/370 использовалась для обучения студентов архитектуре мейнфреймов и операционных систем. Студенты могли получить доступ к виртуальной машине с полными правами администратора, не нарушая работу других пользователей.
Производственные среды
VM/370 применялась в корпоративных средах для консолидации нескольких рабочих нагрузок на одном мейнфрейме. Например, на одной физической машине могли одновременно работать:
- Пакетная обработка: Запуск заданий JCL (Job Control Language) в виртуальной машине с OS/360.
- Интерактивная работа: Пользователи, работающие в CMS через терминалы.
- Серверные приложения: Запуск баз данных (например, IMS) или транзакционных систем (например, CICS) в отдельных виртуальных машинах.
Тестирование совместимости
VM/370 позволяла тестировать новое ПО на разных версиях операционных систем без необходимости физического переключения аппаратного обеспечения. Это было особенно важно для IBM, которая использовала VM/370 для внутреннего тестирования своих продуктов.
Критика и ограничения
Производительность
Хотя аппаратная поддержка виртуализации (SIE) значительно повысила производительность, VM/370 всё же имела накладные расходы на управление виртуальными машинами. Для задач, требующих максимальной производительности (например, высоконагруженные базы данных), предпочтительнее было запускать операционную систему напрямую на физическом оборудовании.
Сложность управления
Настройка и администрирование VM/370 требовали высокой квалификации. Администраторы должны были управлять конфигурациями виртуальных машин, распределением ресурсов и виртуальными устройствами. Ошибки в конфигурации могли привести к сбоям в работе нескольких виртуальных машин одновременно.
Ограничения по памяти
В ранних версиях VM/370 (до VM/XA) виртуальные машины были ограничены 24-разрядной адресацией, что позволяло адресовать только до 16 МБ памяти. Это ограничение сдерживало запуск крупных приложений.
Зависимость от аппаратного обеспечения
VM/370 была тесно связана с архитектурой System/370. Перенос на другие платформы был невозможен без серьёзной переработки, что ограничивало её применение только мейнфреймами IBM.
Влияние и наследие
VM/370 стала основой для современных гипервизоров, таких как VMware ESXi, Microsoft Hyper-V и KVM. Концепция виртуальных машин, реализованная в VM/370, была адаптирована для x86-архитектуры, что привело к революции в области серверной виртуализации. Многие идеи, такие как изоляция ресурсов, динамическое распределение памяти и поддержка множества гостевых операционных систем, были заимствованы из VM/370.
VM/370 также повлияла на развитие операционных систем с разделением времени (time-sharing). CMS, работающая внутри виртуальной машины, стала одной из первых интерактивных сред для мейнфреймов, предоставляя пользователям быстрый доступ к вычислительным ресурсам.
Современная версия VM/370 — z/VM — продолжает использоваться на мейнфреймах IBM Z. Она поддерживает 64-разрядную адресацию, виртуализацию на уровне процессора и памяти, а также интеграцию с Linux. z/VM остаётся ключевым компонентом для консолидации серверов, облачных вычислений и тестирования на платформе IBM Z.
Источники
- IBM Corporation. VM/370 Introduction and System Summary. IBM Systems Reference Library, 1972.
- IBM Corporation. VM/370 Release 6 Planning and Installation Guide. IBM Systems Reference Library, 1976.
- IBM Corporation. VM/SP System Programmer's Guide. IBM Systems Reference Library, 1980.
- IBM Corporation. z/VM: General Information. IBM Redbooks, 2000.
- Creasy, R. J. The Origin of the VM/370 Time-Sharing System. IBM Journal of Research and Development, 1981.
- Seawright, L. H. VM/370: A Virtual Machine Operating System. Proceedings of the IEEE, 1975.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →