OpenVMS
Розробник- DEC , Compaq , HP
Сімейство ОС- Сімейство ОС DEC
Остання версія- 8.4 - 21 червня 2010
Тип ядра- Монолітне з модулями
Ліцензія- Закрита
Стан- Підтримка припинена
OpenVMS (англ. Open Virtual Memory System , або просто VMS) - пропріетарна серверна операційна система , розроблена в другій половині 1970 - х років компанією Digital Equipment Corporation для серії комп'ютерів VAX . Пізніше портована на платформи DEC Alpha і Intel Itanium . Зараз належить Hewlett- Packard. Застосовується для побудови відмовостійких систем високої готовності і mission - critical застосувань. Серед російських замовників OpenVMS переважають оборонні структури та банки , телекомунікаційні компанії , підприємства безперервного циклу (АЕС) .
Історія
У квітні 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 .
Платформи
Портування на платформу Alpha зажадало створення окремих гілок вихідного коду для 32- розрядної і 64- розрядної архітектур . У 1992 році побачила світ перша версія OpenVMS для систем Alpha AXP , названа OpenVMS / AXP V1.0 . Рішення використовувати нумерацію що починається з 1.x для версій OpenVMS / AXP послугувало причиною плутанини для деяких клієнтів і надалі вона перестала використовуватися .
У 1994 році з виходом OpenVMS 6.1 було досягнуто рівність у можливостях і номерах версій між варіантами для VAX і Alpha. Нумерація наступних версій однакова для обох платформ.
У 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.
Наприкінці 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 від компанії 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 , 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 невразливою для злому. Уразливість в 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 працює додаток, що забезпечує всю роботу банка.До 2005 OpenVMS широко застосовувалася для роботи з міжнародною системою міжбанківських транзакцій SWIFT , ПО - SWIFT ST400 . Це було пов'язано як з прагненням найбільш надійно здійснювати транзакції , так і з тим , що SWIFT спочатку розроблялася під OpenVMS .
Під управлінням OpenVMS працює 14 лінія паризького метрополітену та управління залізничним рухом в Індії.
У школі № 1 міста Воронеж система з AlphaServer під управлінням OpenVMS і 30 терміналів використовуються c 1997 року для навчання школярів інформатики та програмування .
У першому в Росії операторі стільникового зв'язку компанії «Дельта Телеком» кластер під управлінням OpenVMS , що включає DEC Alpha і HP Integrity , є « серцем » для бізнес -процесів.