RSTS () is a multi-user time-sharing operating system developed by Digital Equipment Corporation (DEC, now part of Hewlett-Packard) for the PDP-11 series of 16-bit minicomputers. The first version of RSTS (RSTS-11, Version 1) was implemented in 1970 by DEC software engineers that developed the TSS-8 time-sharing operating system for the PDP-8. The last version of RSTS (RSTS/E, Version 10.1) was released in September 1992. RSTS-11 and RSTS/E are usually referred to just as "RSTS" and this article will generally use the shorter form. RSTS-11 supports the BASIC programming language, an extended version called BASIC-PLUS, developed under contract by Evans Griffiths & Hart of Boston. Starting with RSTS/E version 5B, DEC added support for additional programming languages by emulating the execution environment of the RT-11 and RSX-11 operating systems.
Acronyms and abbreviations
BTSS (Basic Time Sharing System – never marketed) – The first name for RSTS. CCL (Concise Command Language) – equivalent to a command to run a program kept in the Command Line Interpreter. CIL (Core Image Library) – A container file format used to hold one or more standalone (bootable) programs and operating systems, such as RSTS through version 6A. CILUS (Core Image Library Update and Save) – DOS-11 program to manipulate a CIL file. CLI (Command Line Interpreter) – See Command-line interface. CUSPs (Commonly Used System Programs) – System management applications like Task Manager or Registry Editor on Microsoft Windows. On RSTS-11, CUSPs were written in BASIC-Plus just like user programs. DCL (Digital Command Language) – See DIGITAL Command Language. DTR (DATATRIEVE) – programming language FIP (File Information Processing) – resident area for issuing file requests FIRQB (File Information Request Queue Block) – A data structure containing information about file requests. KBM (Keyboard Monitor) – Analogous to Command Line Interpreter. LAT (Local Area Transport) – Digital's predecessor to TCP/IP MFD (Master File Directory) – Root directory of file system. PBS (Print Batch Services) PIP (Peripheral Interchange Program) PPN (Project Programmer Number) – Analogous to GID and UID in Unix. RDC (Remote Diagnostics Console) – A replacement front panel for a PDP-11 which used a serial connection to the console terminal or a modem instead of lights and toggle switches to control the CPU. RSTS-11 (Resource Sharing Time Sharing System) – The first commercial product name for RSTS RSTS/E (Resource Sharing Timesharing System Extended) – The current implementation of RSTS. RTS (Run Time System) – Read only segment of code provided by the supplier which would be mapped into the high end of a 32K, 16-bit word address space that a user program would use to interface with the operating system. Only one copy of an RTS would be loaded into RAM, but would be mapped into the address space of any user program that required it. In essence, shared, re-entrant code, to reduce RAM requirements, by sharing the code between any programs that required it. RTSS (Resource Time Sharing System – never marketed) – The second name for RSTS SATT (Storage Allocation Truth Table) a series of 512KB blocks on every disk that indicated if the block, or cluster, on the whole disk was allocated on the disk. Bitwise, a 1 indicated a cluster was in use; a 0 indicated it was not in use. SIL (Save Image Library) – The OS container file format after the RSTS system generation procedure was switched from one using DOS-11 to one running natively on RSTS/E, called that by analogy to the CIL it replaced. SILUS (Save Image Library Update and Save) – The program to create SIL files, called that by analogy to the (unrelated) DOS-11 CILUS program it replaced. UFD (User File Directory) – A user's home directory. Root directory of a file system. XRB (Transfer Request Block) – A data structure containing information about other types of system requests that do not use FIRQBs to convey the information
Development
1970s The kernel of RSTS was programmed in the assembly language MACRO-11, compiled and installed to a disk using the CILUS program, running on a DOS-11 operating system. RSTS booted into an extended version of the BASIC programming language which DEC called "BASIC-PLUS". All of the system software CUSPS for the operating system, including the programs for resource accounting, login, logout, and managing the system, were written in BASIC-PLUS. From 1970 to 1973, RSTS ran in only 56K bytes of magnetic core memory (64 kilobytes including the memory-mapped I/O space). This would allow a system to have up to 16 terminals with a maximum of 17 jobs. The maximum program size was 16K bytes.Dick, P: "The History of RSTS: An Addendum", page 25. "The VAX/RSTS Professional Magazine" February 1, 1984, Vol 6, No 1, ISSN 0746-1909 By the end of 1973 DEC estimated there were 150 licensed systems running RSTS.Dick, P.: "The History of RSTS", pp. 24–26. "The RSTS Professional Magazine" June 1, 1983, Vol 5, No 3, ISSN 0745-2888
In 1973, memory management support was included in RSTS (now RSTS/E) for the newer DEC PDP-11/40 and PDP-11/45 minicomputers (the PDP-11/20 was only supported under RSTS-11). The introduction of memory management in the newer PDP-11 computers not only meant these machines were able to address four times the amount of memory (18-bit addressing, 256K bytes), it also paved the way for the developers to separate user mode processes from the core of the kernel.
In 1975, memory management support was again updated for the newer 22-bit addressable PDP-11/70. RSTS systems could now be expanded to use as much as two megabytes of memory running up to 63 jobs. The RTS and CCL concepts were introduced although they had to be compiled in during "SYSGEN". Multi-terminal service was introduced which would allow a single job the ability to control multiple terminals (128 total). Large-message send/receive and interprocess communication became very sophisticated and efficient. By August there are 1,200 licensed systems.
In 1977, the installation process for RSTS was no longer dependent on DOS-11. The RSTS kernel could now be compiled under the RT-11 RTS, formatted as a kernel file with RT-11 SILUS, and copied to the system or other disks, while the computer was time-sharing. The BASIC-PLUS RTS (as well as RT-11, RSX-11, TECO and third party RTSs) all ran as user mode processes, independent of the RSTS kernel. A systems manager could now decide during the bootstrap phase which RTS to run as the systems default Keyboard Monitor (KBM). By now, there were some 3,100 licensed systems.
In 1978, the final memory management update was included for all machines that could support 22-bit addressing. RSTS could now use the maximum amount of memory available to a PDP-11 (4 megabytes). Support was also included for SUPERVISORY mode which made RSTS the first DEC operating system with this capability. DECnet was also supported as well as remote diagnostics from field service technicians at the RDC in Colorado Springs, Colorado (a DEC subscription service). By the end of the decade, there are over 5,000 licensed systems.
1980s In 1981, support for separate instruction and data space for users with Unibus machines (PDP-11/44, PDP-11/45, PDP-11/55 and PDP-11/70) provided an extension to the memory constraints of an individual program. Compiling programs to use separate instruction and data space would soon give a program up to 64 KB for instructions, and up to 64 KB for buffering data. The DCL RTS was included as well as support for the newer revision of DECnet III.
By 1983, with an estimated 15,000 DEC machines running RSTS/E, V8.0-06 included support for the smallest 18-bit PDP-11 sold by DEC (the MicroPDP-11). A pre-generated kernel and CUSPS were included in this distribution to make installation on the MicroPDP-11 easier. DEC sold the pre-generated version on the MicroPDP-11 as MicroRSTS at a reduced price, however users needed to purchase the full version if they had a need to generate their own kernel. The file system was upgraded and given the designation RSTS Directory Structure 1 (RDS1).Mayfield, M: "RSTS/E Monitor Internals", pages 1–9. All previous versions of the RSTS file system are given the designation RDS0.Mayfield, M.: "RSTS/E Monitor Internals", pages 1–4. The newer file system was designed to support more than 1700 user accounts.Marbach, C.: "RSTS and the Micro-11", p. 50. "The VAX/RSTS Professional Magazine" August 1, 1983, Vol 5, No 4, ISSN 0745-2888 "It is now thought that there are well over 10,000 licensed users and at least an equal number of unlicensed users!".
From 1985 to 1989, RSTS became a mature product in the Version 9 revisions. DCL was installed as the primary RTS and the file system was again upgraded (now RDS1.2) to support new user account features. Passwords were encrypted using a modified DES algorithm instead of limited to six (6) characters stored in DEC Radix-50 format. Before Version 9, there was a non-user system account in the project (group) zero (the designation is [0,1]), and all accounts in project number 1 were privileged (not unlike the root account on Unix systems). With the release of Version 9, additional accounts could be created for project zero, and multiple privileges could be individually set for any account. Support for the LAT protocol was included, as well as the ability to run the newest version of DECnet IV. These network enhancements give any user connected to a terminal through a DECserver the ability to communicate with a RSTS machine, just as easily as with a VAX running VMS. The DCL command structure between DEC operating systems also contributed to the familiar look and feel:
This is not just another pseudo command file processor; it is based on VMS features. The DCL command file processor is fully supported and integrated in RSTS through extensive changes to DCL and the monitor. DCL executes command files as part of your job; therefore, no pseudo keyboard or forcing of commands to your keyboard is necessary (as with ATPK).Romanello, G.: "A Preview of RSTS/E Version 9.0", p. 28. "The VAX/RSTS Professional Magazine" December 1, 1984, Vol 6, No 6, ISSN 0746-1909
1990s In 1994, DEC sold most of its PDP-11 software business to Mentec. Digital continued to support its own PDP-11 customers for a short period after with the assistance of Mentec staff.
In 1997, Digital and Mentec granted anyone wishing to use RSTS 9.6 or earlier for non-commercial, hobby purposes no-cost license. The license is only valid on the SIMH PDP-11 emulator. The license also covers some other Digital operating systems. Copies of the license are included in an authorized software kit available for download on the official website of the SIMH emulator.See for example this image of RSTS/E 7.0 installation tapes: http://simh.trailing-edge.com/kits/rstsv7gen.tar.Z
Documentation The standard complement of documentation manuals that accompanies a RSTS distribution consists of at least 11 large three-ring binders (collectively known as "The orange wall"), one small three-ring binder containing the RSTS/E Quick Reference Guide and a paperback copy of Introduction to BASIC AA-0155B-TK. Each of the 11 three-ring binders contains:
Volume 1: General Information and Installation Documentation Directory Release Notes Maintenance Notebook System Installation and Update Guide
Volume 2: System Management System Manager's Guide
Volume 3: System Usage System User's Guide Guide to Writing Command Procedures
Volume 4: Utilities Utilities Reference Manual Introduction to the EDT Editor SORT/MERGE User's Guide RUNOFF User's Guide
Volume 4A: Utilities EDT Editor Manual
Volume 4B: Utilities Task Builder Reference Manual Programmer's Utilities Manual RT11 Utilities Manual TECO User's Guide
Volume 5: BASIC-PLUS BASIC-PLUS Language Manual
Volume 6: System Programming Programming Manual
Volume 7: MACRO Programming System Directives Manual