OpenVMS
OpenVMS (Open Virtual Memory System, ранее — VAX/VMS) — многопользовательская, многозадачная операционная система, разработанная корпорацией Digital Equipment Corporation (DEC) для семейства компьютеров VAX (Virtual Address eXtension). Относится к классу операционных систем реального времени и систем с высокой степенью отказоустойчивости. Отличается кластерной архитектурой, поддержкой симметричной многопроцессорной обработки (SMP) и строгой модульностью ядра. В настоящее время поддерживается и развивается компанией VMS Software, Inc. (VSI).
История
Разработка в DEC (1975—1998)
Разработка VMS началась в 1975 году в рамках проекта по созданию 32-разрядной архитектуры VAX, призванной заменить 16-разрядные PDP-11. Первая версия — VAX/VMS 1.0 — была выпущена в 1977 году одновременно с первым компьютером VAX-11/780. Система изначально проектировалась как преемница RSX-11M, но с принципиально новой виртуальной памятью. Ключевыми архитекторами выступили Дэвид Катлер (впоследствии главный архитектор Windows NT) и Роджер Гудин.
В 1980-х годах VMS доминировала в сегменте корпоративных и научных вычислений, конкурируя с UNIX-системами. В 1984 году вышла версия 4.0, в которой появилась поддержка кластеризации (VAXcluster). В 1990-х годах система была портирована на архитектуру Alpha (версия OpenVMS AXP 1.0, 1992 год), после чего название сменилось на OpenVMS, подчёркивая соответствие стандартам POSIX и X/Open.
Переход к Compaq и HP (1998—2014)
После покупки DEC компанией Compaq в 1998 году, а затем Hewlett-Packard (HP) в 2002 году, развитие OpenVMS продолжилось, но с меньшей интенсивностью. В 2003 году HP объявила о поддержке OpenVMS на архитектуре Itanium (IA-64). Версия 8.3 (2007 год) стала последней, выпущенной под эгидой HP. В 2014 году HP передала права на разработку и поддержку OpenVMS компании VMS Software, Inc. (VSI), созданной бывшими инженерами DEC.
Современный этап (с 2014)
VSI продолжает выпуск обновлений. В 2020 году вышла версия 9.0 для архитектуры x86-64, что стало первым портом на новую аппаратную платформу за 20 лет. В 2023 году анонсирован порт на архитектуру ARM. OpenVMS остаётся нишевой системой, используемой в критически важных инфраструктурах: банковских системах, управлении воздушным движением, атомной энергетике.
Архитектура
Ядро
Ядро OpenVMS — монолитное, модульное, с возможностью загрузки драйверов и системных служб. Основные компоненты:
- Executive — исполнительная система, управляющая процессами, памятью и вводом-выводом.
- I/O Subsystem — подсистема ввода-вывода с поддержкой асинхронных операций и очередей запросов.
- File System — файловая система ODS (On-Disk Structure), поддерживающая версионность файлов (до 32767 версий на один файл).
Виртуальная память
OpenVMS использует 32-разрядную (на VAX) и 64-разрядную (на Alpha, Itanium, x86-64) виртуальную память. Адресное пространство процесса делится на четыре зоны:
- P0 — программа (код и данные).
- P1 — стек и управляющие структуры.
- S0 — системное адресное пространство (общее для всех процессов).
- S1 — резервная зона.
Планировщик
Планировщик использует 32 уровня приоритета (0–31):
- 0–15 — адаптивные (времяразделение).
- 16–31 — реального времени (фиксированные).
Система поддерживает вытесняющую многозадачность с квантованием времени.
Кластеризация
Кластер OpenVMS (VAXcluster) — уникальная технология, позволяющая объединять до 96 узлов (на VAX) или до 384 узлов (на Alpha/Itanium) в единую систему с общим дисковым пространством и распределённой обработкой. Кластер обеспечивает:
- Отказоустойчивость (при сбое одного узла нагрузка перераспределяется).
- Масштабирование производительности.
- Единую точку управления (системный диск, общие очереди печати).
Файловая система
OpenVMS использует файловую систему ODS (On-Disk Structure), которая прошла несколько версий:
- ODS-1 — для RSX-11 (устарела).
- ODS-2 — основная для VAX/VMS, поддерживает имена файлов в формате
DEVICE:[DIRECTORY]FILENAME.TYPE;VERSION(например,SYS$SYSDEVICE:[USERS.SMITH]REPORT.DOC;3). - ODS-5 — расширение для Alpha и Itanium, поддерживающее длинные имена (до 255 символов) и регистрозависимость.
Файлы имеют атрибуты: владелец, защита (UIC — User Identification Code), размер, дата создания, дата модификации. Версионность позволяет хранить несколько поколений одного файла.
Программное обеспечение
Командная оболочка
Основной интерфейс — DCL (Digital Command Language). Примеры команд:
SHOW SYSTEM— отображение процессов.DIRECTORY— список файлов.SET DEFAULT— смена текущего каталога.SUBMIT— постановка задания в очередь.
Системные службы
- RMS (Record Management Services) — система управления записями, поддерживающая последовательный, индексный и относительный доступ.
- DECnet — сетевой протокол для взаимодействия узлов DEC.
- TCP/IP Services for OpenVMS — стек протоколов TCP/IP (лицензирован от сторонних разработчиков, позже — собственный).
Языки программирования
OpenVMS поддерживает компиляторы:
- BLISS — системный язык DEC.
- VAX MACRO — ассемблер для VAX.
- C, C++, Fortran, COBOL, Pascal, Ada — стандартные языки.
- DCL — интерпретируемый командный язык.
Применение
OpenVMS традиционно используется в системах, требующих высокой надёжности и доступности (uptime до 10–15 лет без перезагрузки):
- Финансовый сектор: банковские транзакционные системы (например, SWIFT, клиринговые центры).
- Транспорт: управление воздушным движением (системы FAA, Евроконтроля).
- Энергетика: АСУ ТП атомных электростанций (в том числе российских — блоки РБМК, ВВЭР).
- Промышленность: системы управления производством (SCADA).
В России OpenVMS применялась на предприятиях «Росатома», в системах управления космическими аппаратами (ЦУП) и в некоторых банках.
Критика
Основные недостатки OpenVMS:
- Закрытость исходного кода (до 2020 года — полностью проприетарная; с 2020 года VSI открыла часть кода для партнёров).
- Сложность администрирования (требует глубоких знаний DCL и архитектуры).
- Устаревшая парадигма (отсутствие современных графических оболочек, ограниченная поддержка веб-технологий).
- Высокая стоимость лицензирования (до перехода на модель подписки VSI).
- Сужение экосистемы (сокращение числа приложений и аппаратных платформ).
Интересные факты
- Windows NT — Дэвид Катлер, главный архитектор VMS, возглавил разработку Windows NT, которая унаследовала многие концепции VMS (модульное ядро, HAL, объектная модель).
- Рекорд uptime — зафиксированы случаи непрерывной работы OpenVMS-кластеров более 15 лет (например, в системе управления железными дорогами Швеции).
- Космическая программа — OpenVMS использовалась в NASA для управления полётами шаттлов (система MCC — Mission Control Center).
- Российский след — в 1990-х годах в СССР и России существовала программа «Эльбрус-3», которая предполагала использование OpenVMS на советских компьютерах, но проект был закрыт.
Источники
- «OpenVMS: A Guide to the Operating System» — Lawrence J. Kenah, Ruth E. Goldenberg (Digital Press, 1992).
- «The OpenVMS User's Guide» — Patrick J. Holmay (Digital Press, 1995).
- «VAX/VMS Internals and Data Structures» — Ruth E. Goldenberg, Lawrence J. Kenah (Digital Press, 1991).
- VMS Software, Inc. — официальная документация и релиз-ноты (vmssoftware.com).
- «OpenVMS: The Operating System That Wouldn't Die» — статья в журнале «IT Pro» (2021).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →