Jump to content

RT-11

From Alfawiki
RT-11
Company typeOperating system
IndustryComputer software
PredecessorNone
Founded1970
FounderDigital Equipment Corporation
Headquarters
Maynard
,
United States
ProductsRT-11 real-time operating system
OwnerDigital Equipment Corporation

RT-11 (short for Real-time 11) is a now-obsolete, entry-level, single-user real-time operating system designed specifically for the entire range of Digital Equipment Corporation PDP-11 16-bit machines. Introduced in 1970, RT-11 became a popular choice for applications in real-time computing, process control, and data acquisition on PDP-11 hardware, as well as serving economical general-purpose computing needs.

Source code

The RT-11 operating system was developed using assembly language, taking advantage of the conditional assembly and macro features provided by the MACRO-11 assembler. This approach allowed for significant customization and the definition of higher-level instructions beyond raw machine code. The OS package included source files for both the core system and device drivers (with comments removed) alongside a "SYSGEN" tool designed to generate tailored OS configurations. Comprehensive developer documentation featured a fully annotated kernel source listing.

Device drivers

RT-11 accommodated loadable device drivers,[1][2] although prior to version 4.0 the driver managing the boot device was integrated directly into the kernel. Given RT-11’s emphasis on device management and data acquisition, it was common for programmers to develop or improve drivers. Digital Equipment Corporation encouraged third-party contributions by providing thorough documentation of hardware components and system internals, supporting external vendors, and promoting collaboration through the Digital Equipment Computer Users Society.

Multitasking

While RT-11 did not offer preemptive multitasking capabilities, it enabled running several applications concurrently. Every monitor variant incorporated a background job, whereas FB, XM, and ZM monitors added a foreground job plus up to six system jobs selectable via SYSGEN. These jobs operated with fixed priority levels—foreground jobs held the highest priority while background jobs were lowest. Users could switch among these tasks using the system console interface. Additionally, SYSGEN allowed creation of monitors limited to a single background job (SB, XB, ZB variants). Typically, the background job functioned as the user’s command-line interpreter, with foreground jobs handling automated processes.

Human interface

Interaction with RT-11 was primarily conducted through printing or video terminals initially connected via current-loop or RS-232 interfaces; subsequent versions extended support to RS-422 and DEC’s VT11 and VS60 graphical terminals. Among third-party options, the Tektronix 4010 series graphics terminal gained notable popularity.

The Keyboard Monitor (KMON) processed user commands and launched utilities through a Command String Interpreter (CSI). The structure of RT-11’s command language influenced later DOS systems, featuring commands and device identifiers with strict syntax rules. Unlike Unix-style dashes (-), command options were specified using slashes (/), and commands existed in both full-length and abbreviated forms (e.g., RENAME shortened to REN).

Batch files (.BAT) allowed execution of commands sequentially with basic control structures; later additions introduced .COM files for linear command execution without flow control. The Indirect Command File Processor (IND) enabled more sophisticated command processing via .CMD files.

RT-11 supported executable “save files” (.SAV) that contained memory snapshots capable of being reloaded and executed later, facilitating persistent sessions.

Core KMON commands included SAVE, GET, START, REENTER, EXAMINE, and DEPOSIT. Several commands such as DIR, COPY, RENAME, ASSIGN, CLS, DELETE, TYPE, and HELP were later adopted by DOS systems. The FORMAT command performed physical disk formatting but required INIT to establish file systems.

Device names followed the pattern 'dd{n}:' where 'dd' represented a two-letter device identifier and 'n' an optional unit number ranging from 0 to 7; if omitted, zero was assumed. Examples include TT: for console terminal, LP: for line printer, and DX0: for disk volume zero. Logical device names consisting of one to three alphanumeric characters could be mapped to physical devices using ASSIGN (for instance, ASSIGN DL0 ABC maps ABC: to DL0:). Reserved logical names included DK: as the default device and SY: denoting the system boot device.

In later RT-11 releases, support expanded to accommodate up to 64 units (numbered 0–77 octal) for DU and LD devices by employing a 'dnn:' naming convention ('D' indicating DU devices; 'L' representing LD devices), selectable through SYSGEN configuration.

Software

RT-11 provided a suite of disk management utilities including DIR, DUP, PIP, and FORMAT. For editing, it featured tools such as TECO, EDIT, along with visual editors like KED designed for DEC VT100 terminals and K52 for DEC VT52 devices. The development environment included utilities like MACRO, LINK, and LIBR to facilitate executable creation, while debugging was supported by tools such as ODT, VDT, and the SD device. Document preparation was handled by DEC's version of Runoff, and file transfers over modems were enabled through VTCOM.

In addition to supporting numerous personal computing functions, RT-11 offered productivity applications including the LEX-11 word processor and a Saturn Software spreadsheet, initially developed for other PDP-11 operating systems. The Digital Equipment Computer Users Society provided a wealth of freely available user-contributed software, including a C compiler. Although assembly language development tools were bundled with the system, DEC marketed additional programming languages like C, Fortran, Pascal, and various iterations of BASIC as commercial layered products. Furthermore, third-party vendors supplied alternative programming languages. Networking capabilities for RT-11 systems were achievable using protocols such as DECNET, the Internet, and other third-party solutions.

Distributions and minimal system configuration

RT-11 was capable of booting from two 8-inch 250KB floppy disk drives within a 56KB memory environment, supporting up to eight connected terminals. Alternative boot options included the removable 2.5MB RK05 hard disk or magnetic tape devices. Distributions were available either pre-installed or delivered on punched tape, magnetic tape, TU58 cartridge tape, or floppy disks. A minimal real-time single-user configuration could operate from a single floppy disk with only 16KB of RAM by swapping out the keyboard interface during program execution. The system accommodated peripherals such as a real-time clock, printing terminals, VT11 vector graphics display, a 16-channel 100 kHz analog-to-digital converter with two digital-to-analog channels, serial ports running at 9600 baud, and 16-bit bidirectional interface boards.

File system

RT-11 utilized a straightforward yet efficient file system that employed six-character filenames accompanied by three-character extensions (6.3 format), encoded using the RADIX-50 scheme which compressed nine characters into three 16-bit words (six bytes). Permissible characters included uppercase letters 'A' through 'Z' (automatically capitalized), digits '0' through '9', as well as the symbols '$', '%', and '*'. Filenames could be preceded by a device name—also encoded in RADIX-50—to specify storage on a non-default device.

Files were stored in contiguous blocks consisting of sequential 512-byte sectors on disk, allowing for rapid data access during read and write operations. Over time, however, creating and deleting files caused fragmentation of free space, which restricted the ability to create large files. To address this issue, users periodically ran the “squeeze” command to defragment and consolidate free space on the disk.

Each storage volume maintained a single directory located at its beginning, composed of an array of entries representing either existing files or unallocated space segments. Every directory entry occupied eight or more 16-bit words and could include additional application-specific data fields.

Compatibility with other DEC operating systems

A wide range of RT-11 applications that did not rely on specialized hardware could execute directly through the RT=11 RTS (Run-time system) on the RSTS/E timesharing platform or within RTEM (RT Emulator) environments on RSX-11 and VMS. The implementation of DCL on RT-11 improved interoperability among DEC operating systems by standardizing common commands and options despite each OS’s unique features.

Other PDP-11 Operating Systems

DEC also offered RSX-11M, a multitasking, multiuser operating system designed with real-time functionality, alongside RSTS/E, which provided multiuser time-sharing capabilities. Despite these options, RT-11 remained the favored choice for data acquisition tasks requiring immediate response due to its compact size and efficient real-time operation. Although Unix grew in popularity, it did not match RT-11’s real-time responsiveness or its minimal resource demands.

Hardware

RT-11 was compatible with every DEC PDP-11 model, including those utilizing either the Q-Bus or Unibus architectures, as well as DEC’s Professional Series and PDT-11 terminals. Its support extended to PDP-11 successors produced by third-party manufacturers, such as the M100 series, and to reverse-engineered clones like the Soviet DVK, thereby broadening its hardware reach.

Peripherals

Integration with devices like the CalComp plotter generally involved straightforward file transfers without necessitating a complete SYSGEN procedure, simplifying the process of connecting peripheral hardware.

Fuzzball

The routing software known as Fuzzball was capable of executing RT-11 applications, enhancing RT-11’s applicability within networked environments.

SHAREplus

HAMMONDsoftware developed RT-11-compatible platforms including STAReleven—a multi-computer system—and SHAREplus, a multi-user and multi-process variant of RT-11 influenced by VAX/VMS. SHAREplus depended on RT-11 device drivers and enabled seamless device access across networks comprising PDP-11 and VAX/VMS systems, though it offered limited compatibility with RSX-11 applications. Its primary user base was located in Europe.

TSX-11

TSX-11, created by S&H Computing, provided a multi-user, multi-processing extension to RT-11. It required an initial boot into RT-11 before TSX-Plus assumed control of the system. TSX-Plus introduced features such as memory protection, user account management with isolated disk spaces, and expanded RT-11 EMT calls.

Founded by Harry Sanders to overcome the single-user constraints of PDP-11 systems, TSX initially supported four concurrent users when released in 1976.[3] TSX-Plus followed in 1980.[3] The software gained widespread adoption during the 1980s, running most RT-11 programs without modification and reusing numerous RT-11 utilities. Device drivers typically required only minor alterations.

Depending on the PDP-11 variant and available memory, TSX-Plus accommodated between 12 and 18 simultaneous users—for example, supporting up to 18 users on a 2MB 11/73 system.[3] The final version of TSX-Plus incorporated TCP/IP support, enhancing its networking functionality.

Variants

Several versions were available offering different levels of multitasking capabilities, memory sizes, and separate Instruction & Data (I & D) address spaces:

Unmapped Memory

  • RT-11SJ (Single Job) permitted only one active task; this was the original release.
  • RT-11BL (Base-line) represented a minimal SJ edition with reduced memory footprint and no optional extras.
  • RT-11FB (Foreground/Background) enabled two concurrent tasks: a high-priority non-interactive "Foreground" job alongside a lower-priority interactive "Background" job.

Memory Mapping

  • RT-11XB operates as a single-task system without separate Instruction and Data spaces.
  • RT-11XM (eXtended Memory) builds upon the FB version, enabling support for memory beyond 64 KB on minicomputers equipped with memory management units; it allowed up to eight simultaneous tasks and was available from approximately 1975.
  • RT-11ZB supports a single job with distinct Instruction and Data space separation.
  • RT-11ZM provided separate Instruction and Data memory areas on various PDP-11 models utilizing Unibus and Q-Bus architectures; it supported up to eight concurrent tasks.

Specialized Variants

A number of RT-11-based PDP-11 systems were customized to serve specific industry needs:

  • LAB-11 incorporated an LPS-11 analog interface designed for laboratory data acquisition.
  • PEAK-11 was optimized for gas chromatograph applications, running data collection as the foreground process while allowing user analysis to execute in the background under RT-11.
  • GT4x series integrated VT11 vector graphics hardware, gaining popularity through demonstrations such as Lunar Lander and a variant of Spacewar!.
  • GT62 models included VS60 vector graphics peripherals compatible with VT11, installed within credenza-style cabinets.
  • GAMMA-11 merged RT-11 with a PDP 11/34 to create a comprehensive Nuclear Medicine platform featuring high-speed analog-to-digital converters, 16-bit color graphical displays, and a broad suite of software for gamma camera data acquisition, processing, and visualization.

Soviet RT-11 Derivatives

Multiple RT-11-inspired operating systems were developed in the USSR, tailored for various Soviet computing platforms:

  • RAFOS (РАФОС) – designed for SM EVM
  • FOBOS (ФОБОС) – intended for Elektronika 60
  • FODOS (ФОДОС)
  • RUDOS (РУДОС)
  • OS DVK (ОС ДВК) – for DVK machines
  • OS BK-11 (ОС БК-11) – targeting Elektronika BK systems
  • MASTER-11 (МАСТЕР-11) – also designed for DVK
  • NEMIGA OS (НЕМИГА) – developed for Nemiga PK 588

See also

External links

  1. ↑ Lua error in Module:Citation/CS1/Configuration at line 2123: attempt to index field '?' (a nil value).
  2. ↑ Lua error in Module:Citation/CS1/Configuration at line 2123: attempt to index field '?' (a nil value).
  3. ↑ 3.0 3.1 3.2 Cite error: Invalid <ref> tag; no text was provided for refs named TSX32.DCLdialog