RTEM-11 - RT-11 Virtualization in 1982
Contents
History of PDP-11 Virtualization
VAX-11 Computers provide PDP-11 Hardware Compatibility Mode
DEC's first model in the VAX computer family, the VAX-11/780, included the ability to execute PDP-11 object code using its hardware; this feature was called "Compatibility Mode". This special property of VAX computers was retained up to and including the VAX 8600 and the VAX 8650, giving them all the "-11" part in their names, even the VAX 8600 and the VAX 8650, which were named VAX-11/790 resp. VAX-11/795 in the beginning, but got renamed before released.
DEC wanted to provide its large PDP-11 customer base with an easy transition from their proven PDP-11 computers to the new VAX architecture. The idea was: Reuse your old PDP-11 code and learn the benefits of VAX and VMS!
Later on (with the release of VMS V4), DEC offered the VAX-11 RSX software, which added some overall improvements and provided a PDP-11 software emulator for all subsequent VAX models, none of which supported hardware compatibility mode anymore.
Compatibility mode in conjuction with VMS provides a restricted RSX-11M PDP-11 operating system environment allowing for:
- MCR command language interpreter
- RSX-11M program development and Image Execution
- Use of certain RSX-11M tools:
- MACRO-11 (MAC)
- Editor (EDI)
- RSX-11M task builder (TKB)
- RSX-11M librarian (LBR)
- Peripheral interchange program (PIP)
- File transfer utility (FLX)
- Source language input program (SLP)
- File structure verification utility for Files-11 Structure Level 1 (VFY1)
- ZAP utility (ZAP)
- File patch utility (PAT)
- Disk save and compress utility for Files-1l Structure Level 1 (DSC1)
- File dump utility (DMP)
- Bad block locator utility (BAD)
- RMS-11 Utilities
The following RSX-11M system files and libraries are also provided:
- SYSLIB.OLB
- RSXMAC.MLB
- ODT.OBJ
Marginal Note: In all versions 1 of VMS, all VMS basic file utilities (derived from RSX-11M PIP) still ran in PDP-11 compatibility mode; only from VMS V2.0 onwards did these also run in VMS 32 bit native mode. Using proven PDP-11 software allowed the developers to concentrate better on the main innovations of VMS at the beginning.
Experimental Use of VAX-11 Compatibility Mode for PDP-11 UNIX
There even was a successful implementation of most parts of PDP-11 UNIX 7th Edition for educational purpose on a VAX-11/750 using compatibility mode. "Running 7th Edition UNIX programs on a VAX in Compatibility Mode" (published: 1987 ACM SIGOPS Operating Systems Review (SIGOPS), Volume 21, Issue 1, Pages 30–33
VAX-11 RSX Tools and PDP-11 Software Emulator
The introduction of VAX computers without hardware compatibility and some weaknesses in the previous PDP-11 simulation led to the development of VAX-11 RSX.
VAX-11 RSX was intended to improve PDP-11 simulation on VAX computers with hardware compatibility mode and also make it available on newer VAX models without. It replaced all compatibility tools previously integrated into VMS prior to V4, which lost its ability to provide PDP-11 emulation without additional software. To what extent technical and/or strategic considerations led to this approach is left to the reader's imagination ;-))
While the first version of VAX-11 RSX only included some improvements and tools for VAX computers with compatibility mode, the VAX-11 RSX PDP-11 instruction set emulator "CEM$EMULATOR.EXE" for all VAX models without compatibility mode was included in all versions from VAX-11 RSX V2.0 onwards.
VAX-11 RSX enables the RSX-11M emulation to achieve significantly increased compatibility with the real RSX-11M operating system.
The disadvantage of software emulation is that it requires significantly more resources, in particular approximately more than ten times the CPU power of a VAX with hardware compatibility mode is required to achieve comparable results on computers without.
As VAX-11 RSX development progressed, more and more parts of the RSX-11M operating system were modified to perform better in compatibility mode environments; and features from new RSX-11M versions were integrated as well.
AA-CJ39B-TE VAX-11 RSX Installation Guide and Release Notes VAX-11 RSX V2.0 OT.pdf, pdf-page 25: During the installation process, the VAX-11 RSX PDP-11 Instruction Set Emulator save set will be installed on your system disk if your VAX processor does not include hardware or microcode support for compatibility mode. See Section 10 of the VAX-11 RSX Compatibility Mode Reference Manual for more information about the Emulator.
AA-CJ40B-TE VAX-11 RSX Compatibility Mode Reference Manual VAX-11 RSX V2.0 O.pdf, pdf-page 589ff:
RTEM-11 emulates RT-11
The new RTEM-11 emulators for RSX-11 and VMS was introduced in 1982, when VMS V3.x was current. RTEM is an emulator for the single-user RT-11 operating system which boots a modified version of the original system into a virtual processor - a VMS process - from a virtualsystem disk - a VMS file.
It allows for independent multiple RT-11 emulation instances to run at the same time. The number of instances running simultaneously is only limited by the amount of available memory and CPU power, with VMS having a clear advantage due to its virtual main memory management. A single RT-11 emulation consists of its RTEM-11 host process and and its host files providing virtual RT-11 disks.
RTEM-11 on VMS is based on the VAX PDP-11 compatibility mode, whether hardware or software based.
Utility programs exist to move data between the RTEM-11 virtual machine and the VMS host and through it to other environments including actual RT-11 systems. Binary programs created in the emulator are thoroughly compatible with real RT-11 monitors.
Up to VMS V3.7, RTEM-11 runs exclusively on VMS (VAX-11 RSX software did not yet exist; all VAX computers at that time provided hardware compatibility mode). From VMS V4.0 onwards, VAX-11 RSX is required for all computers, too, although the older models with hardware compatibility mode only use the extension tools and not the software emulator of VAX-11 RSX.
RTEM-11 performance depends on hardware compatibility mode and fast disks, so a VAX 8650 with SDI disks running VMS V4 was probably the most potential setup of that time.
RTEM-11 Properties and Versions
What RTEM-11 does not do
- RTEM-11 user programs cannot directly access FILES-11 files. (You have to copy the file in with FIP.)
- There is no access to the I/0 Page.
- RTEM-11 doesn't support downloading of stand-alone RT-11 systems.
- RTEM-11 does not support all RT-11 devices
RTEM-11 Tools
FIP
FIP (File Unterchange Program) runs under RTEM-11 to transfer files between RT-11 and FILES-11 volumes. It performs formatted ASCII, FORTRAN carriage control and Image Mode transformations. It does not allow file deletion operations, directory listings or volume initialization operations.
JOAT
JOAT (Jack-Of-All-Trades) attaches and releases devices from host files and performs some general utility functions. JOAT passes files specification for which FILES-11 files will be used as a virtual device. It can list which files correspond to which virtual devices. It can extend the VSD (Virtual System Device) files when more space is needed and create virtual files. In addition to files handling JOAT passes command lines to the host system and is used to terminate RTEM-11 to return control to the host system.
VMS File Names in VAX-11 RTEM
Long directory and file specifications are not supported by VAX-11 RTEM. Long directory specifications have more than nine characters. Long file specifications have file names longer than nine characters or file extensions longer than three characters. Any attempt to have access to directories or files with long specifications using VAX-11 RTEM fails.
Workaround: Use of "$$n" Logicals
RTEM-11 Devices
- RT-11 format "virtual disks" file on FILES-11 volumes
- Foreign mounted RT-11 format volumes
Virtual System Device
If the virtual system device option is used the system is divided into two parts. A shared portion is called LB:[1,1]RT11SH.DSK (RSX-11 host systems) resp. SYS$LIBRARY:RTllSH.DSK (VMS host systems). It is a read-only file with a read/write mark zone (for SWAP, BAM, IND handlers). This Portion may contain up to 8 directory segments. File storage is variable size. Here reside RTEM-11 Monitor, Handlers, and Utilities, Unused entries are padded as protected "NON-ENTITIES" which occupy directory space, are protected, have zero length, do not appear in directors listings and do not appear as an <EMPTY> to .ENTER or Squeeze. The shared portion is always squeezed with zero free blocks.
The private portion of the virtual system device is in SY:[ppn]RT11PR.DSK (RSX-11 host systems) resp. SYS$LOGIN:RT11PR.DSK (VMS host systems) and is read/write enabled. It contains up to 31 directory segments of which 1-8 are copies from the shared portion. The default creation size of file storage is 494 blocks (this may be changed by the system manager). Unused file storage space need not be allocated. The Mark Area (copied from the shared file) contains SWAP.SYS, BAM.SYS, IND.SAV and some handlers that use SET commands.
RT-11 Format Volumes
With a few exceptions, all common RT-11 physical hard disk and floppy disk devices can be used as devices in RTEM-11. Even the system device can be a physical RT-11 formatted device, and a total of up to eight devices (whether physical or virtual) can be used with RTEM-11.
RTEM-11 Version 1.0 Aug 1982
RTEM V1 virtual disk images have got file extension .SYS
- RT-11 Version 4.00 FB monitor
- RSX-11 M Version ?
- RSX-11 M-PLUS Version ?
- VAX/VMS Version 3.?
Supported RT-11 layered Products:
- BASIC11/RT-11
- FORTRAN IV/RT-11
- Single user DIBOL
- APL/RT-11
- FMS/RT-11
Unsupported RT-11 layered Products:
- DECnet/RT
- MU/BASIC
- 2780/3780 RT
- Time Shared DIBOL
- Lab/VT11/LV11 Packages
- Labs/APPs
Unsupported devices:
- Cassette (TU60)
- Card Reader (CR11)
- Paper Tape Reader/Punch
- VT11/VS60 Display
- PDT handler
- CPD ???
- Error Logging Handler
- RF11 Fixed head Disk
RTEM-11 Version 2.0 Jan 1984
RTEM V1 virtual disk images have got file extension: .DSK
Operating Systems:
- RSX-11 M Version 4
- RSX-11 M-PLUS Version 2
- VAX/VMS Version 3
Further RTEM-11 Versions
- RTEM V2.1 June 1985
- RTEM V2.2 January 1986
- RT-11 V5.3
- RTEM V2.3 July 1986 new name "VAX-11 RTEM"
- VMS V4.4
- VAX-11 RSX V2.0
- RT-11 V5.4
- New devices: MU (TMSCP Tape), DA (RC25), DJ (RA60)
- Full VMS host command line execution (any VMS command)
- DCL commands for FIP/JOAT commands
- New RTEM-11 SET commands
Locating RTEM-11 Software and Manuals
There is only one place left where you can find RTEM 11 software nowadays:
RTEM‑11 :: RT‑11 under RSX‑11M/M‑PLUS, P/OS, VAX/VMS
Special thanks go to Oleg Safiullin (form@pdp-11.org.ru), who saved RTEM-11 from extinction!
We also owe him a revision of RTEM-11 V1.0, which is similar to V2.0 and even surpasses it in some aspects.
Although RTEM-11 is mentioned in a lot of RT-11 Manuals, specific RTEM-11 docuents are very rare, so far only the following are available:
- AA-N435C-TK RTEM-11 User's Guide, Version 2.0.pdf
- VAX-11 RTEM Release Notes, Version 2.3
- The RT-11 Mini-Tasker - DECUS RT-11 SIG Newsletter, Volume 9-3 August 1983
Running RTEM-11 on SIMH VAX Simulators
"Nothing beats the experience" - That's why I tried RTEM-11.
So far I have only tested RTEM-11 on SIMH simulators; I will add a report about tests on real VAX computers (probably MicroVAX ones) later.
Running RTEM-11 on a SIMH VAX-11/750 under VMS V3.5
- to be added -
Running RTEM-11 on a SIMH VAX-11/8600 under VMS V4.7
- to be added -
Running RTEM-11 on a SIMH MicroVAX II under VMS V4.7
- to be added -
Benchmarking RTEM-11
There is a nice CPU benchmark for a lot of operating systems including VMS and RT-11 with the sources available here: The number π calculation by spigot algorithm benchmark
It calculates an adjustable number of pi digits and displays the time required to do so.
You find the VMS and RT-11 sources as well as object code and executables in the RTEM-11 software set.
- work in progress