[Simh] Regarding "Cutler THE father of VMS" myth

Sergey Oboguev oboguev at yahoo.com
Wed Mar 4 17:47:20 EST 2015



> Remember when "VAX SW" is being put together in the early/mid-70s,
> many commercial OS guys (particularly @ DEC) did not (yet) believe it
> was possible to right a commercial OS in anything but assembler -
> until UNIX (although UNIX was hardly the first - Boroughs used an
> Algol, and of course GE/Honeywell and Pr1me used PL/1 and to be fair
> UNIX v1 was written in PDP-7 assembler).

VMS  team had to make design choices within the constraints of the state of
compiler technology, hardware technology/costs, and the requirements of
market competitiveness.

Looking back, it is very clear that VMS designers went to extreme lengths
to ensure a system runnable very efficiently on a resource-constrained
hardware.

Some of their choices included

- partially paged system code
- partially paged pool
- extremely sophisticated memory management algorithms

Their choices also included choosing assembler as an implementation language
for key system modules rather than high-level language. The state of the
compiler technology to match or surpass hand-written assembler code just was
not there at the time, and would not be there for about another decade
(after all, the advent of modern efficient compilers owes a historical stage
of their development to the availability VAX as a development platform).

Choice of the assembler and accordingly manual hard labor as "an optimization
engine" allowed to achieve smaller memory footprint of the system and faster
code than present state of compiler technology would allow, which was crucial.

One should just remember that 11/780 computational performance was only about
0.7 MIPS and some of the initial machines shipped with less than 1 MB of 
memory.

As an illustration, the first VAX I personally met even much later (ca. 1984)
was 11/780 with only 2 MB of RAM.

Another place I worked at later ran (in ca. 1984-1988) a cluster of 780's with
initially 4 MB each later upgraded to 8 MB. During daytime, the mix on *each*
of the machines included about 4-6 concurrently executing batch jobs doing
particle physics computations plus about 20 interactive sessions of people
editing, compiling, running and debugging their computational applications --
all in a few MBs of RAM. It was a crawl, but the system was still reasonably
responsive and able to make forward progress with only limited loss to paging
etc., and the fact VMS was able to sustain workloads like these (and thus
meet the needs of technical/engineering and scientific markets) was made
possible by those extreme lengths VMS developers went to and by the
trade-offs they chose -- one of which was the choice of the assembler
as an implementation language.

This trade-off, of course, meant bleaker prospects for VMS longer-term future,
but it enabled its early market success and building of market momentum.

In a similar vein, Gordon Bell tells in one of his interviews how already in
the 1990's Cutler once asked him why they did not design VAX as a RISC from the
start. Bell answered that it would not be possible at the time: RISC
instruction set would  have meant larger code size, and at those-day RAM
costs, this would impede VAX market success.



More information about the Simh mailing list