OpenVMS

Матеріал з Вікіпедії — вільної енциклопедії.
Jump to navigation Jump to search
OpenVMS
Vms shark hp.png
OpenVMSlogin.pngЕмблема OpenVMS
Розробник DEC, Compaq, HP
Родина ОС Сімейство ОС DEC
Стан проекту Підтримка припинена[1]
Модель коду Пропрієтарне ПЗ
Початковий випуск 25 жовтня 1977
Останній стабільний випуск 8.4/ 21 червня 2010
Доступні мови програмування англійська мова
Тип ядра Монолітне з модулями
Ліцензія Закрита
Веб-сайт www.hp.com/go/openvms

CMNS: OpenVMS на Вікісховищі

OpenVMS (англ. Open Virtual Memory System або просто VMS) - пропрієтарна серверна операційна система, розроблена в другій половині 1970-х років компанією Digital Equipment Corporation для серії комп'ютерів VAX. Пізніше портована на платформи DEC Alpha і Intel Itanium. Зараз належить Hewlett-Packard. Застосовується для побудови відмовостійких систем високої готовності та mission-critical рішень.

Історія[ред.ред. код]

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. Нумерація наступних версій однакова для обох платформ.

Intel Itanium[ред.ред. код]

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

На відміну від портування з VAX на Alpha, коли у код версії 5.4 для VAX було внесено безліч змін і результат сильно відрізнявся від оригіналу, версії для Alpha і Itanium засновані на спільній кодовій базі і використовують однаковий інструментарій.

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.

x86[ред.ред. код]

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

Існує проект FreeVMS по створенню під ліцензією GPL клону OpenVMS для платформи x86. На 2009 рік, проект знаходиться на початковій стадії.

Функціональність[ред.ред. код]

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 від компанії Software Process 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, Distributed Lock Manager).
  • Кластери (cluster) - об'єднання декількох систем у єдиний комплекс, що розділяє ресурси (shared resources), з розподілом навантаження (load balancing). Варто зауважити, що дослідницька компанія Gartner Group Inc. привласнила кластеру VMS звання «Король кластерів» (King of Clusters).

Безпеку[ред.ред. код]

Засоби захисту інформації закладені в OpenVMS з моменту створення, так як в багатокористувацьких системах розмежування прав користувачів - одна з першочергових задач. У версіях для VAX передбачено чотири режими роботи процесора, що забезпечують різні рівні доступу (після реєстрації користувача в системі процесор переходить у відповідний режим для виконання його завдань). Не володіючи належними повноваженнями, просто фізично неможливо запустити, наприклад, програму-зломщик.

OpenVMS володіє розвиненими засобами контролю за паролями:

  • перевіркою стандартних характеристик (термін дії пароля, довжина, використовувався пароль раніше);
  • генерацією випадкових паролів;
  • перевіркою на наявність в паролі загальновживаних слів;
  • використання другого пароля;
  • можливість завдання специфічних вимог до вмісту пароля».

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

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

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

Ліцензії та поширення[ред.ред. код]

Проприетарная, поширювалася головним чином з серверами. У 1997 році відкрито програма підтримки ентузіастів, які використовують OpenVMS. За цією програмою надаються коди ліцензій для некомерційного використання ентузіастами.

HP, купила Compaq (яка раніше купила Digital) - пропонує програму для освітніх установ.

Галузі застосування[ред.ред. код]

Застосовується для побудови відмовостійких систем високої готовності та mission-critical застосувань. Під управлінням OpenVMS (на платформі VAX) працює лінія випуску процесорів на фабриці Intel в Ізраїлі.

Серед російських замовників OpenVMS переважають оборонні структури та банки, телекомунікаційні компанії, підприємства безперервного циклу (АЕС). В банках кластери під управлінням OpenVMS використовуються як сервери баз даних (як правило, Oracle). В одному з регіональних відділень Ощадбанку РФ під OpenVMS працює додаток, що забезпечує всю роботу банка.[3][4][5] До 2005 року OpenVMS широко застосовувалася для роботи з міжнародною системою міжбанківських транзакцій SWIFT - SWIFT ST400. Це було пов'язано як з прагненням найбільш надійно здійснювати транзакції, так і з тим, що SWIFT спочатку розроблялася під OpenVMS.

Під управлінням OpenVMS працює 14 лінія паризького метрополитена[6] та управління залізничним рухом у Індії[7].

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

У першому в Росії оператора стільникового зв'язку компанії «Дельта Телеком» кластер під управлінням OpenVMS, що включає DEC Alpha і HP Integrity, є «серцем» для бізнес-процесів.[9]

Примітки[ред.ред. код]

Література[ред.ред. код]

  • 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

Посилання[ред.ред. код]