Post by Dave Froble Post by Arne Vajhøj
I have become very curious about the ancestry of VMS. (I am
going to look into some others, but for VMS I do have this
outlet for information!)
Both Primos and Unix came from people recently working on
Multics. Primos went in the same direction as Multics while
Unix appeared to go in a very different direction.
VMS is more similar to Primos than Unix. I have seen it said
that RSX-11 was the immediate parent of VMS. Was that true?
Given that, what is the ancestry going back even further?
Where did VMS actually get its start paradigm-wise?
Anybody here have any of this information?
In April 1975, Digital Equipment Corporation embarked on a hardware
project, code named Star, to design a 32-bit virtual address extension
to its PDP-11 computer line. A companion software project, code named
Starlet, was started in June 1975 to develop a totally new operating
system, based on RSX-11M, for the Star family of processors. These two
projects were tightly integrated from the beginning. Gordon Bell was
the VP lead on the VAX hardware and its architecture. Roger Gourd was
the project lead for the Starlet program, with software engineers Dave
Cutler (who would later lead development of Microsoft's Windows NT),
Dick Hustvedt, and Peter Lipman acting as the technical project
leaders, each having responsibility for a different area of the
operating system. The Star and Starlet projects culminated in the
VAX-11/780 computer and the VAX/VMS operating system. The Starlet name
survived in VMS as a name of several of the main system libraries,
including STARLET.OLB and STARLET.MLB.
RSX-11 is a discontinued family of multi-user real-time operating
systems for PDP-11 computers created by Digital Equipment Corporation.
In widespread use through the late 1970s and early 1980s, RSX-11 was
influential in the development of later operating systems such as VMS
and Windows NT.
RSX-11 began as a port to the PDP-11 architecture of the earlier
RSX-15 operating system for the PDP-15 minicomputer, first released in
1971. The main architect for RSX-15 (later renamed XVM/RSX) was Dennis
The porting effort first produced small paper tape based real-time
executives (RSX-11A, RSX-11C) which later gained limited support for
disks (RSX-11B). RSX-11B then evolved into the fully fledged RSX-11D
disk-based operating system, which first appeared on the PDP-11/40 and
PDP-11/45 in early 1973. The project leader for RSX-11D up to version
4 was Henry Krejci. While RSX-11D was being completed, Digital set out
to adapt it for a small memory footprint giving birth to RSX-11M,
first released in 1973. From 1971 to 1976 the RSX-11M project was
spearheaded by noted operating system designer Dave Cutler, then at
his first project. Principles first tried in RSX-11M appear also in
later designs led by Cutler, DEC's VMS and Microsoft's Windows NT.
RSX-15 was released by DEC in 1971. The main architect for RSX-15
(later renamed XVM/RSX) was Dennis "Dan" Brevik.
Once XVM/RSX was released, DEC facilitated that "a PDP-15 can be
field-upgraded to XVM" but it required "the addition of the XM15
The RSX-11 operating system began as a port of RSX-15 to the PDP-11,
although it later diverged significantly in terms of design and
All before my time.
But I do remember that VAX and VMS VAX had some PDP-11 and RSX-11
compatibility mode features.
Thank you. That takes me back a little bit further. But I fear the
very origins, the driving model, may be long lost by this time. I
have a number of very early textbooks on Operating Systems and none
of them describe features common in VMS or RSX. It's really just
curiosity, but I wondered where some of the concepts originated.
Looking at it from a different perspective ....
Back in 1974 I was introduced to a PDP11/40 running RSTS V04b. At the
time, the only supported language was Basic+, an interpreter.
Where RSTS came from, I don't know, but what I was told was that David
Hart of Evens, Griffith, and Hart wrote the original Basic+. David is
no longer with us, but, perhaps John Santos might have some information
of the earlier days.
While DEC ended up with RSTS and Basic+, what it seemed like to me is
that the software people at DEC considered RSX as a proper OS and RSTS
"that other thing". Perhaps where their NIH started, or, perhaps they
already embraced that concept.
I wasn't a user of RSX at the time, so I really don't have any memories
of it on the PDP11.
Some time after 1974, don't know exactly when, DEC produced some type of
RSX subsystem for RSTS, which allowed MACRO-11, and other RSX languages
to run on RSTS. These included BP2 (Basic Plus 2) which was a compiled
version of Basic Plus.
When VAX and VMS came along, VMS inherited much from RSX, as that seemed
to be the preferred choice for the DEC software people. VAX and VMS was
aimed at the scientific market initially. Only when DEC wanted into the
business market did they start incorporating capabilities from RSTS,
since RSTS was heavily used in the business market.
So yeah, VMS was based initially on RSX, and later had RSTS capabilities
added. The result was something better than the sum of RSX and RSTS.
I never heard any stories of where RSTS came from ...
RSTS (/ˈrɪstɪs/) is a multi-user time-sharing operating system,
initially developed by Evans Griffiths & Hart of Boston, and acquired 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 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. By the end
of 1973 DEC estimated there were 150 licensed systems running RSTS.
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 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 22bit 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.
Programs written in BASIC-PLUS ran under the BASIC RTS, which allowed
them up to 32K bytes of memory (out of 64K total). The language was
interpreted, each different keyword being internally converted to a
unique byte code and the variables and data being indexed and stored
separately within the memory space. The internal byte-code format was
known as PCODE - when the interactive SAVE command was issued, the BASIC
Plus RTS simply saved the working memory area to a disk file with a
".BAC" extension. Although this format was undocumented, two Electronic
Engineering undergraduates from Southampton University in the UK (Nick
de Smith and David Garrod) developed a decompiler that could reverse
engineer BAC files into their original BASIC Plus source, complete with
original line numbers and variable names (both subsequently worked for
DEC). The rest of the memory was used by the BASIC RTS itself. If one
wrote programs in a language that permitted true binary executables such
as BASIC-Plus-2, FORTRAN-IV, or Macro Assembler, then the amount of
memory available would be 56K (8K allocated to the RTS).
BASIC-PLUS is an extended dialect of the BASIC programming language that
was developed by Digital Equipment Corporation (DEC) for use on its
RSTS/E time-sharing operating system for the PDP-11 series of 16-bit
minicomputers in the early 1970s through the 1980s.
BASIC-PLUS was based on BASIC-8 for the TSS/8, itself based very closely
on the original Dartmouth BASIC. BASIC-PLUS added a number of new
structures, as well as features from JOSS concerning conditional
statements and formatting. In turn, BASIC-PLUS was the version on which
the original Microsoft BASIC was patterned.
The language was later rewritten as a true compiler as BASIC-Plus-2, and
was ported to the VAX-11 platform as that machine's native BASIC
implementation. This version survived several platform changes, and is
today known as VSI BASIC for OpenVMS.
Syntax and features
BASIC-PLUS is patterned closely on later versions of Dartmouth BASIC,
including its powerful MAT commands. On top of this, DEC added a number
of unique flow-control structures.
Line numbers were positive integers from 1 to 32767.
Again way before my time.