Stratus VOS
Encyclopedia
VOS is a proprietary operating system
running on Stratus Technologies
fault-tolerant computer systems. VOS is available on Stratus's ftServer and Continuum platforms. VOS customers use it to support critical, high-volume transaction processing applications which require continuous availability.
project.
In recent years, Stratus has added POSIX
-compliance, and many open source packages can run on VOS.
, COBOL
, Pascal
, FORTRAN
, VOS C, BASIC
, and C++
.. Each of these programming languages can make VOS system calls (e.g.
In its history, Stratus has offered hardware platforms based on the Motorola 68000
microprocessor family ("FT" and "XA" series), the Intel i860
microprocessor family ("XA/R" series), the HP PA-RISC processor family ("Continuum" series), and the Intel Xeon processor family ("V Series"). All versions of VOS offer compilers targeted at the native instruction set, and some versions of VOS offer cross-compilers.
Stratus added support for the POSIX
API in VOS Release 14.3 (on Continuum), and added support for the GNU C/C++ compiler, GNU gdb debugger, and many POSIX commands in VOS Release 14.4. Each additional release of VOS has added more POSIX.1 capabilities, to the point where many user-mode open-source packages can now be successfully built. For this reason, beginning with Release 17.0, Stratus renamed VOS to OpenVOS.
Stratus offers supported ports of Samba, OpenSSL, OpenSSH, GNU Privacy Guard, OpenLDAP, Berkeley DB, MySQL Community Server, Apache, IBM WebSphere MQ, and the community edition of Java.
Numeric values in VOS are always big endian, regardless of the endianness of the underlying hardware platform. On little endian servers with Pentium
processors, the compilers do a byte swap before reading or writing values to memory to transform the data to or from the native little endian format.
The macro language lacks support for user-defined functions and does not easily support include files. The string handling is prone to errors, especially with embedded control characters.
with a small amount of assembly language
before it was migrated to ftServer series but now it is coded in POSIX compliant C
& C++
, assembly language and legacy PL/I. Its overall structure has much in common with Multics, and many of the system's sophisticated features can be traced back to Multics to varying degrees. The system exposes a number of fundamental abstractions to the software designer or programmer, most notable being
A process is the scheduled entity in VOS and each process has a set of attributes that govern how it is manipulated by the system. For example processes have a user name and process name. The former is used by VOS to determine the process's access rights to external devices and items with the file system. Of fundamental significance is a process's privileged flag, which is a binary attribute. Privileged processes may perform privileged operations. This mechanism is used to restrict certain potentially powerful operations that can have system wide consequences (e.g. shutting down the system, dismounting a hard disk etc.).
. The distribution media is a 3.5 mm DAT tape for Continuum, and an SDLT tape for early V Series platforms. As of OpenVOS Release 17.0, Stratus offers support for distributing OpenVOS on a DVD
or by downloading a release file. Software installations may be done by the Stratus Field Engineer or by the customer's system administrator.
is the main, and most powerful, user interface for a VOS system.
Users may be locked into "form" based sub-system by command macro scripts if required, although a skilled user would be able to break out of this and get command-line access. (It is, in fact, possible for a Stratus system administrator to set up a user's account such that an attempt to break out of FMS—the Stratus Forms Management System—to the command line results in the user being logged out. Therefore this is not an approach to be recommended.)
Command macros and programs can be invoked with an argument to display a form listing all the available parameters, which the user can navigate using the "tab" key. Each parameter is generally restricted to control what the user can input. This includes lists of valid values, numeric-only, text-only, etc. Parameters can also be hidden using a "secret" tag, or made mandatory.
All commands in VOS are defined in full with underbars to separate words, for example
Every user has a file which contains a list of standard abbreviations for common commands, command strings, or commands with common variables. Command abbreviations are conventionally named after the first letters of the command they represent, so
The user can add, delete or modify the abbreviations, and many experienced VOS users have an abbreviations file built up over a long time that they bring with them to new systems and jobs.
VOS processes run a start-up command
Older versions of VOS implemented a non-OSI standard TCP/IP known as OS TCP/IP. VOS since version 14.x has implemented OSI-compliant Streams-TCP. Older applications using OS TCP/IP have to be ported in order to use STCP. This can mean a loss of functionality as OS TCP/IP supported several functions that are not OSI-compliant and have therefore been abandoned.
Typically a modern Stratus ftServer or Continuum can expect to see 99.999% uptime. This is not to say that the applications running on these systems will achieve this level of uptime, only that the operating system will not crash due to a simplexed hardware failure.
The VOS API allows the creation of multiple indexes per file, sorting according to the contents of a record, or an external key, or an internal key, or a well-defined set of multiple keys. A VOS file with one or more indexes can be used as a C-ISAM database table.
VOS uses a proprietary file naming syntax which includes the system name, module name, disk number, and directory, with components separated by the ">" symbol. Typically the system disk will be housed in the same module as the CPU,
(%system)#m1_d01>system>devices.table
VOS disk allocation and memory is organised in "blocks", each block being 4,096 bytes. Memory takes the form of RAM or paging. VOS systems support paging partitions and paging files. In modern versions of VOS, paging files can be created dynamically by the SysAdmin (but not removed without a reboot). These paging files can in theory consist of more than one extent (which is viewed by the kernel as a mini-paging partition) which may or may not be contiguous. However, non-contiguous extents are NOT recommended as they greatly increase disk activity. Admin should create the largest possible extent for the paging files as early as possible after the system has been booted.
VOS inherited access control lists from Multics
and also implements directory access control lists. If a file does not have an access control list, the containing directory's default access control list applies.
Access to devices is typically controlled by creating a file which is linked to the device by the administrator. (This may be true in OpenVOS, but does not apply to the original operating system.) Access is then given to this file, and this sets the access on the device.
Access to operating systems commands is controlled by adding the command to a table in the system directory, and defining which users or groups have access to that command. Badly configuring this file has been known to force reboots of systems . In general, however, the VOS kernel is designed to be robust in the face of user-space errors, including misconfiguration of table files under #d01>system, which is intentionally the sole directory to contain configuration (table) files.
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
running on Stratus Technologies
Stratus Technologies
Stratus Technologies, Inc. a major producer of fault tolerant computer servers. The company was founded in 1980 as Stratus Computer, Inc. in Natick, Massachusetts, and adopted its present name in 1999. The current CEO and president is Dave Laurello. Stratus Technologies, Inc. is a privately held...
fault-tolerant computer systems. VOS is available on Stratus's ftServer and Continuum platforms. VOS customers use it to support critical, high-volume transaction processing applications which require continuous availability.
History
According to the Stratus FAQ, VOS was designed from its inception as a high-security transaction-processing environment tailored to fault-tolerant hardware. It incorporates much of the design experience that came out of the famous MIT/Bell-Laboratories/General-Electric (later Honeywell) MULTICSMultics
Multics was an influential early time-sharing operating system. The project was started in 1964 in Cambridge, Massachusetts...
project.
In recent years, Stratus has added POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
-compliance, and many open source packages can run on VOS.
Programming in VOS
VOS provides compilers for PL/IPL/I
PL/I is a procedural, imperative computer programming language designed for scientific, engineering, business and systems programming applications...
, COBOL
COBOL
COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
, Pascal
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...
, FORTRAN
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
, VOS C, BASIC
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....
, and C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
.. Each of these programming languages can make VOS system calls (e.g.
s$seq_read
to read a record from a file), and has extensions to support varying-length strings in PL/I style. Developers typically code in their favourite VOS text editor, or offline, before compiling on the system; there are no VOS IDE applications.In its history, Stratus has offered hardware platforms based on the Motorola 68000
Motorola 68000
The Motorola 68000 is a 16/32-bit CISC microprocessor core designed and marketed by Freescale Semiconductor...
microprocessor family ("FT" and "XA" series), the Intel i860
Intel i860
The Intel i860 was a RISC microprocessor from Intel, first released in 1989. The i860 was one of Intel's first attempts at an entirely new, high-end instruction set since the failed Intel i432 from the 1980s...
microprocessor family ("XA/R" series), the HP PA-RISC processor family ("Continuum" series), and the Intel Xeon processor family ("V Series"). All versions of VOS offer compilers targeted at the native instruction set, and some versions of VOS offer cross-compilers.
Stratus added support for the POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
API in VOS Release 14.3 (on Continuum), and added support for the GNU C/C++ compiler, GNU gdb debugger, and many POSIX commands in VOS Release 14.4. Each additional release of VOS has added more POSIX.1 capabilities, to the point where many user-mode open-source packages can now be successfully built. For this reason, beginning with Release 17.0, Stratus renamed VOS to OpenVOS.
Stratus offers supported ports of Samba, OpenSSL, OpenSSH, GNU Privacy Guard, OpenLDAP, Berkeley DB, MySQL Community Server, Apache, IBM WebSphere MQ, and the community edition of Java.
Numeric values in VOS are always big endian, regardless of the endianness of the underlying hardware platform. On little endian servers with Pentium
Pentium compatible processor
A Pentium compatible processor is a 32-bit processor computer chip which supports the instructions in the IA-32 instruction set that were implemented by the Intel P5 Pentium processor family...
processors, the compilers do a byte swap before reading or writing values to memory to transform the data to or from the native little endian format.
Command Macro Language
VOS has a fairly complete command macro language which can be used to create menu systems, automate tasks etc. VOS command macros accept arguments on the command-line or via a user interface "form". Arguments are defined at the beginning of the command macro in a "parameters" section. The language supports a range of statements, including if/then/else, boolean operations, "while" loops, "goto" and excellent error reporting. The command macro language can be executed in interactive and non-interactive modes. It can be used to automate programs, capturing prompts and sending appropriate responses. This has led Stratus to limit the capabilities of the command macro language.The macro language lacks support for user-defined functions and does not easily support include files. The string handling is prone to errors, especially with embedded control characters.
Overview
VOS was coded mainly in PL/IPL/I
PL/I is a procedural, imperative computer programming language designed for scientific, engineering, business and systems programming applications...
with a small amount of assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
before it was migrated to ftServer series but now it is coded in POSIX compliant C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
& C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, assembly language and legacy PL/I. Its overall structure has much in common with Multics, and many of the system's sophisticated features can be traced back to Multics to varying degrees. The system exposes a number of fundamental abstractions to the software designer or programmer, most notable being
- Processes
- Devices
- Hard Disks
- Various IPC mechanisms
- Tasks
A process is the scheduled entity in VOS and each process has a set of attributes that govern how it is manipulated by the system. For example processes have a user name and process name. The former is used by VOS to determine the process's access rights to external devices and items with the file system. Of fundamental significance is a process's privileged flag, which is a binary attribute. Privileged processes may perform privileged operations. This mechanism is used to restrict certain potentially powerful operations that can have system wide consequences (e.g. shutting down the system, dismounting a hard disk etc.).
Distribution
VOS is distributed only by Stratus TechnologiesStratus Technologies
Stratus Technologies, Inc. a major producer of fault tolerant computer servers. The company was founded in 1980 as Stratus Computer, Inc. in Natick, Massachusetts, and adopted its present name in 1999. The current CEO and president is Dave Laurello. Stratus Technologies, Inc. is a privately held...
. The distribution media is a 3.5 mm DAT tape for Continuum, and an SDLT tape for early V Series platforms. As of OpenVOS Release 17.0, Stratus offers support for distributing OpenVOS on a DVD
DVD
A DVD is an optical disc storage media format, invented and developed by Philips, Sony, Toshiba, and Panasonic in 1995. DVDs offer higher storage capacity than Compact Discs while having the same dimensions....
or by downloading a release file. Software installations may be done by the Stratus Field Engineer or by the customer's system administrator.
Interface
The command-line interfaceCommand-line interface
A command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks...
is the main, and most powerful, user interface for a VOS system.
Users may be locked into "form" based sub-system by command macro scripts if required, although a skilled user would be able to break out of this and get command-line access. (It is, in fact, possible for a Stratus system administrator to set up a user's account such that an attempt to break out of FMS—the Stratus Forms Management System—to the command line results in the user being logged out. Therefore this is not an approach to be recommended.)
Command macros and programs can be invoked with an argument to display a form listing all the available parameters, which the user can navigate using the "tab" key. Each parameter is generally restricted to control what the user can input. This includes lists of valid values, numeric-only, text-only, etc. Parameters can also be hidden using a "secret" tag, or made mandatory.
All commands in VOS are defined in full with underbars to separate words, for example
change_current_dir
to change directory to a given path. The VOS help system uses this convention to assist users who are looking for a subset of possible commands; for instance, those referring to "change." The command-line call to find this subset is help -match change
.Every user has a file which contains a list of standard abbreviations for common commands, command strings, or commands with common variables. Command abbreviations are conventionally named after the first letters of the command they represent, so
ccd foodir
may be expanded to change_current_dir foodir
.The user can add, delete or modify the abbreviations, and many experienced VOS users have an abbreviations file built up over a long time that they bring with them to new systems and jobs.
VOS processes run a start-up command
start_up.cm
on login. Optionally, and on a per-line basis, this may apply to non-interactive processes. This command macro can be used for a variety of purposes including loading multiple custom abbreviations files, setting custom file-paths, loading emacs customisations etc. Experienced users will also generally have a custom start-up command macro that they may wish to use on new systems.System applications
VOS is used on Continuum and ftServer systems, both of which are designed to be highly fault-tolerant. As such, these systems are typically used in safety-critical or mission-critical applications, typically banks, hospitals, telecommunications and transaction processing companies.Communications
VOS supports the following protocols- TCP/IP
- X.25
- SNA
- SDLC/QLLC
- Async
- Bisync
- LAPB
- Poll/Select
- RJE/HASP
- ALC/SLC
- Visa, S.W.I.F.T., NASDAQ, FAS, CHIPS, AMEX
- MQ Series
Older versions of VOS implemented a non-OSI standard TCP/IP known as OS TCP/IP. VOS since version 14.x has implemented OSI-compliant Streams-TCP. Older applications using OS TCP/IP have to be ported in order to use STCP. This can mean a loss of functionality as OS TCP/IP supported several functions that are not OSI-compliant and have therefore been abandoned.
Fault tolerance
Fault tolerance is built into VOS from the bottom up. On a hardware level, major devices are run in lock stepped duplex mode, meaning that there are two identical devices performing the same action at the same time. (In addition, each device, or board, is also duplexed in order to identify internal board failures at a hardware level, which is why Stratus hardware can be defined as "lock stepped".) These boards are actively monitored by the operating system which can correct any minor inconsistencies (such as bad disk-writes or reads). Any boards which report an unacceptable number of faults are removed from service by the system; the duplexed board will continue operation until the problem is resolved via a hot-fix. This includes CPUs, disk drives, and any other device that can logically be duplexed (which by definition, excludes communications devices). The system will continue processing as normal and will automatically raise a fault ticket with Stratus Customer Service via RSN (the Remote Service Network). Stratus Customer Service will then dial into the system using RSN to investigate the problem and dispatch replacement parts.Typically a modern Stratus ftServer or Continuum can expect to see 99.999% uptime. This is not to say that the applications running on these systems will achieve this level of uptime, only that the operating system will not crash due to a simplexed hardware failure.
File system
VOS supports a number of unique file types:- Stream files: a stream of binary data, corresponding directly with the concept of a file on other operating systems.
- Fixed files: a sequence of records of a fixed size.
- Relative files: a sequence of records of a fixed file supporting random access
- Sequential files: a sequence of records of variable size
- Queue files: file-system based backup for message queueMessage queueIn computer science, message queues and mailboxes are software-engineering components used for interprocess communication, or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content...
s - Pipes: named pipeNamed pipeIn computing, a named pipe is an extension to the traditional pipe concept on Unix and Unix-like systems, and is one of the methods of inter-process communication. The concept is also found in Microsoft Windows, although the semantics differ substantially...
s for inter-process communicationInter-process communicationIn computing, Inter-process communication is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passing, synchronization, shared... - Transaction files: these provide support for journal based rollback
The VOS API allows the creation of multiple indexes per file, sorting according to the contents of a record, or an external key, or an internal key, or a well-defined set of multiple keys. A VOS file with one or more indexes can be used as a C-ISAM database table.
VOS uses a proprietary file naming syntax which includes the system name, module name, disk number, and directory, with components separated by the ">" symbol. Typically the system disk will be housed in the same module as the CPU,
#m1
, so a system file for a VOS cluster would be referenced as(%system)#m1_d01>system>devices.table
VOS disk allocation and memory is organised in "blocks", each block being 4,096 bytes. Memory takes the form of RAM or paging. VOS systems support paging partitions and paging files. In modern versions of VOS, paging files can be created dynamically by the SysAdmin (but not removed without a reboot). These paging files can in theory consist of more than one extent (which is viewed by the kernel as a mini-paging partition) which may or may not be contiguous. However, non-contiguous extents are NOT recommended as they greatly increase disk activity. Admin should create the largest possible extent for the paging files as early as possible after the system has been booted.
File system security
VOS supports write, read, execute, and null access to all files, directories and devices (although directories and files have slightly different access lists). Access can be assigned to users, groups, or the world. Only read access is required to run an executable program, provided that the user has "execute" privileges for the directory in which that program sits.VOS inherited access control lists from Multics
Multics
Multics was an influential early time-sharing operating system. The project was started in 1964 in Cambridge, Massachusetts...
and also implements directory access control lists. If a file does not have an access control list, the containing directory's default access control list applies.
Access to devices is typically controlled by creating a file which is linked to the device by the administrator. (This may be true in OpenVOS, but does not apply to the original operating system.) Access is then given to this file, and this sets the access on the device.
Access to operating systems commands is controlled by adding the command to a table in the system directory, and defining which users or groups have access to that command. Badly configuring this file has been known to force reboots of systems . In general, however, the VOS kernel is designed to be robust in the face of user-space errors, including misconfiguration of table files under #d01>system, which is intentionally the sole directory to contain configuration (table) files.
External links
- Official website
- http://groups.google.com/group/comp.sys.stratus Comp.Sys.Stratus
- http://ftp.stratus.com/index.html Stratus Public FTP Server
- http://stratadoc.stratus.com/splash/vos.html Stratus Documentation Site