Stratus VOS
Stratus 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 high-volume transaction processing applications which require continuous availability. VOS is notable for being one of the few operating systems which run on fully lockstepped hardware.
During the 1980s, an IBM version of Stratus VOS existed and was called the System/88 Operating System.
History
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 MIT/Bell-Laboratories/General-Electric Multics project.In 1984, Stratus added a UNIX System V implementation called Unix System Facilities to VOS, integrating Unix and VOS at the kernel level.
In recent years, Stratus has added POSIX-compliance, and many open source packages can run on VOS.
Like competing proprietary operating systems, VOS has seen its market share shrink steadily in the 1990s and early 2000s.
Development
Programming for VOS
VOS provides compilers for PL/I, COBOL, Pascal, FORTRAN, C, and C++. Each of these programming languages can make VOS system calls, 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 microprocessor family, the Intel i860 microprocessor family, the HP PA-RISC processor family, and the Intel Xeon x86 processor family. 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, 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 x86 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/I with a small amount of assembly language before it was migrated to ftServer series. As of 1991, the system was written in PL/I and C, with only 3% in assembly. This, and Stratus's advanced compilers, made VOS more portable than contemporaries such as VMS or Domain/OS.Its overall structure has much in common with Multics, and many of the system's 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
Distribution
VOS is distributed only by Stratus Technologies. 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.Interface
The command-line interface 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.
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, changes the working directory. 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" are found by.
Users may customize their command interface by means of a file that contains abbreviations for commands. Command abbreviations are conventionally named after the first letters of the command they represent, so may be expanded to.
Applications
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
Fault tolerance
Fault tolerance is built into VOS from the bottom up. On a hardware level, major devices are run in lockstepped duplex mode, meaning that there are two identical devices performing the same action at the same time. These boards are actively monitored by the operating system which can correct any minor inconsistencies. 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. The system will continue processing as normal and will automatically raise a fault ticket with Stratus Customer Service via RSN. Stratus Customer Service will then dial into the system using RSN to investigate the problem and dispatch replacement parts.The operating system is designed to avoid crashes 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 queues
- Pipes: named pipes for inter-process communication
- Transaction files: these provide support for journal based rollback
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#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. These paging files can in theory consist of more than one extent 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. 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 "status" access for the directory in which that program resides.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. Access is then given to this file, and this sets the access on the device.
Open StrataLINK
VOS has always been a network-aware operating system. Virtually every system call in the native API has a parameter that determines what computer the operation affects. If the operation isn't local, it is redirected to the target computer via remote subroutine call. For example, file names are parsed to indicate which computer the file resides on.The StrataLINK networking model has a two level hierarchy for naming computers: Each computer is called a module and modules are aggregated into systems. Each system is administered as a unit. In other words, all of the modules in a system are aware of all the disks and hardware devices on that system. The result of this is that a file name that begins with the system name refers to files on other computers and can be opened without the need for any special networking. The same is true for devices. Other system entities, such as processes, are referenced using module names which are written %system#module. The VOS system and module names have no defined relationship with IP addresses or domain names—The VOS API was developed in late 1980—before the Internet was widely adopted and long before URLs were even invented.
Historically, StrataLINK was a proprietary 10Mb CSMA/CD ring network which allowed high performance with very low memory overhead and CPU utilization. This was never developed beyond 10Mb and was dropped in favor of using TCP/IP because Ethernet became the dominant networking standard and because memory and CPU processing got cheaper.
Open StrataLINK can also use X.25 for wide area communications. Using the Open StrataLINK protocols for wide area communications is also referred to as StrataNET.