RT-11

RT-11

Infobox OS
name = RT-11
logo =


caption = Directory listing using DIR utility under RT-11 running on a UKNC school computer
developer = Digital Equipment Corporation and Mentec Inc.
source_model = Proprietary source, available at extra cost with no rights to distribute
kernel_type = Monolithic kernel
supported_platforms = PDP-11 family and clones
ui = Keyboard Monitor (KMON) Command line interface
family = DEC OS family
latest_release_version = 5.7
latest_release_date = October, 1998 [ [http://www.oshistory.net/metadot/index.pl?id=2526;isa=Category;op=show OS History] ]
marketing_target = Laboratory/Scientific/Real-time industrial equipment
programmed_in = MACRO-11
prog_language = APL, ALGOL, BASIC, BasicPLUS, C, DCL, Focal, Fortran, MACRO-11, Pascal, TECO
language = English
updatemodel =
package_manager =
working_state = Discontinued
license = Proprietary
website =

RT-11 ('RT' for "Real Time") was a small, single-user real-time operating system for the Digital Equipment Corporation PDP-11 family of 16-bit computers. RT-11 was first implemented in 1970 and was widely used for real-time systems, process control, and data acquisition across the full line of PDP-11 computers.

Features

Multitasking

RT-11 systems did not support preemptive multitasking, but most versions could run multiple simultaneous applications. All variants of the monitors provided a "Background Job". The FB, XM and ZM monitors also provided a "Foreground Job", as well as six "System Jobs" if selected via the SYSGEN System Generation program. These tasks had fixed priorities, with the "Background Job" lowest and the "Foreground Job" highest. It was possible to switch between jobs from the system console user interface, and SYSGEN could generate a monitor that provided a single "Background Job" (the SB, XB and ZB variants).

ource code

RT-11 was written in assembly language. Heavy use of the conditional assembly and macro programming features of the MACRO-11 assembler allowed a significant degree of configurability and allowed programmers to specify high-level instructions otherwise unprovided for in machine code. RT-11 distributions included the source code of the operating system and its device drivers with all the comments removed and a program named "SYSGEN" which would build the operating system and drivers according to a user-specified configuration. Developer's documentation included a kernel listing that included comments.

Device drivers

In early versions of RT-11, device drivers were built into the kernel at configuration time, but in later versions the device drivers were loadable. Because RT-11 was commonly used for device control and data acquisition, it was common for developers to write or enhance device drivers. DEC encouraged such driver development by making their hardware subsystems (from bus structure to code) open, documenting the internals of the operating system, encouraging third-party hardware and software vendors, and by fostering the development of the Digital Equipment Computer Users Society.

Human interface

Users generally operated RT-11 via a printing terminal or a video terminal, originally via a strap-selectable current-loop (for conventional teletypes) or RS-232 (later RS-422 as well) interface on one of the CPU cards; DEC also supported the VT11 and VS60 graphics display devices (vector graphics terminals with a graphic character generator for displaying text, and a light pen for graphical input). A third-party favorite was the Tektronix 4010 family.

The Keyboard Monitor (KMON) interpreted commands issued by the user and would invoke various utilities with Command String Interpreter (CSI) forms of the commands. RT-11 command language had many features (such as commands and device names) that can be found later in DOS line of operating systems which heavily borrowed from RT-11. The CSI form expected input and output filenames and options ('switches' on RT-11) in a precise order and syntax. The command-line switches were separated by "/" sign rather than "-" used in Unix-like operating systems. All commands had full form and a short one to which it could be contracted. For example, RENAME command could be contracted to REN.

Batch files and the batch processor could be used to issue a series of commands with some rudimentary flow control. Batch files had the extension .BAT.

In later releases of RT-11, it was possible to invoke a series of commands using a .COM command file, but they would be executed in sequence with no flow control. Even later, it was possible to execute a series of commands with great control through use of the Indirect Command File Processor (IND), which took .CMD control files as input.

Files with the extension .SAV were executables. They were known as "sav files" because the RT-11 SAVE command could be used to save the contents of memory to a disk file which could be loaded and executed at a later time.

The SAVE command, along with GET, START, REENTER, EXAMINE and DEPOSIT are basic commands implemented in the KMON. Some commands and utilities were later borrowed in DOS-line of operating systems. These commands include DIR, COPY, RENAME, ASSIGN, CLS, DELETE, TYPE, HELP and others. FORMAT command was used for physical disk formatting, although it was not capable of creating file system, for which purpose INIT command was used (analogue of DOS command FORMAT /Q). Most commands supported use of wildcards in file names.

Physical device names were specified in the form 'dd{n}:' where 'dd' was a two-character alphabetic device name and the optional 'n' was the unit number (0-7). When the unit number is omitted, unit 0 is assumed. For example, TT: referred to the console terminal, LP: (or LP0:) referred to the parallel line printer, and DX0:, DY1:, DL4: referred to disk volumes (RX01 unit 0, RX02 unit 1, RL01 or RL02 unit 4, respectively). Logical device names consisted of 1-3 alphanumeric characters and were used in the place of a physical device name. This was accomplished using the ASSIGN command. For example, one might issue ASSIGN DL0 ABC which would cause all future references to 'ABC:' to map to 'DL0:'. Reserved logical name DK: referred to the current default device. If a device was not included in a file specification, DK: was assumed. Reserved logical name SY: referred to the system device (the device from which the system had been booted).

Later versions of RT-11 allowed specification of up to 64 units (0-77 octal) for certain devices, but the device name was still limited to three alphanumeric characters. This feature was enabled through a SYSGEN selection, and only applied to the DU and LD device handlers. In these two cases, the device name form became 'dnn:' where 'd' was 'D' for the DU device and 'L' for the LD device, and 'nn' was 00-77(octal).

oftware

RT-11 was distributed with utilities which allowed a user to perform many actions. The utilities "DIR", "DUP", "PIP" and "FORMAT" allowed a user to manage their disk volumes. TECO, "EDIT", and the visual editors "KED" (for the DEC VT100) and "K52" (for the DEC VT52) allowed a user to create and edit source and data files. "MACRO", "LINK", and "LIBR" allowed a user to build their own executables. ODT, "VDT" and the SD device allowed a user to debug programs. DEC's version of Runoff allowed a user to produce documents. Finally, VTCOM allowed a user to connect with and use (or transfer files to and from) another computer system over the phone using a modem.

The system was complete enough to handle many modern personal computing tasks. Large amounts of free, user-contributed software for RT-11 were available from the Digital Equipment Computer Users Society including an implementation of C. Although the tools to develop and debug assembly-language programs were provided, other languages including C, Fortran, Pascal, and several versions of BASIC were available from DEC as "layered products" at extra cost. Versions of these and other programming languages were also available from other, third-party, sources. It is even possible to network RT-11 machines using DECNET, the Internet and protocols developed by other, third-party sources.

Distributions and Minimal system configuration

The RT-11 operating system could be booted from, and actually perform useful work on, a machine consisting of two 8-inch 250kb floppy disks and 64K of memory, and could actually support 4 terminals. Other boot options include a 2.5MB removable hard disk platter (RK-05), or magnetic tape. Distributions were available pre-installed or on punched tape, magnetic tape, cartridge tape, or floppy disk. A minimal but complete system supporting a single real-time user could run on a 5MB hard disk and in 8K 16-bit words (16KB) of RAM, including user programs. The system supported a real-time clock, printing terminal, VT11 vector graphic unit, 16 channel 100 kHz A/D converter with 2 channel D/A, 9600 baud serial port, 16 bit bidirectional boards, etc.

File system

RT-11 implemented a simple and fast file system employing filenames with six characters and three-character extensions ("6.3" vs. the MS-DOS 8.3 filename format) encoded in RADIX-50, which packed those 9 characters into only six bytes (three 16-bit words). All files were contiguous, meaning that each file occupied consecutive blocks (the minimally addressable unit of disk storage, 512 bytes) on the disk. This meant that an entire file could be read (or written) very quickly. A side effect of this file system structure was that as files were created and deleted on a volume over time, the unused disk space became fragmented and a disk would need to be periodically 'squeezed' to consolidate the unused portions. The practice of 'squeezing' a volume continues today under Windows and other operating systems through a process called defragmentation.

Compatibility with other DEC operating systems

Many RT11 programs (those that did not need specialized peripherals or direct access to the hardware) could be directly executed using the RT11 RTS (Run-time system) of the RSTS/E timesharing system or under RTEM (RT Emulator) on various releases of both RSX-11 and VMS.

The implementation of DCL for RT-11 increased its compatibility with the other DEC operating systems. Although each operating system had commands and options which were unique to that operating system, there were a number of commands and command options which were common.

Other PDP-11 Operating systems

DEC also sold RSX-11, a multiuser, multitasking operating system with realtime features, and RSTS-11 a multiuser time-sharing system, but RT-11 remained the operating system of choice for data acquisition systems where real time response was required. The Unix operating system also became popular, but lacked the real-time features and extremely small size of RT-11.

Hardware

RT-11 ran on all members of the DEC PDP-11 family, both Q-Bus- and Unibus-based, from the PDP-11/05 (its first target, in 1970), to the final PDP-11 implementations (PDP-11/93 and /94). In addition, it ran on the Professional Series and the PDT-11 "Programmed Data Terminal" systems, also from DEC. Since the PDP-11 architecture was implemented in replacement products by other companies (Eg, the M100 and family from Mentec), or as reverse-engineered clones in other countries (Eg, the DVK from the Soviet Union), RT-11 runs on these machines as well.

TSX-11 - S&H Computing developed and distributed TSX-Plus, a multi-user, multi-processing implementation of RT-11. The only thing it didn't do was handle the boot process, so any TSX-Plus machine was required to boot RT-11 first before running TSX-Plus as a user program. Once TSX-Plus was running, it would take over complete control of the machine from RT-11. It provided true memory protection for users from other users, provided user accounts and maintained account separation on disk volumes and implemented a superset of the RT-11 EMT programmed requests. RT-11 programs generally ran, unmodified, under TSX-Plus and, in fact, most of the RT-11 utilities were used as-is under TSX-Plus. Device drivers generally required only slight modifications.

Versions

Users could choose from four variants with differing levels of support for multitasking:
* RT-11SJ (Single Job) allowed only one task. This was the initial distribution.
* RT-11FB (Foreground/Background) supported two tasks: a high-priority, non-interactive "Foreground" job, and a low-priority, interactive "Background" job.
* RT-11XM (eXtended Memory) provided support for memory beyond 64kb, but required a minicomputer with memory management hardware; distributed from approx. 1975-on.
* RT-11ZM provided support for systems with Separate Instruction and Data space (such as on the Unibus-based 11/44, 45, 55, 70, 84, and 94 and the Q-Bus-based 11/53, 73, 83, and 93)

Specialized versions

Several specialized PDP-11 systems were sold based on RT-11:

* LAB-11 provided an LPS-11 analog peripheral for the collection of laboratory data
* PEAK-11 provided further customization for use with gas chromatographs (analyzing the peaks produced by the GC); data collection ran in RT11's foreground process while the user's data analysis programs ran in the background.
* GT4x systems added a VT11 vector graphics peripheral. Several very popular demo programs were provided with these systems including Lunar Lander and a version of Spacewar!.
* GAMMA-11 was a packaged RT-11 and PDP 11/34 system that was one of the first fully integrated Nuclear Medicine systems. It included fast analog/digital converters, 16 bit colour graphical displays, and an extensive software library for development of applications for the purpose of data collection, analysis and display from a nuclear medicine gamma camera.

Clones in the USSR

Several clones of RT-11 were made in the USSR:
* RAFOS
* FOBOS
* FODOS
* OS BK-11

Notes

External links

* [http://www.skrenta.com/pdpbook.txt PDP-11 How-to guide with RT-11 commands reference]


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”