Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
RT-11
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Real-time operating system}} {{Infobox OS | name = RT-11 | logo = | screenshot = | caption = Directory listing using DIR utility under RT-11 running on a [[UKNC]] school computer | developer = [[Digital Equipment Corporation]] and Mentec Inc. | source_model = [[Closed source]] | kernel_type = [[Monolithic kernel|Monolithic]] | supported_platforms = [[PDP-11]] family and clones | ui = Keyboard Monitor (KMON) [[Command-line interface]] | released = {{Start date and age|1973}}{{Citation needed|date=March 2022}} | latest_release_version = 5.7 | latest_release_date = {{Start date and age|1998|10}}<ref>{{cite web| url=http://www.oshistory.net/metadot/index.pl?id=2526;isa=Category;op=show| archive-url=https://web.archive.org/web/20070928022401/http://www.oshistory.net/metadot/index.pl?id=2526;isa=Category;op=show| title=RT-11 - Release history| website=www.oshistory.net |archive-date=28 September 2007| access-date=18 March 2022}}</ref> | marketing_target = Laboratory, scientific, industrial equipment | programmed_in = [[MACRO-11]] | prog_language = [[APL (programming language)|APL]], [[ALGOL]], [[BASIC]], [[BASIC-PLUS]], [[C (programming language)|C]], [[DIGITAL Command Language|DCL]], [[FOCAL (programming language)|Focal]], [[Fortran]], [[MACRO-11]], [[Pascal (programming language)|Pascal]], [[TECO (text editor)|TECO]] | language = English | updatemodel = | package_manager = | working_state = Discontinued | license = [[Proprietary software|Proprietary]] | website = }} '''RT-11''' ('''Real-time 11''') is a discontinued small, low-end,<ref name=RT11.HC82Decem>{{cite magazine |last=Campbell |first=Milton |date=December 1982 |title=The RT-11 Perspective |magazine=[[Hardcopy (magazine)|Hardcopy]]}}</ref> single-user [[real-time operating system]] for the full line of [[Digital Equipment Corporation]] [[PDP-11]] [[16-bit computing|16-bit]] computers. RT-11 was first implemented in 1970. It was widely used for [[real-time computing]] systems, [[process control]], and [[data acquisition]] across all PDP-11s. It was also used for low-cost general-use computing.<ref name=RT11.HC82Decem/> ==Features== ===Source 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 (operating system)|kernel]] listing that included comments. ===Device drivers=== In RT-11, [[device driver]]s<ref>{{cite news |newspaper=[[Computerworld]] |title=DEC RP02/RP03 device drivers included |date=July 20, 1981 |page=58}}</ref><ref>{{cite news |newspaper=[[Computerworld]] |title=3Com software drivers |date=October 26, 1981 |page=51}}</ref> were loadable, except that prior to V4.0 the device driver for the system device (boot device) was built into the kernel at configuration time. 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 [[DECUS|Digital Equipment Computer Users Society]]. ===Multitasking=== RT-11 systems did not support [[Computer multitasking|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'', and six ''system jobs'' if selected via the SYSGEN [[system generation]] program. These tasks had fixed [[Scheduling (computing)|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).<ref name="RT11.HC82Decem" /> The terms ''foreground'' and ''background'' are counterintuitive; the background job was typically the user's [[Command-line interface|command-line interpreter]]; a foreground job might be doing something like non-interactive data collection. ===Human interface=== [[File:RT-11 help.jpg|thumb|The end of the {{mono|HELP}} command output from [[:en:RT-11|RT-11SJ]] displayed on a [[:en:VT100|VT100]].]] Users generally operated RT-11 via a [[Teleprinter|printing terminal]] or a [[Computer terminal|video terminal]], originally via a strap-selectable current-loop (for conventional teletypes) or via an [[RS-232]] (later [[EIA-422|RS-422]] as well) interface on one of the CPU cards; DEC also supported the VT11 and VS60 graphics display devices ([[vector graphics]] [[Computer display|terminal]]s 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 the [[DOS]] line of operating systems which heavily borrowed from RT-11. The CSI form expected input and output [[filename]]s and [[Command-line argument|options]] ('switches' on RT-11) in a precise order and syntax. The command-line switches were separated by a slash (<code>/</code>) rather than the dash (<code>-</code>) used in [[Unix-like]] operating systems. All commands had a full form and a short one to which they could be contracted. For example, the RENAME command could be contracted to [[ren (command)|REN]]. Batch files and the batch processor could be used to issue a series of commands with some rudimentary [[control flow]]. Batch files had the [[filename extension|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 a sort of executable. They were known as "save 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, allowing any session to be saved. The SAVE command, along with GET, [[start (command)|START]], REENTER, EXAMINE and DEPOSIT were basic commands implemented in the KMON. Some commands and utilities were later borrowed in the [[DOS]] line of operating systems. These commands include [[dir (command)|DIR]], [[copy (command)|COPY]], [[ren (command)|RENAME]], [[assign (command)|ASSIGN]], [[cls (command)|CLS]], [[del (command)|DELETE]], [[TYPE (DOS command)|TYPE]], [[help (command)|HELP]] and others. The [[format (command)|FORMAT]] command was used for physical disk formatting, although it was not capable of creating file system, for which purpose the INIT command was used (analogue of DOS command FORMAT /Q). Most commands supported using [[Wildcard character|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 was omitted, unit 0 was 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 <code>ASSIGN</code> command. For example, one might issue <code>ASSIGN DL0 ABC</code> 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). ===Software=== RT-11 was distributed with utilities for performing many actions. The utilities ''[[dir (command)|DIR]]'', ''DUP'', ''[[Peripheral Interchange Program|PIP]]'' and ''[[format (command)|FORMAT]]'' were for managing disk volumes. [[TECO (text editor)|TECO]], ''EDIT'', and the [[visual editor]]s ''KED'' (for the DEC [[VT100]]) and ''K52'' (for the DEC [[VT52]]) were used to create and edit source and data files. ''MACRO'', ''LINK'', and ''LIBR'' were for building executables. [[Octal Debugging Technique|ODT]], ''VDT'' and the SD device were used to debug programs. DEC's version of [[Runoff (program)|Runoff]]<ref>{{cite news |newspaper=[[Computerworld]] |title=Runoff polishes text on RSTS/E, RT-11 |date=September 25, 1978 |page=35}}</ref> was for producing documents. Finally, VTCOM was used to connect with and use (or transfer files to and from) another computer system over the phone via a modem. The system was complete enough to handle many modern personal computing tasks. Productivity software such as LEX-11, a word processing package, and a spreadsheet from Saturn Software, used under other PDP-11 operating systems, also ran on RT-11.<ref>{{cite news |newspaper=[[Computerworld]] |title=LEX-11 on all DEC operating systems |date=April 20, 1981 |page=59}}</ref> Large amounts of free, user-contributed software for RT-11 were available from the [[DECUS|Digital Equipment Computer Users Society (DECUS)]] including an implementation of [[C (programming language)|C]]. Although the tools to develop and debug assembly-language programs were provided, other languages including C, [[Fortran]], [[Pascal (programming language)|Pascal]],<ref>{{cite news |newspaper=[[Computerworld]] |title=PASCAL on RT-11 |date=March 10, 1980 |page=102}}</ref> 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 protocol suite|Internet]] and protocols developed by other, third-party sources. ===Distributions and minimal system configuration=== The RT-11 operating system could be booted from, and perform useful work on, a machine consisting of two 8-inch 250KB [[floppy disk]]s and 56KB of memory, and could support 8 terminals. Other boot options include the [[RK05]] 2.5MB removable hard disk platter, or [[magnetic tape]]. Distributions were available pre-installed or on [[punched tape]], magnetic tape, [[TU58|cartridge tape]], or floppy disk. A minimal but complete system supporting a single real-time user could run on a single floppy disk and in 8K 16-bit words (16KB) of RAM, including user programs. This was facilitated by support for swapping and overlaying. To realize operation on such small memory system, the keyboard command user interface would be swapped out during the execution of a user's program and then swapped into memory upon program termination. 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 six-character filenames with three-character extensions (6.3) encoded in [[DEC RADIX 50|RADIX-50]], which packed those nine characters into only three 16-bit words (six bytes). This resulted in allowable filename characters being 'A'-'Z', 'a'-'z' forced to upper case, '0'-'9', '$', '%', '*'. Filenames could be prefixed by a device name to specify a device different to the default DK: device, also encoded in RADIX-50. 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 blocks would likely [[File system fragmentation#Free space fragmentation|not remain contiguous]], which could become the limiting factor in creating large files; the remedy was to periodically “squeeze” (or "squish") a disk to consolidate the unused portions.<ref>{{cite web |website=BitSavers |url=http://bitsavers.trailing-edge.com/pdf/dec/pdp11/rt11/v5.6_Aug91/AA-5284H-TC_RT-11_System_Message_Manual_Aug91.pdf |title=RT-11 System Message Manual |quote=Compress the volume by using the monitor SQUEEZE command}}</ref><ref>{{cite web |url=https://gordonbell.azurewebsites.net/Digital/RT-11%20System%20Users%20Guide%201977.pdf |title=RT-11 System Users Guide 1977 |quote=The SQUEEZE command consolidates in a single area all unused ...}}</ref> Each volume has only one directory which was preallocated at the beginning of the volume. The directory consists of an array of entries, one per file or unallocated space. Each directory entry is 8 (or more) 16-bit words, though a sysgen option allowed extra application-specific storage.<ref>{{cite web |url=http://cryptosmith.com/2013/10/19/digitals-rt-11-file-system |title=Digital's RT-11 File System |date=20 October 2013 |access-date=January 1, 2015}}</ref> ===Compatibility with other DEC operating systems=== Many RT-11 programs (those that did not need specialized peripherals or direct access to the hardware) could be directly executed using the RT=11 RTS ([[Run-time system]]) of the [[RSTS/E]] timesharing system or under RTEM (RT Emulator) on various releases of both RSX-11 and [[OpenVMS|VMS]]. The implementation of [[DIGITAL Command Language|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-11M]], a multiuser, multitasking operating system with realtime features, and [[RSTS/E]] (originally named 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. 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 (E.g., the [[Mentec PDP-11|M100 and family from Mentec]]), or as reverse-engineered clones in other countries (E.g., the [[DVK]] from the Soviet Union), RT-11 runs on these machines as well. ==Peripherals== Adding driver support for peripherals such as a [[CalComp plotter]],<ref>[[Google Scholar]] {{cite journal |title=Graphics software and hardware for RT-11 systems |author1=W. L. Palya |author2=B. Brown |journal=Behavior Research Methods & Instrumentation |year=1981|volume=13 |issue=2 |pages=255–261 |doi=10.3758/BF03207944 |doi-access=free }}</ref> typically involved copying files, and did not require a SYSGEN.<ref name=RT11.HC82Decem/> ==Compatible operating systems== ===Fuzzball=== [[Fuzzball router|Fuzzball]], routing software for [[Internet Protocol]]s, was capable of running RT-11 programs.<ref>{{cite journal | author = Mills, D. L. | title = The Fuzzball | journal = ACM SIGCOMM Computer Communication Review | year = 1988 | volume = 18 | issue = 4 | pages = 115–122 | doi = 10.1145/52325.52337 | url = http://www.eecis.udel.edu/~mills/database/papers/fuzz.pdf | access-date = 2009-05-06 }}</ref> ===SHAREplus=== HAMMONDsoftware distributed a number of RT-11 compatible operating systems including STAReleven, an early multi-computer system and SHAREplus, a multi-process/multi-user implementation of RT-11 which borrowed some architectural concepts from the [[OpenVMS|VAX/VMS]] operating system. RT-11 device drivers were required for operation. Transparent device access to other PDP-11s and VAX/VMS were supported with a network option. Limited [[RSX-11]] application compatibility was also available. SHAREplus had its strongest user base in Europe. ===TSX-11=== '''TSX-11''',<ref>{{cite magazine |magazine=Hardcopy (magazine) |title=The RT-11 Perspective |date=January 1985 |page=125 |author=Milton Campbell}}</ref> developed by S&H Computing, was 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. S&H wrote the original TSX because "Spending $25K on a computer that could only support one user bugged [founder Harry Sanders]"; the outcome was the initial four-user TSX in 1976.<ref name=TSX32.DCLdialog/> TSX-Plus (released in 1980) was the successor to TSX, released in 1976.<ref name=TSX32.DCLdialog/> The system was popular in the 1980s. 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. Depending on which PDP-11 model and the amount of memory, the system could support a minimum of 12 users<ref name=TSX32.DCLdialog>{{cite news |newspaper=[[Computerworld]] |title=S&H TSX-Plus on 11/23, 11/34 |quote= efficient, general-purpose timesharing for up to 20 users on 11/23 and 11/34 based ... |date=December 1, 1980 |page=67}}</ref> (14-18 users on a 2Mb 11/73, depending on workload).<ref>{{cite magazine |magazine=Hardcopy (magazine) |date=October 1982 |page=9 |title=TSX-Plus: Time Share RT-11}}</ref> The last version of TSX-Plus had [[Internet protocol suite|TCP/IP]] support. ==Versions== ===Variants=== Users could choose from variants with differing levels of support for [[Computer multitasking|multitasking]], memory size, and separate I & D (Instruction and Data) address space: ====Unmapped memory==== * '''RT-11SJ''' (Single Job) allowed only one task. This was the initial distribution. * '''RT-11BL''' (Base-line) a stripped down version of SJ that has minimal memory residency and lacks optional features.<ref>{{cite book |author=<!--Staff writer(s); no by-line.--> |url=https://archive.org/details/bitsavers_decpdp11rtATCRT11V4.0InstallationManualMar81_19001358 |title=RT-11 Installation and System Generation Guide |date=March 1980 |publisher=Digital Equipment Corporation |isbn= |location=Maynard, MA |page=1-6}}</ref> * '''RT-11FB''' (Foreground/Background) supported two tasks: a high-priority, non-interactive "Foreground" job, and a low-priority, interactive "Background" job.<ref name=RT11.HC82Decem/> ====Mapped memory==== * '''RT-11XB''' single job, does not support I & D separation.<ref name=RT_install>{{cite book |author=<!--Staff writer(s); no by-line.--> |date=August 1991 |title=RT-11 Installation Guide |url=http://www.bitsavers.org/pdf/dec/pdp11/rt11/v5.6_Aug91/AA-H376F-TC_RT-11_Installation_Guide_Aug91.pdf |location=Maynard, Massachusetts |publisher=Digital Equipment Corporation |pages=1-2,1-3 |isbn=}}</ref> * '''RT-11XM''' (eXtended Memory), a superset of FB,<ref name=RT11.HC82Decem/> provided support for memory beyond 64kb, but required a minicomputer with memory management hardware; distributed from approx. 1975-on. Up to 8 concurrent jobs.<ref name=RT_install /> * '''RT-11ZB''' single job, supports I & D separation.<ref name=RT_install /> * '''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, [[PDP-11/73|73]], 83, and 93.) Up to 8 concurrent jobs.<ref name=RT_install /> ===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 chromatograph]]s (analyzing the peaks produced by the GC); data collection ran in RT-11'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 (1979 video game)|Lunar Lander]] and a version of [[Spacewar!]]. * GT62 systems added a VS60 vector graphics peripheral (VT11-compatible) in a credenza cabinet. * 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=== <!-- Deleted image removed: [[File:osbk11.png|256px|thumb|[[Elektronika BK|BK-0011M]] running OS BK-11 and Inter Commander file manager]] --> Several clones of RT-11 were made in the USSR: * [[RAFOS (operating system)|RAFOS]] (РАФОС) – [[SM EVM]] * [[FOBOS]] (ФОБОС) – [[Elektronika 60]] * [[FODOS]] (ФОДОС) * [[RUDOS]] (РУДОС) * [[OS DVK]] (ОС ДВК) – [[DVK]] * [[OS BK-11]] (ОС БК-11) – [[Elektronika BK]] * [[MASTER-11]] (МАСТЕР-11) – [[DVK]] * NEMIGA OS (НЕМИГА) – Nemiga PK 588 ==See also== * [[TSX-32]] ==References== {{Reflist}} ==External links== * [https://web.archive.org/web/20160303193721/http://www.skrenta.com/pdpbook.txt PDP-11 How-to guide with RT-11 commands reference] * [http://zx-pk.ru/showpost.php?p=782709&postcount=1 RT-11 emulator for Windows console] {{Digital Equipment Corporation}} {{Operating systems for Elektronika BK}} {{Real-time operating systems}} [[Category:DEC operating systems]] [[Category:Real-time operating systems]] [[Category:PDP-11]] [[Category:Assembly language software]] [[Category:Elektronika BK operating systems]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite magazine
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Digital Equipment Corporation
(
edit
)
Template:Infobox OS
(
edit
)
Template:Mono
(
edit
)
Template:Operating systems for Elektronika BK
(
edit
)
Template:Real-time operating systems
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)