A RANGE OF OPERATING SYSTEMS WRITTEN IN A PURELY FUNCTIONAL STYLE
Simon B. Jones
From February 1982 to September 1983 the author was investigating the design and implementation of operating systems in a purely functional style. The research was carried out at the Programming Research Group, Oxford University.
This report explores a variety of different designs of operating system, and the aspects of functional programming which lend themselves to these designs. The various techniques illustrated and exploited include the construction of simple interactive systems (through lazy evaluation and recursive functions on streams), streams functions as processes and networks of processes (clear modularisation of systems), sharing of resources and time dependent systems (through the use of a non-determinate choice operator), and physically distributed systems (streams are associated with remote communication lines). Functional programming provides a powerful tool in the design and implementation of such systems.
A companion report describes the underlying abstract machine support required for the Implementation of functional operating systems.