Brief History of the Project
In 1976 Prof. Keedy initiated the Monads Project in the Department of Computer Science at Monash University in Melbourne, Australia, where work continued on the project until 1985. His initial research team consisted of three Ph.D. students. John Rosenberg worked in the area of kernel design, Kotigiri Ramamohanarao in the area of job management and Ian Richards in the area of subsystem management. The hardware base for the early work was a Hewlett Packard 2100A minicomputer which Prof. Chris Wallace had already modified to support a minimal virtual memory structure. At the request of the Monads group Prof. Wallace and his research student Rob Hagan made a further modification to provide addressing support for process stacks, and this modified hardware, together with the software, became known as the Monads I system. John Rosenberg, who later became full Professor of Computer Science at the University of Sydney, continued for many years to work on the project as a full research investigator and partner of Prof. Keedy.
By 1978 it had become evident that the hardware of the Monads I system was not adequate to support the software ideas which had been developed, in particular the idea of a persistent virtual memory in which all major software resources (comparable to files in conventional systems) and including data files should reside as information hiding modules and which were to be directly addressable from persistent processes, protected by capabilities. Consequently a further hardware development, known as Monads II, was undertaken by another research student, David Abramson. This was based on a further HP 2100A computer but the hardware changes were much more radical. This included the first implementation of the orthogonal model for combining paging and segmentation, and the first implementation of capability registers containing large virtual addresses.
The Monads II hardware was from the beginning regarded as a prototype, in particular with respect to the sizes of virtual addresses, and a plan was formulated to build a further hardware system, Monads III, which would have full 60 bit virtual addresses. However, this plan was abandoned when Prof. Keedy accepted the Chair in Operating Systems at Darmstadt in Germany in 1982. Shortly before this another student, John Thomson, had started to work on a Ph.D. in association with an operating system for the Monads II/III systems. His work continued to a successful completion at Monash, despite the difficulties of having a supervisor in Germany.
As the hardware development possibilities at Darmstadt were limited Prof. Keedy worked there from 1982 to 1985 on software related aspects of the projects. The elimination of a file system in the Monads philosophy made it necessary to think about how persistent objects could be organized in the virtual memory. A former research student from Monash, Mark Evered, moved to Darmstadt with Prof. Keedy and worked there on the development of a new very high level programming language, called Leibniz, for this purpose. Leibniz is a persistent programming language which supports information hiding modules (including files) and allows them to be structured as sets and sequences of smaller objects. It is more fully described elsewhere. While in Monash Prof. Keedy and his students had also given some attention to support for efficient synchronization primitives. He developed these ideas further in Darmstadt together with his research assistant Bernd Freisleben.
In 1984 John Rosenberg (who had meanwhile returned to Monash after working in a software house) and David Abramson joined together to continue the Monads hardware work. Together they designed and built the first Monads-PC system at Monash, incorporating many of the ideas from the abandoned Monads III. The Monads-PC had 60 bit virtual addresses with capability registers and an address translation unit capable of efficiently translating these large unique virtual addresses. Over the following years several Monads-PC systems were built, and this system became the workhorse for most subsequent research on the Monads Project. A picture of a Monads-PC computer appears at the head of this document.
During a visit to Monash from Darmstadt in 1984 Prof. Keedy discussed the problem of how Monads-PCs could be networked together, and out of this visit grew the initial idea (worldwide) of distributed shared virtual memory.
In 1985 Prof. Keedy returned to Australia and established a new Department of Computer Science at the University of Newcastle, New South Wales. John Rosenberg soon joined him as a Senior Lecturer. Together they moved the Monads Project to Newcastle. With a new research student, Frank Henskens, they further developed the idea of distributed shared memory. They also made some modifications to the Leibniz programming language. Together with David Koch they also formulated the idea of a Monads-MM computer, which was to have not only very large virtual addresses (128 bits) but also a main memory of the order of several gigabytes, which was a very unusual idea in 1986.
In 1988 Prof. Keedy moved to the University of Bremen in Germany and soon afterwards John Rosenberg was appointed Professor of Computer Science at the University of Sydney, where he was joined by Frank Hensens. Thereafter Monads worked continued at both locations. In Sydney the emphasis was mainly on developing the distributed shared memory, while in Bremen, the emphasis focused on database aspects of the Monads architecture (with Peter Brössler) and on higher level software for a secure operating system (with Karin Vosseberg), in particular with the use of directories as a means for providing secure communication both in a local and in a distributed system.
Together with Jörg Siedenburg Prof. Keedy also worked in Bremen on new ideas for structuring kernels in an object-oriented way. This work moved to the University of Ulm in 1993. Out of this work the seeds of a new project, called S-RISC and involving the design of a RISC computer system with powerful security features, has emerged. At Ulm new initiatives have also been started (with Mark Evered, Gisela Menger and Axel Schmolitzky) in the area of programming language design, both in the form of a new language L1 and various extensions to Java (which later formed the basis for the programming language Timor).