Editor's Note: A technical paper from the DEC world asserted that VMS was the first operating system designed before the chipset that it ran upon. MPE's earliest designs were just as innovative. We asked Stan Sieler for some history.
By Stan Sieler
I'd assume that the 16-bit Classic instruction set architecture and the original MPE were designed at about the same time — probably with the architecture being mostly ready/running (real or simulated/emulated) before the software was ready. Once MPE was up and running, some years later there were arguably one to three architectures designed for it (exclusively or not).
A group of about 12 of us (labs, chip people, me for the OS lab) designed a 32-bit architecture for the next generation HP 3000.
The architecture was an evolution of an earlier FOCUS used by Ft. Collins for some HP 9000s (after the 68000 models, before the PA-RISC models), and it (the earlier) was either used by the Amigo (HP 300) and/or was inspired by the Classic 3000 architecture. The project got dropped in favor of the VISION architecture.
This was the object-oriented architecture (with 64-bit virtual addressing) that was going to be the next-gen HP 3000, running what was going to be called HPE. We had HP 3000/4x computers with rewritten firmware emulating it, and there were a couple of hand-made real CPU boards beginning to run when I left HP in September 1983 to start Allegro.
At that time, I had a crude command interpreter running on it under my process management code (I was in charge of process management). VISION was very very interesting. If I had access rights to an object (say, a record from an IMAGE database with an employee name, a date-of-hire, and other information), I could send another process a "descriptor" (virtual address) that would give them access to precisely the subset I wished (e.g., read access to date-of-hire field of the record). But, that concept is gone now. No one can do that :(
VISION was dropped in favor of PA-RISC about a month or so after I left. I commented to Joel Birnbaum that it was dropped because I'd left HP. His reply was, "If I knew that, I'd have gotten rid of you sooner."
About 1982-1983 I began to hear about an architecture that HP Labs was working on that would allow you to run MPE, RTE, and maybe even HP-UX simultaneously. It was code-named "Rainbow." I think Rainbow turned out to be PA-RISC.
In the 1980s, RISC (Reduced Instruction Set Computer) was all the rage. People thought it meant quicker execution due to less complex instructions. I am still dubious. I think they underestimated the types of computations and instruction/memory interactions needed — and, indeed, you can see people throwing more and more and more cache towards RISC in an effort to address the speed imbalance between the CPU and memory.
HPE, essentially an extended version of MPE, was designed to run on PA-RISC. To the extent that the virtual memory (and IO) was quite different, that part of the OS was designed for the architecture.
Most of HPE, later MPE XL, then MPE/iX, doesn't care what the architecture is, any more than Linux/Unix/Windows cares what the architecture is. I seem to recall that a few aspects of the memory protection mechanism (including the Protection ID registers) may have been influenced by HPE's needs.
Of course, at the same time, HP-UX was being ported from 68000 / FOCUS to PA-RISC, so there may have been interactions there, as well. Note, however, that HP-UX never fully utilized the PA-RISC architecture — particularly the memory addressability, where HPE / MPE XL / MPE/iX had it beaten by far. I don't think HPE, HP-UX, or Netware (which was on PA-RISC briefly, circa 1993) used all the capabilities, including the ability to, in controlled circumstances, let user code directly access some IO instructions.
I think I heard that a basic MPE/iX kernel of sorts had been successfully ported to Itanium before the HP 3000 was killed. Obviously, HP-UX was also ported to IPF. The primary influence MPE/iX and HP-UX probably had was the Itanium ability to run in either little-endian mode (Intel X86 style for Windows) or big-endian (Class, and PA-RISC style, for MPE/iX and HP-UX).
Other operating systems running on Itanium — which have been released in some cases, not released in others — include Windows, Netware, Solaris, OpenVMS, and Tru64 Unix. This list of systems tends to imply that the architecture was not specifically oriented towards one particular operating system.
In short, I think most operating systems exist (perhaps in an earlier form) prior to the chip architecture, but that most architectures are mostly independent of the operating system design/features. The memory addressability mechanism almost always affects major aspects of the internals of the operating system (as it would with VISION).
Photo by Ashes Sitoula on Unsplash