2022-04-06 history, hardware

OS4000: An Old, Fast, Micro-kernel-ish Operating System

I’m of the opinion that operating systems should be based on a micro-kernel and capability security — though I don’t yet have the courage of my convictions to run, say, Genode…. This item is mainly about some early influence on the micro-kernel side from a little-known system, which I didn’t appreciate at the time. I should say something about capabilities elsewhere. The point is that, despite conventional wisdom, such a system originally from the 1970s was fast.

Back when I was doing nuclear physics in the 1980s, we had an interesting workhorse computer system used for data acquisition and interactive analysis as well as accelerator control. It also provided backbone systems of the JANET (né SERCNET, né SRCNET) pioneering national network, amongst other things. I should record a bit about about what ‘we’ had built on it, but this is a bit about the basic system, increasingly lost to history despite fairly widespread use in the UK at the time.The Wikipedia reference is the only accessible account I know, though I still have some manuals.

The operating system was OS4000, running on GEC 4000 series hardware. These British real-time minicomputer systems, from the days when such things could be produced in Blighty, were quite interesting. I was glad we had them rather than the VAXen or -11s of most foreign groups;I understood we got them as a reaction to the nascent computer group contrasting them with PDP-11s (probably before VAX got going) at a trade show.

the system around them was a significant contributor to world-leading physics.

The feature of interest is that they ran at least the moral equivalent of a micro-kernel,I’m not sure why it wouldn’t be considered one, but I never heard it said.

and did so fast. Forget the idea that micro-kernels had to be slow until L4.

I guess — but can’t confirm — that ‘4000’ was an homage to the RC4000, normally thought of as the origin of the micro-kernel idea, albeit with a reputation for being slow and unreliable. It happens I used one as a student at the former Danish nuclear physics lab,I hasten to add it was old and seemed pretty steam-driven even then, with germanium transistors. Concerning its reliability, “Zje compuder ish aall shcrewwed uupp” was the phrase we took back to Liverpool (with its amusing accent, but worse standard of English than Scandinavia, like).

not realizing its significance at the time, or the likely connexion with our systems.

As well as ‘4000’, the name of the fundamental feature of the GEC architecture was suggestive of such an origin: Nucleus. This was the pioneering micro-kernel-ish component of the system. Well, whether or not it was strictly a micro-kernel, it was at least the moral equivalent of one, given its feature set. What made it special was that it was implemented in (micro-programmed?) hardware, which was presumably partially responsible for its speed.However, Nucleus was later done in software for the 63 series, the 4000’s intended successor, and in the last in the 4000 line on an M88k VME system. The software version was sufficiently fast on 1980s hardware.

French collaborators initially thought it slow on hearing the context-switch time in microseconds and assuming that it should have been milliseconds. The 4090 system used as the front-end to the central NAS 7000 IBM 370 clone had to be slowed down so that the NAS could keep up, and one could saturate the Ethernet of the time, which was unusual as I remember.

I don’t know the implementation details, but given the speed of Nucleus, even in software, relative to first generation micro-kernel implementations, I wonder what the secret was, and whether contemporary systems missed a trick.

The overall OS4000 operating system was built on Nucleus in the normal micro-kernel fashion. So, for instance, you could restart just the filesystem if necessary, and a process could restart a crashed driver. It supported hard real time processes mixed with non-real time ones, multi-processors (though we had the only dual-processor model sold), and was used in clusters.

In some ways the system was primitive, although it was from the early 1970s. For instance, aspects of the booted system were configured and fixed at ‘sysgen’ (‘system generation’) time. Also, apart from an enhancement done at the Rutherford Lab (and only used there?), user sessions had only a single process plus an ‘AIDA’ debugging one. That didn’t seem much of a limitation, especially if you used a system like OS/370 TSO, which we also did.You could ‘shell out’ of the ‘random editor’ (i.e. not stream editor) by saving state, having the wrapper execute something else, and resuming from the saved state, I think like the TSO editor on which it was modelled.

Anyway, overall the system worked rather well as far as we were concerned; it certainly made a contemporary VAX — the most widely used competitor (“All the world’s a VAX”) — look ponderous.

As well as the micro-kernel features, there was a very basic capability system,Especially basic compared with contemporary British commercial and research systems.

with capabilities fixed at sysgen. I assume that, along with the hardware implementation, helped the SCP-2 4000 series operating system get A1/B3 Orange book certification; I guess that was the basis of 4000 use at ‘The Foreign Office’, as it used to be referred to in Cheltenham when I didn’t know it was so secret.