OpenVMS (Open Virtual Memory System)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 05:31, 22 января 2018.
(перенаправлено с «OpenVMS»)
Open Virtual Memory System
OpenVMS logo Swoosh 30 lg.jpg
Разработчик Digital Equipment Corporation, Compaq, Hewlett-Packard, VMS Software Inc
Написана на
Линейка ОС DEC OS family
Дата первого релиза 25 октября 1977 года
Последний релиз OpenVMS 8.4-2L1 / 23 сентября 2016 года
Целевой маркетинг компьютерный сервер
Cистема управления пакетами PCSI и VMSINSTAL
Платформы VAX, DEC Alpha, Itanium
Ядро (тип) Монолитное ядро
По умолчанию
пользовательский
интерфейс
DCL, CLI, DEC windows и GUI
Лицензия Собственное программное обеспечение
Официальный веб-сайт vmssoftware.com

OpenVMS - это компьютерная операционная система для использования в вычислительных системах общего назначения, разработанная во второй половине 1970-х годов компанией Digital Equipment Corporation для серии компьютеров VAX. Это преемник операционной системы VMS (VAX-11 / VMS, VAX / VMS). В 1990-х годах он использовался для серии преемников систем DEC Alpha. OpenVMS также работает на компьютерах семейства HP Itanium. С 2017 года идет переход к архитектуре x86-64.

Название VMS происходит от системы виртуальной памяти, согласно одной из ее основных архитектурных особенностей. OpenVMS - это проприетарная операционная система, но списки исходного кода доступны для покупки.

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

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

В компании есть команда ветеран-разработчиков, которая изначально разрабатывала программное обеспечение во время владения DEC.

История

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

команда разработчиков первой версии VMS

В 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. [Источник 1]

DEC Alpha

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

В 1994 году с выпуском OpenVMS версии 6.1 была достигнута четность (и номер версии) четности между вариантами VAX и Alpha. Это был так называемый выпуск функциональной эквивалентности в маркетинговых материалах того времени. Однако некоторые функции отсутствовали, например, которые были реализованы в более поздних версиях. Последующие номера версий для версий VAX и Alpha продукта остались неизменными через V7.3, хотя Alpha впоследствии расходилась с наличием релизов V8.2 и V8.3.

В ноябре 2017 года V8.4-2L1 был выпущен для платформы Alpha (или эмулятора x86).

Старый логотип

Intel Itanium

В 2001 году, непосредственно перед приобретением Hewlett-Packard, Compaq объявила о выпуске порта OpenVMS для архитектуры Intel Itanium. Этот порт был выполнен с использованием исходного кода

, содержащегося в библиотеке исходного кода OpenVMS Alpha, с условными и дополнительными модулями, в которых требовались изменения, характерные для Itanium. Пул OpenVMS Alpha был выбран в качестве основы для порта, поскольку он был значительно более портативным, чем исходный исходный код OpenVMS VAX, а также потому, что пул исходного кода Alpha был уже полностью совместим с 64-разрядными (в отличие от пула исходного кода VAX). С Alpha-портом многие из зависимостей, зависящих от оборудования VAX, ранее были перенесены в прошивку Alpha SRM для OpenVMS. Функции, необходимые для OpenVMS, были затем перенесены из SRM в OpenVMS I64 как часть порта Itanium.

В отличие от порта от VAX до Alpha, в котором снимок базы данных VAX около V5.4-2 использовался в качестве основы для выпуска Alpha и 64-битного пула исходных кодов, затем расходился, OpenVMS Alpha и I64 (Itanium) версии OpenVMS создаются и поддерживаются с использованием общей библиотеки исходного кода и общих инструментов. Основной системой управления исходным кодом программного обеспечения, используемой для OpenVMS, является среда разработки VMS (VDE).

Два предварительных выпуска, OpenVMS I64 V8.0 и V8.1, были доступны 30 июня 2003 года и 18 декабря 2003 года. Эти выпуски были предназначены для организаций HP и сторонних поставщиков, занимающихся переносом пакетов программного обеспечения на OpenVMS I64 ,

Ниже приведены последние выпуски OpenVMS I64:

  • OpenVMS I64 V8.2, первая серийная версия Itanium, была отправлена ​​13 января 2005 года. Релиз V8.2 также доступен для платформ Alpha.
  • OpenVMS I64 V8.2-1, добавив поддержку систем Integrity Superdome и сотовых систем, был выпущен в сентябре 2005 года. V8.2-1 доступен только для платформ Itanium.
  • OpenVMS I64 V8.3, был выпущен для платформ Itanium в сентябре 2006 года. V8.3 также доступен для Alpha-систем.
  • OpenVMS I64 V8.3-1H1, был выпущен в октябре 2007 года. Он поддерживает полную поддержку blade-серверов BladeServer c-Class Integrity.
  • OpenVMS I64 и Alpha V8.4, был выпущен в июне 2010 года.
  • OpenVMS I64 V8.4-1H1, был выпущен в июне 2015 года.
  • OpenVMS I64 V8.4-2, был выпущен в апреле 2016 года; и вариант его V8.4-2L1 также был выпущен для платформы Alpha (или эмулятора x86) в ноябре 2017 года.

x86

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

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

После выкупа у HP прав на операционную систему компанией VMS Software, последняя заявила что OpenVMS будет портирована на архитектуру x86.

Функциональность

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

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

Системные функции

Многозадачность в 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 от Compaq: командная строка, текстовый редактор, справка и открытые папки

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

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

Особенности

Луковая структура VMS

OpenVMS предлагает множество функций, которые теперь считаются стандартными требованиями для любой серверной операционной системы высокого класса. К ним относятся:

  • Интегрированные компьютерные сети (первоначально DECnet, и более поздние TCP / IP)
  • Симметричная, асимметричная и многокомпонентная обработка NUMA, включая кластеризацию
  • Иерархическая, многофункциональная файловая система (Files-11)
  • Интегрированные функции базы данных, такие как RMS и реляционные базы данных, включая Rdb, Oracle Database, MariaDB и PostgreSQL
  • Поддержка нескольких языков компьютерного программирования
  • Стандартизованный механизм взаимодействия для вызовов между различными языками программирования
  • Расширяемый командный язык оболочки (DIGITAL Command Language)
  • Разделение оборудования многопроцессорных устройств
  • Высокий уровень безопасности

[Источник 2]

Графический интерфейс

OpenVMS использует пользовательский интерфейс DECwindows Motif (на основе CDE), расположенный поверх оконной системы OpenVMS, совместимой с X11. Старые версии VMS вместо этого использовали проприетарную оконную систему, известную как VWS / UIS.

Кластеризация

OpenVMS поддерживает кластеризацию (сначала называемую VAXcluster и более позднюю версию VMScluster), где несколько систем совместно используют дисковое хранилище, обработку, очереди заданий и очереди печати и подключаются либо с помощью специализированного специализированного оборудования (Cluster Interconnect), либо по стандарту LAN(обычно Ethernet). Кластер на базе локальной сети часто называют LAVc для локальной вычислительной сети VMScluster и позволяет, среди прочего, загружать, возможно, бездисковый узел спутника по сети, используя системный диск загрузочного устройства.

Поддержка VAXcluster была впервые добавлена ​​в VMS версии 4, которая была выпущена в 1984 году. Эта версия поддерживала только кластеризацию по CI. Поздние выпуски версии 4 поддерживали кластеризацию по локальной сети (LAVC), а поддержка LAVC была улучшена в версии VMS версии 5, выпущенной в 1988 году.

Допускаются смеси кластерных межсоединений и технологий, включая адаптеры Gigabit Ethernet (GbE), SCSI, FDDI, DSSI, CI и Memory Channel.

OpenVMS поддерживает до 96 узлов в одном кластере и позволяет создавать кластеры смешанной архитектуры, в которых системы VAX и Alpha, а также системы Alpha и Itanium могут сосуществовать в одном кластере (различные организации продемонстрировали кластеры с тремя архитектурами и конфигурации кластера с до 150 узлов, но эти конфигурации не поддерживаются HP).

В отличие от многих других решений кластеризации, VMScluster предлагает прозрачную и полностью распределенную запись-запись с блокировкой на уровне записи, что означает, что один и тот же диск и даже один и тот же файл могут быть доступны сразу несколькими узлами кластера; блокировка происходит только на уровне одной записи файла, которая обычно представляет собой одну строку текста или одну запись в базе данных. Это позволяет создавать многократно избыточные резервные серверы баз данных высокой доступности.

Соединения кластеров могут охватывать 500 миль, позволяя узлам-членам размещаться в разных зданиях в офисном городке или в разных городах.

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

Доступ к распределенному менеджеру блокировок (DLM) доступен для программистов приложений, что позволяет приложениям координировать произвольные ресурсы и действия во всех узлах кластера. Это включает в себя координацию файлового уровня, но ресурсы и действия и операции, которые могут быть согласованы с DLM, совершенно произвольны.

OpenVMS V8.4 предлагает преимущества в технологии кластеризации, включая использование отраслевых стандартов TCP / IP для повышения эффективности технологии кластерных соединений. Cluster over TCP / IP поддерживается в OpenVMS версии 8.4, выпущенной в 2010 году.

Благодаря поддерживаемой возможности прокатных обновлений и нескольких системных дисков конфигурации кластера могут поддерживаться в режиме онлайн и обновляться постепенно. Это позволяет кластерным конфигурациям продолжать предоставлять доступ к приложениям и данным, в то время как подмножество узлов-членов обновляется до более новых версий программного обеспечения. [Источник 3]

Файловая система

OpenVMS имеет функциональную файловую систему, поддерживающую потоковые и записываемые IO, списки управления доступом (ACL) и управление версиями файлов. Типичный интерфейс пользователя и приложения в файловой системе - через службы управления записью или RMS. В OpenVMS используются файловые системы Files-11 (ODS-1, ODS-2, ODS-5), ISO 9660, FAT, NFS, SMB и Spiralog. Файловая система ведет свое начало от Files-11 .Files-11 является общим названием для пяти отдельных файловых систем, известных как уровни с 1 по 5 на-дисковой структуры (ODS) .Одна из интересных особенностей этого семейства ФС — версии файлов. Файловая система OpenVMS происходит из более старых операционных систем DEC и во многом похожа на них. Главным отличием является расположение каталогов. Эти файловые системы предоставляют некоторую форму рудиментарной неиерархической структуры каталогов, обычно основанную на выделении одного каталога на одну учётную запись пользователя. При открытии файла на запись создается новая версия, и работа происходит именно с ней. С версии 7.0 появилось интересное расширение - файловая система Spiralog. Она может сосуществовать со стандартной системой как на отдельной машине, так и в кластере и позволяет заметно увеличить производительность дисковой подсистемы в ряде приложений. Основной принцип, заложенный в Spiralog, - интерпретация диска как устройства с последовательной записью (попросту говоря - ленты). Все данные записываются в структуру, английское название которой в данном случае лучше интерпретировать как "очередь" (в оригинале - log, отсюда и название системы), все новые файлы (и изменения к имеющимся) дописываются в конец очереди. Очевидно, что такой подход не даст улучшения производительности при использовании, например, совместно с сервером базы данных (особенно учитывая, что развитые СУБД часто берут управление файлами на себя), но при непрерывной записи большого количества файлов строго поступательное движение головок диска (в отличие от обычного метания вперед-назад) заметно ускоряет работу. Spiralog предлагает также лучшую масштабируемость, позволяя практически неограниченно наращивать как размеры файлов (до нескольких терабайт), так и размеры каталогов (более 250 000 файлов в каталоге - десятки миллионов файлов на одном томе).Еще одно из преимуществ Spiralog - оптимизация процесса резервного копирования. Вместе с файловой системой поставляется архивационная утилита, которая разрабатывалась специально под Spiralog и эффективно использует линейную структуру хранения файлов. Практически полное соответствие принципов записи информации на диск и на ленту заметно упрощает процесс архивации и восстановления данных, который по сути дела является прямым переносом структуры с носителя на носитель. Более того, запись всех изменений файлов в конец очереди минимизирует время и ресурсы, затрачиваемые на ежедневное инкрементное копирование - все, что нужно записать на ленту, легко найти и считать. Для систем, рассчитанных на непрерывное функционирование, минимальные расходы на резервное копирование имеют большое значение. Если обычный сервер можно архивировать по ночам, когда с ним никто не работает, то большие корпоративные системы, как правило, активно задействованы практически круглые сутки, и заметное снижение их производительности, хотя бы и на относительно небольшое время, крайне нежелательно. Spiralog является не единственным расширенным файловым сервисом OpenVMS. Система также предоставляет службу ведения записей (Record Management Services, RMS). RMS по сути является СУБД-подобным интерфейсом обращения к устройствам хранения данных, позволяющим приложениям организовывать свои собственные базы данных, тем самым повышая эффективность их работы. Еще один плюс RMS - служба позволяет организовывать надежный бесконфликтный совместный доступ к файлам различных процессов или приложений. [Источник 4]

Хронометраж

OpenVMS представляет собой системное время как 64-разрядное число из 100 наносекундных интервалов (т. Е. Десять миллионов единиц в секунду) с эпохи. Эпоха OpenVMS - это полночь, предшествующая 17 ноября 1858 года, которая начинается с нумерации Модифицированного Юлиана. Часы не обязательно обновляются каждые 100 нс; например, системы с таймером с интервалом 100 Гц просто добавляют 100000 к значению каждые сотые доли секунды. Операционная система включает в себя механизм для корректировки временного замедления аппаратного обеспечения; при калибровке по известному стандарту времени он легко достигает точности лучше 0,01%. Все аппаратные платформы OpenVMS получают хронометраж с внутренних часов, не связанных с частотой питания переменного тока.

В то время как система отключена, время удерживается аппаратными часами по времени . Эти часы сохраняют время до более низкого разрешения (возможно, 1 секунду) и, как правило, более низкую точность (часто 0,025% против 0,01%). Когда система перезапускается, значение времени 64-бит VMS пересчитывается в зависимости от времени, которое хранится в тактике TOY и последнем записанном году (сохраняется на системном диске).

100-нанометровая гранулярность, реализованная в OpenVMS и 63-битном абсолютном представлении времени (бит знака указывает абсолютное время, когда четкое и относительное время при установке) должно позволить вычислениям без проблем времени OpenVMS до 31-JUL-31086 02: 48: 05.47 , В это мгновение все часы и операции учета времени в OpenVMS неожиданно прекратятся, так как счетчик будет переполняться и снова начнет с нуля.

Хотя собственный формат времени OpenVMS может варьироваться далеко в будущем, приложения, основанные на библиотеке времени выполнения C, скорее всего, столкнутся с проблемами с хронометрированием после 19 января 2038 года из-за проблемы 2038 года. Многие компоненты и приложения могут также сталкиваться с проблемами даты, связанными с длиной поля, на 10000 год.

Программирование

Среди замечательных функций OpenVMS - Common Language Environment, строго определенный стандарт, который определяет соглашение о вызовах для функций и подпрограмм, включая использование стеков, регистров и т. Д., Независимо от языка программирования. Из-за этого можно и просто вызывать процедуру, написанную на одном языке (Fortran) из другого (COBOL), без необходимости знать детали реализации целевого языка. Сам OpenVMS реализован на самых разных языках (в первую очередь BLISS, VAX Macro и C), и общей языковой среде, а стандартные стандарты поддерживают свободное смешение этих языков Ada, PL / I, Fortran, BASIC и другие . Это контрастирует с такой системой, как Unix, которая практически полностью реализована на языке C.

Общая языковая среда программирования описана в стандартах OpenVMS Calling Standard и OpenVMS Programming Concepts. Это обеспечивает вызовы на смешанном языке и набор языковых программ, библиотеки времени выполнения (RTL) и подпрограмм системных служб. Языковые вызовы и RTL реализуются в совместно используемых изображениях, в то время как вызовы системных служб обычно являются частью операционной системы или частью кода привилегированного режима. Это различие между языками и RTL и системными службами было когда-то довольно чистым и понятным, но реализации и особенности стали более мрачными на протяжении многих лет.

Macro32 (ассемблер OpenVMS VAX и компилятор OpenVMS Alpha и OpenVMS I64) доступен и интегрирован в OpenVMS. Компиляторы BLISS доступны для загрузки, а также различные порты Perl, PHP, Ruby и других языков. Java SE предоставляется с OpenVMS. C, Fortran и другие языки являются коммерческими продуктами и доступны для покупки.

Различные утилиты и инструменты интегрированы, а также различные дополнительные языки и инструменты.

Многие примеры программирования доступны через часто задаваемые вопросы OpenVMS.

Отладка

VMS Debugger поддерживает все компиляторы DEC и многие сторонние языки. Он позволяет отлаживать точки останова, точки наблюдения и интерактивную программу выполнения с использованием командной строки или графического интерфейса пользователя.

Стандартные потоки

Подобно Unix, VMS определяет несколько стандартных потоков ввода и вывода с этими логическими именами:

  • SYS $ INPUT - Стандартный ввод. В интерактивном режиме это представляет собой терминальную клавиатуру. Используется в пакетном файле, это строки пакетного файла, которым не предшествует символ $, или указывается в качестве входной колоды, используя команду DECK.
  • SYS $ OUTPUT - стандартный вывод. В интерактивном режиме это терминал. Используется в пакетном файле, он выводится на экран (если выполняется интерактивно) или в файл журнала, когда выполняется неинтерактивно.
  • SYS $ ERROR - стандартная ошибка. В интерактивном режиме это терминал. В пакетном файле это экранный экран (если выполняется интерактивно) или файл журнала, если он выполняется интерактивно или в специальном случае RUN / DETACH, в выходной файл или устройство, указанное с параметром / ERROR =.
  • SYS $ COMMAND - Не имеет прямого аналога в модели Unix. В интерактивном режиме он будет считываться с терминала. Используется в пакетном файле при интерактивном запуске, он будет считываться с терминала. Используемый в пакетном файле неинтерактивно работает, он будет считываться из потока SYS $ INPUT (если он определен), иначе он ничего не будет читать и возвращать конец файла.

Безопасность

Средства защиты информации заложены в OpenVMS с момента создания, так как в многопользовательских системах разграничение прав пользователей — одна из первоочередных задач. OpenVMS предоставляет различные функции и механизмы безопасности, включая идентификаторы безопасности, идентификаторы ресурсов, идентификаторы подсистем, списки ACL и подробный аудит безопасности и аварийные сигналы. Конкретные версии, оцененные в классе C2 NC DoD NCSC, и с поддержкой служб расширенной поддержки SEVMS в NCSC Class B1, для серии NCSC Rainbow. OpenVMS также имеет рейтинг ITSEC E3 (см. NCSC и Common Criteria). Пароли хэшируются с использованием Purdy Polynomial.[Источник 5]

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

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

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

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

Кросс-платформенные приложения

OpenVMS поддерживает следующие отраслевые стандарты и инструменты и приложения с открытым исходным кодом:

Документация

Документация по операционной системе OpenVMS для различных выпусков и для различных базовых продуктов на основе OpenVMS доступна в Интернете на веб-сайте HPE по адресу: https://www.hpe.com/us/en/servers/openvms/documents.html

Описание программного продукта (SPD) - это вводное и юридическое описание различных продуктов, в котором перечислены различные поддерживаемые возможности и функции продукта. Документы SPD для многих продуктов, связанных с OpenVMS, и для самого OpenVMS доступны по адресу: http://h41379.www4.hpe.com/doc/spd.html#SPD/

Релизы, статус поддержки программного обеспечения

Текущая версия OpenVMS - 8.4-2L1 (Hudson), ранее были OpenVMS V8.4-1H1 для серверов Integrity, OpenVMS V8.4 для Alpha и OpenVMS V7.3 для серверов VAX.

HP предоставляет поддержку текущей версии (CVS) и поддержку предшествующей версии (PVS) для различных выпусков OpenVMS. Карта OpenVMS Roadmap гарантировала статус PVS для определенных выпусков (V5.5-2, V5.5-2H4, V6.2, V6.2-1H3, V7.3-2) до 2012 года и только после этого заканчивается на 24 месяца раньше извещение. CVS предоставляется для текущей версии и для немедленного выпуска.

31 июля 2014 года VMS Software, Inc. (VSI) объявила, что HP назвала VSI в качестве единственного разработчика будущих версий операционной системы OpenVMS и ее многоуровневых компонентов продукта. Первый выпуск VSI OpenVMS Version 8.4-1H1 (Bolton) был выпущен 1 июня 2015 года. Следующие релизы будут поддерживать новейшее оборудование Itanium. Доступность VSI OpenVMS на серверах на базе x86 для ранних пользователей будет запланирована на 2018 год. VSI собрал команду американских разработчиков OpenVMS в Массачусетсе, многие из которых вернулись к основной команде DEC, отвечающей за начальную и постоянную разработку OpenVMS.

Применимые отраслевые стандарты

Некоторые из отраслевых стандартов, заявленных в описании продукта программного обеспечения OpenVMS:

ANSI X3.4-1986: ASCII ANSI X3.22-1973/FIPS 3-1: Magtape, 800 BPI NRZI ANSI X3.27-1987/FIPS 79: Magtape, Labels and Volume Structures ANSI X3.39-1986/FIPS 25: Magtape, 1600 BPI PE ANSI X3.40-1983: Magtape, unrecorded ANSI X3.41-1974: ASCII 7-bit control sequences ANSI X3.42-1975: Numeric values in character strings ANSI X3.54-1986/FIPS 50: Magtape, 6250 BPI GCR ANSI X3.131-1986/ISO 9316(1989): SCSI-1 ANSI X3.131-1994/ISO 10288(1994): SCSI-2 ANSI/IEEE 802.2-1985: logical link control ANSI/IEEE 802.3-1985: Ethernet CSMA/CD FIPS 1-2: Code for Information Interchange; includes ANSI X3.4-1977(86)/FIPS 15; ANSI X3.32-1973/FIPS 36; ANSI X3.41-1974/FIPS 35; FIPS 7 FIPS 16-1/ANSI X3.15-1976: Serial Comms Bit Sequencing; FED STD 1010 FIPS 22-1/ANSI X3.1-1976: Synch signaling for DTE/DCE comms; FED STD 1013 FIPS 37/ANSI X3.36-1975: Synch High-Speed signaling for DTE/DCE comms; GIPS 1001 FIPS 86/ANSI X3.64-1979: Additional Controls for Use with ASCII ISO 646: ISO 7-bit Coded Character Set for Information Exchange ISO 1001: Magtape, Labels and Volume Structures ISO 1863: Magtape, 800 BPI NRZI ISO 1864: Magtape, unrecorded / NRZI and PE ISO 2022: Code extensions for ISO 646 ISO 3307: Time and Date Representations ISO 3788: Magtape, 1600 BPI PE ISO 4873: 8-bit Character Codes ISO 5652: Magtape, 6250 BPI GCR ISO 6429: Control Sequences ISO 9660: CD-ROM volume and file structures

Программы для хобби

Несмотря на то, что в 1997 году OpenVMS выпустила OpenVMS, а в 1997 году OpenVMS был доступен бесплатно, для некоммерческого использования было доступно бесплатное бесплатное участие в программе OpenVMS Hobbyist. С тех пор несколько компаний, выпускающих ПО OpenVMS, сделали свои продукты доступными на тех же условиях, что и программное обеспечение Process и MVP Systems.

В 2011 году сотрудники HP взяли на себя управление лицензиями хобби. Регистрация была упрощена и оставалась нулевой. Процесс от регистрации до получения ключей авторизации продукта может занять несколько часов в некоторых случаях. Программные комплекты для операционной системы и многоуровневых продуктов были доступны по запросу через FTP-загрузку (ранее она должна была быть отправлена ​​на компакт-диск, который был оплачен). Этот процесс не является полностью автоматическим и требует авторизации сотрудниками программы HP Hobbyist.

Операционная система с открытым исходным кодом, следующая по соглашениям VMS под названием FreeVMS, находится в разработке, хотя с 2010 года официальных релизов не было сделано. FreeVMS поддерживает архитектуру x86-64 с использованием микроядра L4.

Пол Аллен поддерживает несколько общедоступных исторических компьютерных систем, в том числе VAX 11/785, работающих под управлением OpenVMS 7.3.

Лицензии и распространение

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

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

Влияние

VMS в некотором роде является предком Windows NT вместе с RSX-11 и неизданной объектной операционной системой, разработанной Дейвом Катлером для DEC Prism. Эта линия ясно изложена в предисловии Катлера к «Inside Windows NT» Хелен Кастер.

Области применения

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

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

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

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

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

Источники

  1. OpenVMS прошлое, настоящее и будущее //Xaker . [2017—2017]. Дата обновления: 12.05.2015.https://xakep.ru/2015/05/12/the-future-of-openvms/ (Дата обращения: 30.11.2017).
  2. OpenVMS //Wikipedia . [2017—2017]. Дата обновления: 01.12.2017.https://en.wikipedia.org/wiki/OpenVMS#File_system (Дата обращения: 30.11.2017).
  3. OpenVMS сегодня и завтра //OSP. [2017—2017]. Дата обновления: 02.06.2017. URL:https://www.osp.ru/os/2000/05-06/178031 (Дата обращения: 28.11.2017).
  4. OpenVMS // Emanual. [2017—2017]. Дата обновления: 01.10.2017. URL: http://emanual.ru/download/www.eManual.ru_3443.html (Дата обращения: 28.11.2017).
  5. OpenVMS //БазаЗнаний . [2017—2017]. Дата обновления: 26.12.2016. http://www.physics.uni-altai.ru/community/wiki/OpenVMS (Дата обращения: 30.11.2017).
  6. OpenVMS //Wikiplanet . [2017—2017]. Дата обновления: 29.10.2017.https://www.wikiplanet.click/enciclopedia/ru/OpenVMS (Дата обращения: 30.11.2017).