The Multipop Timesharing System

It is conventional to regard an operating system and a programming language implementation as being distinct entities. There are however distinct advantages to an integrated approach, since many of the constructs required for each are in fact common, for example storage management and interpreting user commands . The Multipop, timesharing system, first operational in late 1967, was based on the concurrently developed implemenation of POP-2.

Making POP-2 be the command language for the operating system and the only language available to the user made it possible, on a relatively cheap computer (64K 24-bit words of memory), to support the time-shared development of quite complex programs, with relatively rapid responses to user interactions. Incorporating device handlers `cannibalised' from the earlier MiniMac project, it supported much of the symbolic computation work at Edinburgh until the early-70's.

Using a functional language with a properly implemented concept of closure is of considerable benefit in supporting the presentation of devices such as disks to a user in an encapsulated form . Multipop employed no conventional hardware protection mechanisms; instead its security was guaranteed by the fact that access to system resources was obtained via closures of device access functions, and on built in restrictions on code-generation embodied in the compiler. Being system-generated and opaque, there was way in which a user could obtain inappropriate access to system resources via these closures. Moreover, as compared with a context switch, a closure is a light-weight means of encapsulating capabilities.