45 лет OpenVMS

hycvhtn1swbdgxqemjeq2rc9ib8.jpeg
Жизненный цикл операционных систем исчисляется годами, а их поколений — десятилетиями. Так, семейство Unix считается старожителем в мире IT-технологий: первые версии этой ОС появились в лабораториях Bell Labs еще в конце 60-х. Однако существует — и до сих пор развивается — как минимум еще одна серверная операционная система, которую вполне можно назвать «сверстником динозавров»: OpenVMS родилась 25 октября 1977 года и сегодня отмечает свое 45-летие.
Эта ОС разрабатывалась корпорацией DEC для компьютеров серии VAX-11/780, и называлась VAX/VMS, что расшифровывалось как Virtual Address eXtension/Virtual Memory System. Как следует из этого названия, VAX/VMS представляла собой многопользовательскую, основанную на виртуальной памяти операционную систему, работавшую по принципу разделения времени.

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

ОС писали на языке VAX MACRO — разновидности ассемблера, реализующий архитектуру набора инструкций VAX, часть команд была написана на языке BLISS, разработанном в Университете Карнеги-Меллона. Постепенно проект Star переродился в новый компьютер, получивший наименование VAX-11/780, пришлось переименовать и операционную систему: вместо Starlet она стала называться VAX/VMS, хотя исходное наименование осталось в названиях нескольких системных библиотек, таких как STARLET.MLB и STARLET.OLB.

К 1977 году система была готова, однако прикладных программ для нее еще не существовало — именно поэтому одним из важных требований со стороны DEC была совместимость с ОС DEC RSX-11M для ЭВМ предыдущих поколений. Ради этой высокой цели в VAX/VMS был реализован специальный механизм RSX Application Migration Executive (RSX AME), позволявший запускать приложения пользовательского режима для DEC RSX — он просуществовал вплоть до третьей версии ОС, после которой был наконец упразднен. В VAX/VMS V4.0 этот компонент был заменен новым модулем VAX-11 RSX, обеспечивавшим совместимость с устаревшими приложениями.

tthc9i5eews7wh00nro8ngtggrc.jpeg

Операционная система VAX/VMS имела сложную многоуровневую архитектуру. На самом нижнем уровне находилось ядро, привилегированный код и структуры данных, включая подсистему ввода-вывода, а также микропрограммы, которые взаимодействуют с этими компонентами. На уровне выше располагался интерпретатор команд. Самый верхний уровень — это непривилегированные библиотеки и программы, которые могут взаимодействовать с ядром через системные службы — эквивалент системных вызовов в других ОС. В VAX/VMS было реализовано четыре режима доступа к процессору, с убывающим набором привилегий на каждой ступени, причем каждый режим имел свой собственный стек. Адресное пространство памяти делилось на пространства каждого из процессов, и общее пространство для всех процессов в системе. При этом страницы имели собственную защиту памяти для каждого режима доступа к процессору.

VAX/VMS использовала собственную файловую систему под названием On-Disk Structures (ODS). На первых компьютерах, использовавших VAX/VMS, в качестве накопителя применялась магнитная лента, но ODS с самого начала поддерживала магнитные диски, а в первой половине 90-х появилась поддержка оптических.

y4qbry7pi-r9h9fwvcve2jafbok.png

Командный интерпретатор мог выполнять не только команды DCL (DIGITAL Command Language), но и сценарии оболочки, которые в терминологии DEC назывались «командными процедурами» — это своеобразный аналог скриптов в *nix или пакетных файлов в DOS. Примечательно, что если в Unix вызываемое из командной строки приложение запускалось в отдельном изолированном процессе с использованием fork-exec, то в VAX/VMS командный интерпретатор подгружал приложение в адресное пространство собственного процесса, передавал ему управление, а потом проверял, что приложение завершилось и процесс интерпретатора вернулся в исходное состояние.

Операционная система изначально была рассчитана на работу в сети: поддерживался удаленный вход в систему, доступ к файлам, принтерам и общим папкам, причем компьютеры под управлением VAX/VMS могли подключаться как к Ethernet, так и к сети собственного стандарта, разработанного в DEC — DECnet. Если в сети присутствовали машины под управлением других ОС, например, MS-DOS, OS/2 или Windows, они могли подключаться к сети DEC с помощью платного приложения PathWorks.

DEC разработала несколько дистрибутивов своей операционной системы— MicroVMS для ЭВМ MicroVAX, и Desktop-VMS для персональных компьютеров VAXstation. Позже ОС была переписана для архитектуры DEC Alpha, и в апреле 1988 года из ее названия исчезла приставка «VAX». Примерно в тот же период DEC передала дальнейшую разработку ОС в отдельное подразделение, которое вскоре стало самостоятельной компанией VMS Software Inc. В ноябре 1992 года к наименованию добавили слово «Оpen», после чего система обрела свое современное имя — OpenVMS.

В 2001 году компания Compaq объявила о переносе OpenVMS на платформу Intel Itanium, и в 2003 году была анонсирована первая версия этой ОС для рабочих станций HP i2000. Вскоре начались работы по портированию системы на архитектуру x86–64 с целью устанавливать ее на серверах HP и Dell, а также запускать на гипервизорах. О поддержке VMware было объявлено в 2020 году, а Hyper-V был описан как будущая цель. В 2021 году была продемонстрирована работа порта x86–64 на одноплатном компьютере на базе Intel Atom.

cdonlq2ns9owtjbmeic9f_3ma-o.png

Изначально OpenVMS использовала интерфейс с командной строкой, но уже начиная с версии Desktop-VMS, то есть, с 1984 года она стала использовать проприетарную систему с оконным графическим интерфейсом собственной разработки DEC. В 1989 году DEC заменила ее новой оконной системой на основе X11 под названием DECwindows.

5kfpnwsow-hglmh5mwx3lehec3o.png

Этот вариант использовался до 1996 года, когда в OpenVMS V7.1, DEC выпустила новый интерфейс рабочего стола на основе Motif, базирующийся на Common Desktop Environment (CDE), но в версии для Intel Itanium по-прежнему сохранился DECwindows.

OpenVMS до сих пор используется в банках, больницах и учреждениях здравоохранения, на промышленных предприятиях и в дата-центрах операторов связи. В 2000-х годах во всем мире действовало около полумиллиона систем под управлением OpenVMS, сейчас их количество тоже не велико, но, тем не менее, ОС продолжает развиваться — последнюю актуальную версию OpenVMS V9.2 компания VMS Software Inc. выпустила 14 июля 2022 года.

p-u9l27ynelxi92bcmdxhu76ma8.png

© Habrahabr.ru