Stratus VOS

Last updated
VOS or OpenVOS
Developer Stratus Technologies
Written in PL/I, C, Assembly language
OS family Multics-like
Working stateCurrent
Source model Closed source
Latest release 19.3.1ag / June 2022 [1]
Platforms i860, x86, PA-RISC, 68k
Kernel type Monolithic kernel
Influenced by Multics, Unix
License Kernel: Stratus Technologies
Drivers, libraries, and user-land programs: Stratus Technologies, Other
Official website Stratus VOS

Stratus VOS (Virtual Operating System) is a proprietary operating system running on Stratus Technologies fault-tolerant computer systems. VOS is available on Stratus's ftServer and Continuum platforms. [2] 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.

Contents

During the 1980s, an IBM version of Stratus VOS existed and was called the System/88 Operating System. [3]

History

VOS was designed from its inception as a high-security transaction-processing environment tailored to fault-tolerant hardware. [4] It incorporates much of the design experience that came out of the MIT/Bell-Laboratories/General-Electric (later Honeywell) Multics project.

In 1984, Stratus added a UNIX System V implementation called Unix System Facilities (USF) to VOS, integrating Unix and VOS at the kernel level. [5]

In recent years,[ when? ] Stratus has added POSIX-compliance, and many open source packages can run on VOS. [6]

Like competing proprietary operating systems, VOS has seen its market share shrink steadily in the 1990s, and early 2000s. [7]

Development

Programming for VOS

VOS provides compilers for PL/I, COBOL, Pascal, FORTRAN, C (with the VOS C and GCC compilers), and C++ (also GCC). [8] 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 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 x86 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 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 (batch or started process) 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. [9]

The macro language lacks support for user-defined functions and does not easily support include files.[ citation needed ] The string handling is prone to errors, especially with embedded control characters.[ citation needed ]

A Visual Studio Code Syntax Highlighting extension for VOS Command Macro can be found on the Visual Studio Marketplace.

Overview

VOS was coded mainly in PL/I with a small amount of assembly language before it was migrated to ftServer series.[ citation needed ] As of 1991, the system was written in PL/I and C, with only 3% in assembly. [10]

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

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 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 [11] 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.)

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 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 help -match change.

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 ccd may be expanded to change_current_dir foodir.

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. [12]

Communications

VOS supports the following protocols [8]

Older versions of VOS implemented a non-OSI standard TCP/IP known as OS TCP/IP (Operating System 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. [13] This can mean a loss of functionality as OS TCP/IP supported several functions that are not OSI-compliant and have therefore been abandoned. The ftServer hardware that V Series runs on only supports TCP/IP and X.25 (X.25 only when equipped with the optional NIO.) Websphere MQ 6.0 (a.k.a. MQ Series) is TCP/IP based; so, that is also supported by ftServer hardware. Devices supporting the legacy protocols run on the Continuum hardware and may be accessed from current hardware over the Open StrataLINK [14] network.

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. (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.

The operating system is designed to avoid crashes due to a simplexed hardware failure.

File system

VOS supports a number of unique file types:

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. [15]

File system security

VOS supports write, read, execute, and null (no) 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 "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. (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.

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. [16] [ failed verification ] [17] [ failed verification ] 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 (for the time) 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.

See also

Related Research Articles

<span class="mw-page-title-main">Multics</span> Time-sharing operating system

Multics is an influential early time-sharing operating system based on the concept of a single-level memory. Nathan Gregory writes that Multics "has influenced all modern operating systems since, from microcomputers to mainframes."

<span class="mw-page-title-main">MVS</span> Operating system for IBM mainframes

Multiple Virtual Storage, more commonly called MVS, is the most commonly used operating system on the System/370, System/390 and IBM Z IBM mainframe computers. IBM developed MVS, along with OS/VS1 and SVS, as a successor to OS/360. It is unrelated to IBM's other mainframe operating system lines, e.g., VSE, VM, TPF.

In computer security, an access-control list (ACL) is a list of permissions associated with a system resource. An ACL specifies which users or system processes are granted access to resources, as well as what operations are allowed on given resources. Each entry in a typical ACL specifies a subject and an operation. For instance,

Internet Small Computer Systems Interface or iSCSI is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP network. iSCSI facilitates data transfers over intranets and to manage storage over long distances. It can be used to transmit data over local area networks (LANs), wide area networks (WANs), or the Internet and can enable location-independent data storage and retrieval.

<span class="mw-page-title-main">VM (operating system)</span> Family of IBM operating systems

VM is a family of IBM virtual machine operating systems used on IBM mainframes System/370, System/390, zSeries, System z and compatible systems, including the Hercules emulator for personal computers.

<span class="mw-page-title-main">NetWare</span> Computer network operating system

NetWare is a discontinued computer network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, using the IPX network protocol.

The Apple Filing Protocol (AFP), formerly AppleTalk Filing Protocol, is a proprietary network protocol, and part of the Apple File Service (AFS), that offers file services for macOS, classic Mac OS, and Apple II computers. In OS X 10.8 Mountain Lion and earlier, AFP was the primary protocol for file services. Starting with OS X 10.9 Mavericks, Server Message Block (SMB) was made the primary file sharing protocol, with the ability to run an AFP server removed later in macOS 11 Big Sur. AFP supports Unicode file names, POSIX and access-control list permissions, resource forks, named extended attributes, and advanced file locking.

OpenVPN is a virtual private network (VPN) system that implements techniques to create secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities. It implements both client and server applications.

<span class="mw-page-title-main">Econet</span> Computer networking system

Econet was Acorn Computers's low-cost local area network system, based on a CSMA-CD serial protocol carried over a five-wire data bus, intended for use by schools and small businesses. It was widely used in those areas, and was supported by a large number of different computer and server systems produced both by Acorn and by other companies.

<span class="mw-page-title-main">Architecture of Windows NT</span> Structure of the operating system

The architecture of Windows NT, a line of operating systems produced and sold by Microsoft, is a layered design that consists of two main components, user mode and kernel mode. It is a preemptive, reentrant multitasking operating system, which has been designed to work with uniprocessor and symmetrical multiprocessor (SMP)-based computers. To process input/output (I/O) requests, it uses packet-driven I/O, which utilizes I/O request packets (IRPs) and asynchronous I/O. Starting with Windows XP, Microsoft began making 64-bit versions of Windows available; before this, there were only 32-bit versions of these operating systems.

Remote File Sharing (RFS) is a Unix operating system component for sharing resources, such as files, devices, and file system directories, across a network, in a network-independent manner, similar to a distributed file system. It was developed at Bell Laboratories of AT&T in the 1980s, and was first delivered with UNIX System V Release 3 (SVR3). RFS relied on the STREAMS Transport Provider Interface feature of this operating system. It was also included in UNIX System V Release 4, but as that also included the Network File System (NFS) which was based on TCP/IP and more widely supported in the computing industry, RFS was little used. Some licensees of AT&T UNIX System V Release 4 did not include RFS support in SVR4 distributions, and Sun Microsystems removed it from Solaris 2.4.

A Unix architecture is a computer operating system system architecture that embodies the Unix philosophy. It may adhere to standards such as the Single UNIX Specification (SUS) or similar POSIX IEEE standard. No single published standard describes all Unix architecture computer operating systems — this is in part a legacy of the Unix wars.

<span class="mw-page-title-main">IBM TPNS</span> Test automation tool developed by IBM

Teleprocessing Network Simulator (TPNS) is an IBM licensed program, first released in 1976 as a test automation tool to simulate the end-user activity of network terminal(s) to a mainframe computer system, for functional testing, regression testing, system testing, capacity management, benchmarking and stress testing.

The Parallel Virtual File System (PVFS) is an open-source parallel file system. A parallel file system is a type of distributed file system that distributes file data across multiple servers and provides for concurrent access by multiple tasks of a parallel application. PVFS was designed for use in large scale cluster computing. PVFS focuses on high performance access to large data sets. It consists of a server process and a client library, both of which are written entirely of user-level code. A Linux kernel module and pvfs-client process allow the file system to be mounted and used with standard utilities. The client library provides for high performance access via the message passing interface (MPI). PVFS is being jointly developed between The Parallel Architecture Research Laboratory at Clemson University and the Mathematics and Computer Science Division at Argonne National Laboratory, and the Ohio Supercomputer Center. PVFS development has been funded by NASA Goddard Space Flight Center, The DOE Office of Science Advanced Scientific Computing Research program, NSF PACI and HECURA programs, and other government and private agencies. PVFS is now known as OrangeFS in its newest development branch.

In computing, Microsoft's Windows Vista and Windows Server 2008 introduced in 2007/2008 a new networking stack named Next Generation TCP/IP stack, to improve on the previous stack in several ways. The stack includes native implementation of IPv6, as well as a complete overhaul of IPv4. The new TCP/IP stack uses a new method to store configuration settings that enables more dynamic control and does not require a computer restart after a change in settings. The new stack, implemented as a dual-stack model, depends on a strong host-model and features an infrastructure to enable more modular components that one can dynamically insert and remove.

The Unix command fuser is used to show which processes are using a specified computer file, file system, or Unix socket.

<span class="mw-page-title-main">Network block device</span> Network storage protocol

On Linux, network block device (NBD) is a network protocol that can be used to forward a block device from one machine to a second machine. As an example, a local machine can access a hard disk drive that is attached to another computer.

<span class="mw-page-title-main">Storage area network</span> Network which provides access to consolidated, block-level data storage

A storage area network (SAN) or storage network is a computer network which provides access to consolidated, block-level data storage. SANs are primarily used to access data storage devices, such as disk arrays and tape libraries from servers so that the devices appear to the operating system as direct-attached storage. A SAN typically is a dedicated network of storage devices not accessible through the local area network (LAN).

TurboDOS is a multi user CP/M like operating system for the Z80 and 8086 CPUs developed by Software 2000 Inc.

A VMScluster, originally known as a VAXcluster, is a computer cluster involving a group of computers running the OpenVMS operating system. Whereas tightly coupled multiprocessor systems run a single copy of the operating system, a VMScluster is loosely coupled: each machine runs its own copy of OpenVMS, but the disk storage, lock manager, and security domain are all cluster-wide, providing a single system image abstraction. Machines can join or leave a VMScluster without affecting the rest of the cluster. For enhanced availability, VMSclusters support the use of dual-ported disks connected to two machines or storage controllers simultaneously.

References

  1. "V Series/Continuum Support Matrix | Stratus Technologies". Stratus | Zero-touch Edge Computing. Retrieved 2023-01-04.
  2. "High Availability & Fault Tolerant Software & Solutions - Stratus Technologies". Stratus. Retrieved 16 May 2016.
  3. "IBM powers up System/88 line". Computerworld. 16 November 1987.
  4. "Article 5121 in comp.sys.stratus". Ftp.stratus.com. Archived from the original (TXT) on 2015-05-02. Retrieved 2016-05-21.
  5. "Stratus offers Unix implementation for mainframes". Computerworld. 12 November 1984. p. 86.
  6. "POSIX-based Open-Source Software for VOS and OpenVOS". Ftp.stratus.com. 2015-04-24. Archived from the original on 2016-04-02. Retrieved 2016-05-21.
  7. Seacord, Robert C.; Plakosh, Daniel; Lewis, Grace A. (2003). Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices. Addison-Wesley. p. 11. ISBN   9780321118844.
  8. 1 2 "Operating Systems". Archived from the original on September 27, 2011. Retrieved August 23, 2011.
  9. "Google Groups". Groups.google.ie. Retrieved 2016-05-16.
  10. Johnson, Maryfran (1 April 1991). "Stratus compiler spells migration boost". Computerworld. pp. 25, 32.
  11. "Introduction to Backup". Stratadoc.stratus.com. Retrieved 2016-05-21.
  12. "Stratus Technologies : Client Success Stories". Archived from the original on July 3, 2007. Retrieved July 14, 2007.
  13. "Overview of Migrating from OS TCP/IP to STCP". Stratadoc.stratus.com. Retrieved 2016-05-21.
  14. "OpenStrataLINK Administration". Stratus Technologies.
  15. "Google Groups". Groups.google.ie. Retrieved 2016-05-16.
  16. "OpenVOS C Subroutines". Stratus Technologies.
  17. "OpenVOS PL/1 Subroutines". Stratus Technologies.