OS6 - a portable operating system (1972)

In another place, @drogon mentioned OS6, so I went looking for some details:
In Portable Programming (1982) Peter J. L Wallis writes:

The OS6 operating system, developed at the University of Oxford, was an early exercise in the publication of a complete operating system written in a highlevel language. It is written in BCPL…

The system as published supports a single user; it includes a BCPL compiler and a filing system. The interpreter and small amounts of machine-dependent code are written in assembly language for the host machine, initially a CTL Modular One.

image

Papers published by the OU computing lab, from 1972:

Apparently that’s the first time the full source of an operating system was published. (Reminds me of Minix: Tanenbaum published the full source in a book, as a teaching text. But of course that was much later.)

As noted, OS6 was ported to a B1700 (specifically a B1726 with 4k of writeable control store, which defines a soft machine, and 48k of bit-addressable main memory.) A true proof of portability, surely.

Stoy and Strachey, on the other hand, set out to design a ‘good’ operating system in an already (relatively) well-established language BCPL.

Remarkably, Snow reports deciding on putting an OCODE interpreter into the control store, and arbitrarily deciding on a 24 bit word size for the BCPL data space, and uses a variable-length coding (2 bits length plus some 6 bit syllables) for the OCODE of the BCPL program.

8 Likes

Perhaps the next such publication was:

1 Like

Can one get the full source anymore?
Can one get it in a machine readable form?
In some ways I suspect It to be more portable than newer OS’s,
as all the character routines would only be in a few places.I/O was
limited to rather simple devices, serial port, printer and disc. With all
the emulators being written for the classic machines, there is no reason
to see more experimental languages and operating systems and larger memory
and media space than you had in the 70’s.
Ben.
PS:A vector display may also be a valid device, mice and pens optional.

1 Like

My own BCPL OS had some ideas from OS6 but at the end of the day, there are only so many ways you can do it - there is a shared library of routines including IO, the filing system is handled externally and it has multi-tasking built into the underlying bytecode VM.

I have ported it from 65c816 hardware to RISC-V hardware - I didn’t even have to type ‘make’ as the binaries “just worked”. There is work to do though. The filing system currently runs on another processor and is written in C.

I need to make a video of it at some point…

-Gordon

2 Likes

@oldben, are you referring to OS6? I am not aware of the existence of the machine readable source, but you could always type it in from the reports cited by @EdS. OS6 was an influence on the operating system for the Xerox Alto – see this memo by Butler Lampson:

Source for the Alto’s operating system and several applications is here:

An overview of this repository is here:

1 Like