Введение

Операционная система

Stratus VOS (Virtual Operating System) — это проприетарная операционная система, работающая на отказоустойчивых компьютерных системах Stratus Technologies. VOS доступен на платформах ftServer и Continuum от Stratus. Пользователи VOS используют её для поддержки приложений обработки больших объемов транзакций, требующих непрерывной доступности. VOS примечателен тем, что является одной из немногих операционных систем, работающих на полностью синхронизированном аппаратном обеспечении. В 1980-х годах существовала версия Stratus VOS, разработанная IBM, под названием System/88 Operating System.

История

VOS разрабатывался изначально как высокозащищенная среда обработки транзакций, адаптированная к аппаратному обеспечению с повышенной устойчивостью к сбоям. В его разработке был использован значительный опыт, полученный в ходе проекта Multics, реализованного совместно MIT, Bell Laboratories и General Electric (позже Honeywell). В 1984 году компания Stratus добавила в VOS реализацию UNIX System V под названием Unix System Facilities (USF), интегрировав Unix и VOS на уровне ядра. В последние годы компания Stratus обеспечила соответствие стандартам POSIX, благодаря чему на VOS можно запускать множество пакетов с открытым исходным кодом. Как и другие коммерческие операционные системы, VOS демонстрировала устойчивое снижение доли рынка в 1990-х и начале 2000-х годов.

Программирование для VOS

VOS предоставляет компиляторы для PL/I, COBOL, Pascal, FORTRAN, C (с компиляторами VOS C и GCC) и C++ (также GCC). Каждый из этих языков программирования может выполнять системные вызовы VOS (например, s$seq read для чтения записи из файла) и имеет расширения для поддержки строк переменной длины в стиле PL/I. Разработчики обычно программируют в своем любимом текстовом редакторе VOS или автономно, перед компиляцией на системе; приложений VOS IDE не существует. За свою историю Stratus предлагала аппаратные платформы на основе семейств микропроцессоров Motorola 68000 (серии "FT" и "XA"), Intel i860 (серия "XA/R"), HP PA RISC (серия "Continuum") и Intel Xeon x86 (серия "V"). Все версии VOS предлагают компиляторы, ориентированные на нативный набор инструкций, а некоторые версии VOS предлагают кросс-компиляторы. Stratus добавила поддержку API POSIX в VOS Release 14.3 (на Continuum), а также поддержку компилятора GNU C/C++, отладчика GNU gdb и множества команд POSIX в VOS Release 14.4. С каждым новым выпуском VOS добавлялось всё больше возможностей POSIX.1, вплоть до того, что многие пакеты с открытым исходным кодом теперь можно успешно собирать в пользовательском режиме. По этой причине, начиная с выпуска 17.0, Stratus переименовала VOS в OpenVOS. Stratus предлагает поддерживаемые порты Samba, OpenSSL, OpenSSH, GNU Privacy Guard, OpenLDAP, Berkeley DB, MySQL Community Server, Apache, IBM WebSphere MQ и общедоступную версию Java. Числовые значения в VOS всегда хранятся в формате big endian, независимо от порядка байтов базовой аппаратной платформы. На серверах с архитектурой little endian и процессорами x86 компиляторы выполняют преобразование порядка байтов перед чтением или записью значений в память, для преобразования данных в или из нативного формата little endian.

Язык командных макросов

VOS располагает достаточно развитым языком командных макросов, который можно использовать для создания систем меню, автоматизации задач и т.п. Командные макросы VOS принимают аргументы из командной строки или через пользовательскую форму. Аргументы определяются в начале командного макроса в секции "параметры". Язык поддерживает различные операторы, включая if/then/else, логические операции, циклы "while", "goto" и предоставляет подробные сообщения об ошибках. Язык командных макросов может выполняться в интерактивном и неинтерактивном режимах (пакетном или как запущенный процесс). Он может использоваться для автоматизации программ, перехвата запросов и отправки соответствующих ответов. В связи с этим компания Stratus ограничила возможности языка командных макросов. Язык макросов не поддерживает пользовательские функции и затрудняет использование включаемых файлов. Обработка строк подвержена ошибкам, особенно при наличии встроенных управляющих символов. Расширение для подсветки синтаксиса VOS Command Macro для Visual Studio Code доступно на Visual Studio Marketplace.

Распространение

VOS распространяется исключительно компанией Stratus Technologies. Носителями распространения являются 3,5-мм DAT-лента для Continuum и SDLT-лента для ранних платформ V Series. Начиная с релиза OpenVOS 17.0, компания Stratus предлагает возможность распространения OpenVOS на DVD-диске или путем загрузки файла релиза. Установка программного обеспечения может выполняться инженером технической поддержки Stratus или системным администратором заказчика.

Интерфейс

Интерфейс командной строки является основным и самым мощным пользовательским интерфейсом для системы VOS. Пользователи могут быть ограничены подсистемой, основанной на "формах", с помощью командных макросов, если это необходимо, однако опытный пользователь сможет выйти из неё и получить доступ к командной строке. (Фактически, администратор системы Stratus может настроить учётную запись пользователя таким образом, что попытка выйти из FMS — системы управления формами Stratus — в командную строку приведёт к выходу пользователя из системы.) Командные макросы и программы могут быть вызваны с аргументом для отображения формы, содержащей список всех доступных параметров, по которым пользователь может перемещаться с помощью клавиши "Tab". Каждый параметр обычно ограничен для контроля вводимых пользователем данных. Это включает списки допустимых значений, только числовые значения, только текст и т.д. Параметры также могут быть скрыты с помощью "секретного" тега или сделаны обязательными для заполнения. Все команды в VOS определяются полностью, с использованием символов подчеркивания для разделения слов. Например, изменяет рабочий каталог. Система справки VOS использует эту конвенцию, чтобы помочь пользователям, ищущим подмножество возможных команд; например, команды, относящиеся к "изменению", можно найти по . Пользователи могут настроить свой интерфейс командной строки с помощью файла, содержащего сокращения для команд. Командные сокращения обычно называются по первым буквам представляемой ими команды, поэтому может быть расширено до .

Система приложений

VOS используется в системах Continuum и ftServer, обе из которых разработаны с высокой степенью устойчивости к сбоям. В связи с этим, эти системы обычно применяются в приложениях, критически важных для безопасности или для выполнения задач, таких как банковское дело, здравоохранение, телекоммуникации и обработка транзакций.

Сообщения

VOS поддерживает следующие протоколы. Это может привести к потере функциональности, так как OS TCP/IP поддерживал ряд функций, не соответствующих стандартам OSI, и поэтому от них отказались. Аппаратное обеспечение ftServer, на котором работает V Series, поддерживает только TCP/IP и X.25 (X.25 – только при наличии опциональной NIO). Websphere MQ 6.0 (также известная как MQ Series) работает на основе TCP/IP, поэтому она также поддерживается аппаратным обеспечением ftServer. Устройства, поддерживающие устаревшие протоколы, работают на аппаратном обеспечении Continuum и могут быть доступны с современного оборудования через сеть Open StrataLINK.

Допустимость неисправности

Отказоустойчивость встроена в VOS с самого начала. На аппаратном уровне основные устройства работают в режиме синхронного дублирования, что означает, что два идентичных устройства выполняют одно и то же действие одновременно. (Кроме того, каждое устройство или плата также дублируется для выявления внутренних неисправностей на аппаратном уровне, поэтому аппаратное обеспечение Stratus можно определить как работающее в "синхронном режиме"). Эти платы активно контролируются операционной системой, которая может корректировать любые незначительные расхождения (например, ошибки записи или чтения с диска). Любые платы, сообщающие о недопустимом количестве ошибок, автоматически отключаются системой; дублирующая плата продолжает работу до устранения проблемы посредством оперативного исправления. Это относится к процессорам, дисковым накопителям и любым другим устройствам, которые могут быть логически дублированы (что, по определению, исключает коммуникационное оборудование). Система продолжит обработку данных в обычном режиме и автоматически создаст заявку на неисправность в службу поддержки клиентов Stratus через RSN (сеть удалённого обслуживания). Служба поддержки Stratus затем подключится к системе через RSN для диагностики проблемы и отправки запасных частей. Операционная система разработана для предотвращения сбоев, вызванных отказом одного из аппаратных компонентов.

Безопасность файловой системы

VOS поддерживает запись, чтение, выполнение и нулевой (отсутствие) доступа ко всем файлам, каталогам и устройствам (хотя для каталогов и файлов списки доступа несколько различаются). Доступ может быть предоставлен пользователям, группам или всем пользователям. Для запуска исполняемой программы требуется только доступ на чтение, при условии, что у пользователя есть доступ с правами "статуса" к каталогу, в котором эта программа находится. VOS унаследовал списки управления доступом от Multics и также реализует списки управления доступом к каталогам. Если для файла не определен список управления доступом, применяется список управления доступом по умолчанию для содержащего его каталога. Доступ к устройствам обычно контролируется путем создания файла, который администратор связывает с устройством. (Это может быть справедливо для OpenVOS, но не для оригинальной операционной системы.) Затем доступ предоставляется к этому файлу, что определяет доступ к устройству.

Открыть StrataLINK

VOS всегда была сетевой операционной системой. Практически каждый системный вызов в нативном API имеет параметр, определяющий, на какой компьютер направлена операция. Если операция не локальная, она перенаправляется на целевой компьютер посредством удаленного вызова подпрограммы. Например, имена файлов разбираются для указания компьютера, на котором расположен файл. Сетевая модель StrataLINK имеет двух уровневую иерархию для именования компьютеров: каждый компьютер называется модулем, а модули объединяются в системы. Каждая система администрируется как единое целое. Иными словами, все модули в системе осведомлены обо всех дисках и аппаратных устройствах этой системы. В результате, имя файла, начинающееся с имени системы, относится к файлам на других компьютерах и может быть открыто без необходимости использования каких-либо специальных сетевых средств. То же самое верно и для устройств. Другие системные сущности, такие как процессы, адресуются с использованием имен модулей, которые записываются как %system#module. Имена систем и модулей VOS не имеют четкой связи с IP-адресами или доменными именами. API VOS был разработан в конце 1980-х годов – до широкого распространения Интернета и задолго до изобретения URL. Исторически, StrataLINK представляла собой проприетарную кольцевую сеть CSMA/CD со скоростью 10 Мбит, обеспечивавшую высокую производительность (для того времени) при очень низких требованиях к памяти и загрузке процессора. Дальнейшее развитие за пределы 10 Мбит не проводилось, и от нее отказались в пользу TCP/IP, поскольку Ethernet стал доминирующим сетевым стандартом, а память и вычислительные мощности процессора стали дешевле. Open StrataLINK также может использовать X.25 для связи на большие расстояния. Использование протоколов Open StrataLINK для связи на большие расстояния также называется StrataNET.