OpenVMS

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
OpenVMS
Изображение логотипа

Разработчик DEC, Compaq, HP, VMS Software, Inc.
Семейство ОС Семейство ОС DEC
Первый выпуск 25 октября 1977
Последняя версия v9.2-1 (15 июня 2023; 10 месяцев назад (2023-06-15)[1])
Поддерживаемые языки английский
Поддерживаемые платформы VAX, DEC Alpha, Itanium и x86-64
Тип ядра Монолитное с модулями
Лицензия Закрытая
Состояние Актуальная
Веб-сайт www.vmssoftware.com
Логотип Викисклада Медиафайлы на Викискладе

OpenVMS (англ. Open Virtual Memory System, или просто VMS) — проприетарная серверная операционная система, разработанная во второй половине 1970-х годов компанией Digital Equipment Corporation для серии компьютеров VAX. Позже портирована на платформы DEC Alpha и Intel Itanium, разрабатывается версия для x86-64[2]. В августе 2014 года выкуплена[3][4] у компании Hewlett-Packard и полностью принадлежит компании VMS Software, Inc. Применяется для построения отказоустойчивых систем высокой готовности и mission-critical применений. Среди заказчиков OpenVMS преобладают оборонные структуры и банки, телекоммуникационные компании, предприятия непрерывного цикла (АЭС).

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

Работа в OpenVMS: запущен браузер, часы, калькулятор, список процессов и окно с информацией о системе
OpenVMS от Compaq: командная строка, текстовый редактор, справка и открытые папки

В апреле 1975 года DEC объявила о начале проекта по разработке аппаратной платформы под названием Star, которая позволила бы расширить функциональность существующего PDP-11 для работы с 32-битными адресами виртуальной памяти. Сопутствующий проект по разработке программного обеспечения под названием Starlet был начат в июне 1975 года. В рамках проекта планировалось разработать для семейства Star абсолютно новую ОС, основанную на RSX-11, операционной системе для PDP-11. Эти два проекта с самого начала разрабатывались в тесном сотрудничестве друг с другом. В проекте Starlet под руководством Роджера Гоурда работали инженеры по разработке ПО Дэвид Катлер, Дик Хастведт и технический руководитель проекта Питер Липман, каждый из которых отвечал за разработку отдельных частей операционной системы. Результатом работ по проектам Star и Starlet стали компьютер VAX 11/780 и операционная система VAX-11/VMS. Имя Starlet сохранилось в VMS в имени одной из основных системных библиотек, STARLET.OLB.

В 1980 году, с выходом версии 2.0, имя системы было изменено на VAX/VMS (в то же время компьютер VAX-11 переименовали в просто VAX). С появлением серии компьютеров MicroVAX во второй половине 1980-х годов была выпущена MicroVMS, специфически нацеленная на эту платформу, которая имела гораздо более ограниченные память и размер жёсткого диска, чем полноценный VAX. Например, MicroVAX 2000 имел жёсткий диск RD32 ёмкостью 40 Мб и всего 4 Мб ОЗУ, а его процессор мог лишь программно эмулировать некоторые инструкции VAX с плавающей запятой. Комплект MicroVMS распространялся для версий VAX/VMS с 4.0 по 4.7 на магнитной ленте типа TK50 и флоппи дисках типа RX50, но после выхода VAX/VMS 5.0 это[уточнить] прекратилось.

В 1991 году система была переименована в OpenVMS для обозначения поддержки ею таких промышленных стандартов, как POSIX и совместимость с Unix, после чего начался процесс портирования системы на 64-разрядный RISC-процессор DEC Alpha. Впервые именем OpenVMS была названа версия 5.5-2.

Платформы[править | править код]

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

Портирование на платформу Alpha потребовало создания отдельных ветвей исходного кода для 32-разрядной и 64-разрядной архитектур. В 1992 году увидела свет первая версия OpenVMS для систем Alpha AXP, названная OpenVMS/AXP V1.0. Решение использовать нумерацию, начинающуюся с 1.x для предпромышленных версий OpenVMS/AXP, послужило причиной неразберихи для некоторых клиентов и в дальнейшем она перестала использоваться.

В 1994 году с выходом OpenVMS 6.1 было достигнуто равенство в возможностях и номерах версий между вариантами для VAX и Alpha. Нумерация последующих версий одинакова для обеих платформ.

Релиз V8.4-2L2, выпущенный в январе 2017 года, объявлен последним для платформы Alpha.

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

В 2001 году компания Compaq, незадолго до слияния с HP, объявила о начале работ по портированию системы на только что появившуюся 64-разрядную платформу Intel Itanium. Портирование осуществлялось на основе исходного кода и библиотек версии OpenVMS для Alpha. Использование исходного кода OpenVMS для Alpha в качестве основы объяснялось тем, что он был 64-разрядным и, следовательно, гораздо более подготовленным к портированию, чем исходный код оригинальной OpenVMS для VAX.

OpenVMS/I64 V8.0 — первая предпромышленная версия, выпущена в июне 2003 года.

OpenVMS V8.2 — первая промышленная версия для Itanium, выпущена в январе 2005 года. Также доступна для платформы Alpha.

OpenVMS/I64 V8.2-1, добавлена поддержка систем HP Integrity Superdome и Cell-based-систем, выпущена в сентябре 2005 года. Доступна только для Itanium-платформ.

OpenVMS V8.3, выпущена в сентябре 2006 года как для Alpha, так и для Itanium.

OpenVMS V8.3-1h1, выпущена в октябре 2007 года только для Itanium. Добавлена поддержка чипсетов серии sx2000.

OpenVMS V8.4, выпущена в июне 2010 года как для Alpha, так и для Itanium.

Релиз V8.4-2L3, выпущенный в июле 2017 года, объявлен последним для платформы Itanium.

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

В конце 1980-х в DEC в рамках проекта Emerald велись работы по портированию OpenVMS на архитектуру x86, но проект был закрыт по финансовым соображениям. Несогласный с решением менеджмента руководитель разработки Дэвид Катлер (David Cutler) перешёл в Microsoft, где занялся разработкой Windows NT. Существует мнение, что в основе Windows NT лежат концепции и системные решения, основанные на достижениях OpenVMS.

Существует проект FreeVMS по созданию под лицензией GPL клона OpenVMS для платформы x86. На 2009 год проект находится на начальной стадии.

После выкупа у HP прав на операционную систему компанией VMS Software последняя заявила, что OpenVMS будет портирована на архитектуру x86.[5] Согласно обнародованному плану, это произойдёт начиная с версии V9.0.[6]

Функциональность[править | править код]

OpenVMS является многопользовательской, многозадачной ОС с поддержкой виртуальной памяти. Она предназначена для работы в режиме реального времени, разделения времени, пакетной обработки и обработки транзакций. Благодаря возможности создания кластеров из нескольких компьютеров (до 96 в одном кластере) OpenVMS позволяет создавать высокомасштабируемые системы. OpenVMS допускает использование оконного интерфейса DECWindows, совместимого с X Window System.

Системные функции[править | править код]

Многозадачность в OpenVMS опирается на потоки (kernel threads). Поток состоит из индивидуального адресного пространства, регистров, образующих его контекст, и кода — исполняемого образа. Контекст идентифицирует поток и описывает его текущее состояние, а исполняемый образ состоит из системных и пользовательских программ (откомпилированных и собранных). Каждый процесс может содержать до 16 потоков (kernel threads), которые являются объектом управления планировщика. Количество же пользовательских (user level threads) потоков исполнения ограниченно только ресурсами конкретной системы. Максимальное число поддерживаемых параллельных процессов в OpenVMS — 16 384 на каждый узел. Процессорное время распределяется между потоками в соответствии с приоритетами, которых насчитывается 64. Приоритеты от 0 до 15 назначаются процессам с разделяемым временем или некритичным ко времени исполнения, диапазон от 16 до 63 предназначен для процессов реального времени. Процессы реального времени получают квант (quantum) процессорного времени сразу, как только оно требуется (в соответствии с приоритетом и статусом процесса), обычные процессы получают вычислительные ресурсы только тогда, когда ими не пользуются процессы реального времени. В OpenVMS процессу можно назначить приоритет выше, чем у процессов ядра системы. Имеется также механизм (pixscan), который предотвращает блокирование управления системой высокоприоритетными процессами, то есть, например, процесс с приоритетом в пределах 4 гарантированно получит квант процессорного времени, хотя и со значимой задержкой.

В OpenVMS используются файловые системы Files-11 (ODS-1, ODS-2, ODS-5), ISO 9660, FAT, NFS, SMB и Spiralog.

По языку командной строки и файловой системе OpenVMS является наследницей RSX-11 и RT-11.

Сетевые функции[править | править код]

В OpenVMS существуют различные реализации сетевых стеков общего назначения:

  • DECnet, для работы в сетях, использующих проприетарные сетевые протоколы разработанные Digital; частями DECNet являются DEC LAT (Local Area Transport), DEC MOP (Maintenance Operation Protocol). В настоящее время под названием DECNet существуют DECNet IV (Phase IV) и DECNet OSI (ранее носивший названия DECNet Plus, DECNet Phase V).
  • DECnet OSI, реализация поддержки архитектуры сетей OSI (Open Standard Interconnection) от Digital.
  • X.25, для построения сетей X.25.
  • DEC SS7, реализация от Digital стека протоколов CCSS7 (Common Channel Signaling System 7, Общеканальная сигнализация 7).
  • TCPIP, реализация стека протоколов TCP/IP от Digital (ранее носившая название UCX — Digital Ultrix Connection).
  • TCPware-TCP, реализация стека протоколов TCP/IP от компании Process Software LLC.
  • MultiNet, альтернативная реализация стека протоколов TCP/IP от компании Process Software LLC.
  • CMU-IP, свободно распространяемая версия стека протоколов TCP/IP, разработанная в Университете Карнеги — Меллона.

Уникальные, передовые функции[править | править код]

В OpenVMS впервые стали коммерчески доступны технологии, которые в настоящее время являются стандартными в серверных операционных системах:

  • Встроенная поддержка сетей (сначала DECnet IV и позднее TCP/IP) и DECnet V (стек протоколов OSI).
  • Симметричная, асимметричная и NUMA-многопроцессорность.
  • Распределённая файловая система DFS.
  • RMS (Record Management Service), реализующая доступ к файлам по методам ISAM (Indexed-Sequential Access Method) для реализации приложений, требующих функциональность базы данных.
  • Поддержка различных языков программирования и реализация интерфейса, который позволяет связывать объектные модули, полученные путём компиляции программ на различных языках высокого уровня).
  • Расширяемый язык командной оболочки DCL.
  • Разделение аппаратных средств процессоров для поддержки многопоточности.
  • Сертификация системы по уровню C2 (вплоть до B1) по Orange Book.
  • Реализация распределённого менеджера блокировок (DLM).
  • Кластеры (cluster) — объединение нескольких систем в единый комплекс, разделяющий ресурсы (shared resources), с распределением нагрузки (load balancing). Исследовательская компания Gartner присвоила кластеру VMS звание «Король кластеров» (King of Clusters).[источник не указан 2640 дней]

Безопасность[править | править код]

Средства защиты информации заложены в OpenVMS с момента создания, так как в многопользовательских системах разграничение прав пользователей — одна из первоочередных задач. В версиях для VAX предусмотрены четыре режима работы процессора, обеспечивающих различные уровни доступа (после регистрации пользователя в системе процессор переходит в соответствующий режим для выполнении его задач). Не обладая надлежащими полномочиями, просто физически невозможно запустить, например, программу-взломщик.

OpenVMS располагает развитыми средствами контроля за паролями:

  • проверкой стандартных характеристик (срок действия пароля, длина, использовался ли пароль ранее);
  • генерацией случайных паролей;
  • проверкой на наличие в паролях общеупотребительных слов;
  • использование второго пароля;
  • возможность задания специфических требований к «содержимому пароля».

Контролируется доступ ко всем системным объектам: томам, устройствам, файлам, очередям и т. д. Каждому классу объектов можно по умолчанию назначить уровень защиты при его создании. Файл получает уровень защиты либо от своей предыдущей версии, либо от создавшего его процесса, либо посредством специального ACL (Access Control List). При желании файл может быть удален полностью (erase-on-delete) без возможности его восстановления. Также OpenVMS обеспечивает аудит (то есть, регистрацию событий от монитора безопасности) регистрации или выхода из системы, попытки подбора пароля (Intrusion Detection), любых типов операций с заданными объектами (или классами объектов), любых изменений параметров системы, любых изменений, касающихся политики защиты информации, оперативное информирование системного администратора, операторского штата.

Все версии OpenVMS соответствуют требованиям класса C2 «Критериев определения безопасности компьютерных систем», «Orange Book» и сертифицированы Министерством обороны США. Специальная версия системы, SEVMS (SecureVMS), имеет повышенный уровень защиты и сертифицируется по классу B1.

На международном фестивале хакеров DEFCON 9 (Лас-Вегас, 2001 год) мировое хакерское сообщество признало OpenVMS неуязвимой для взлома[7]. Уязвимость в finger (переполнение при обработке .plan, finger там запускается с правами SYSTEM, позволяющее на VAX произвольно поменять учётную запись и получить все права) и ошибка при превышении длины строки команды (в 511 символов, работает на Alpha и позволяет запускать произвольный код в процессах с привилегиями SYSTEM, FIS_IO, OPER и т. п.) были оперативно исправлены и являются проблемами прямолинейного переноса системных UNIX-утилит без надлежащей переработки под стандарты безопасности OpenVMS.

Лицензии и распространение[править | править код]

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

HP, купившая Compaq (которая ранее купила Digital), предлагает программу для образовательных учреждений.

Области применения[править | править код]

Применяется для построения отказоустойчивых систем высокой готовности и mission-critical применений. Под управлением OpenVMS (на платформе VAX) работает линия выпуска процессоров на фабрике Intel в Израиле.

Среди российских заказчиков OpenVMS преобладают оборонные структуры, фондовые биржи[8] и банки, телекоммуникационные компании, предприятия непрерывного цикла (АЭС). В банках кластеры под управлением OpenVMS используются в качестве серверов баз данных (как правило, Oracle). В одном из региональных отделений Сбербанка РФ под OpenVMS работает приложение, обеспечивающее всю работу банка.[9][10][11] До 2005 года OpenVMS широко применялась для работы с международной системой межбанковских транзакций SWIFT, ПО — SWIFT ST400. Это было связано как со стремлением наиболее надёжно осуществлять транзакции, так и с тем, что SWIFT изначально разрабатывалась под OpenVMS.

Под управлением OpenVMS работает 14-я линия парижского метрополитена[12] и управление железнодорожным движением в Индии[13].

В школе № 1 города Воронеж система из AlphaServer под управлением OpenVMS и 30 терминалов используется c 1997 года для обучения школьников информатике и программированию.[14]

В первом в России операторе сотовой связи компании «Дельта Телеком» кластер под управлением OpenVMS, включающий DEC Alpha и HP Integrity, является «сердцем» для бизнес-процессов.[15]

Примечания[править | править код]

  1. OpenVMS V9.2-1 Final Release. Дата обращения: 26 августа 2023. Архивировано 30 сентября 2023 года.
  2. Архивированная копия. Дата обращения: 27 января 2017. Архивировано из оригинала 2 февраля 2017 года.
  3. Deal With H-P Paves New Future for Old Software. Дата обращения: 1 октября 2014. Архивировано 4 октября 2014 года.
  4. VMS Software, Inc. Named Exclusive Developer of Future Versions of OpenVMS Operating System. | Business Wire. Дата обращения: 27 января 2017. Архивировано 11 февраля 2017 года.
  5. VMS Software. Дата обращения: 1 октября 2014. Архивировано 8 августа 2014 года.
  6. Архивированная копия. Дата обращения: 1 октября 2014. Архивировано из оригинала 6 октября 2014 года.
  7. DEFCON 16 — Speakers for DEFCON 16. Дата обращения: 7 мая 2012. Архивировано из оригинала 3 сентября 2014 года.
  8. OpenVMS Success story — Australian Stock Exchange Архивная копия от 6 февраля 2017 на Wayback Machine (англ.)
  9. АБС София ВМС. Дата обращения: 12 апреля 2013. Архивировано из оригинала 21 мая 2013 года.
  10. Вестник Волго-Вятского Банка СБ РФ. Дата обращения: 5 декабря 2006. Архивировано из оригинала 24 августа 2006 года.
  11. Поставка HP AlphaServer/OpenVMS/OracleRDB в Волго-Вятский Банк СБ РФ. Дата обращения: 5 декабря 2006. Архивировано из оригинала 27 сентября 2007 года.
  12. Ada in the Paris Metro System. Дата обращения: 6 января 2007. Архивировано 14 февраля 2007 года.
  13. Архивированная копия. Дата обращения: 6 января 2007. Архивировано из оригинала 3 марта 2016 года.
  14. ШКОЛА N1 — Воронеж. Дата обращения: 4 ноября 2007. Архивировано 4 августа 2017 года.
  15. StarLet Team Site, Справочно-информационный сайт для OpenVMS-профессионалов. Дата обращения: 12 июля 2019. Архивировано из оригинала 4 марта 2016 года.

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

  • David Miller. Getting Started with OpenVMS System Management. — Digital Press, 2003. — 193 p. — ISBN 1-55558-281-8
  • Lawrence L., Jr. Baldwin, Steve Hoffman, David Miller. OpenVMS System Management Guide. — ISBN 1-55558-243-5

Ссылки[править | править код]