Persistent Operating Systems

(Some information come from Emmanuel Marty's web page and a website of University of Arizona.)

n        Alaric B. William's ARGON (has got a mailing list) are set out to write an operating system which dynamically compiles high-level languages to machine code as needed, and where all parts (ARGOT modules) are orthogonally persistent, and communicate through a network-transparent messaging protocol based on globally unique addresses, whether local to the system or on the other side of the world.

n        EROS (University of Pennsylvania) Group Members
EROS (Extremely Reliable Operating System) is a new operating system being implemented at the University of Pennsylvania. The system merges some very old ideas in operating systems with some newer ideas about scheduling and performance. The result is a small, secure, high-performance operating system that
provides transparent orthogonal persistence coupled with microkernel-style critical paths, including a high performance IPC subsystem.

n        Grasshopper (University of Sydney) Group Members
Grasshopper is
explicitly designed to support for orthogonal persistence by introducing the abstractions of containers, loci and capabilities. Containers are conceptually very large address spaces capable of holding persistent data and are therefore suitable as coarse-grained storage repositories for fine-grained persistent objects. Containers play a role of processes in a conventional OS. However, containers allows no activity, i.e., no thread running. Locis play a role of threads in a conventional OS. A capability is conceptually a typed reference to a particular container or locus. A Capability is combined with a set of access rights for controlling access to containers and loci.

n        Eumel/L3/L4 by Jochen Liedtke at GMD are microkernels to demonstrate how optimizing performance requires OS kernels to be completely hardware-dependent, and even CPU-version dependent in a same family of CPUs. L3/L4 rely heavily on the paradigm of persistence: both data and processes, in principle all objects are persistent, files are implemented by means of persistent objects (not vice versa).

n        Mungi (University of New South Wales)
A new operating system based on
a single, flat virtual address space supporting orthogonal persistence, and a strong but unintrusive protection model.

Persistence-Related Operating Systems

n        Apertos (or called Muse) is an operating system that represents everything as concurrent objects. Apertos provides a reflective architecture called Muse Object Architecture, on which a persistent object system is realized.

n        Brand Huntsman's BRiX OS will be based on modular functions that can be dynamically called by other functions. The microkernel is being developed in assembler but the functions will be written in a language native to BRiX. Its persistent object store, automatically downloadable functions, and a new user interface will make it very easy to use for both beginners and experts. It seems that every function runs in a seperate thread. No sourcecode or useful binary image have been released so far, though. Brand can be seen at times on the OPN IRC network, channel #tunes.

n        Clouds is based on a micro-kernel called Ra written in C++. Clouds supports coarse-grain persistent objects as a basic abstraction. In Clouds, All data, programs, devices, and resources are encapsulated in passive objects. Activity is provided by threads, which execute within objects. A Clouds object is a persistent virtual address space which is not tied to any form of computation and is best suited for the storage of large-grained data and programs. Each object may provide a procedural interface via a set of entry points at which threads may commence execution. Code accessible through such an entry point is known as an operation. Each object has a global system-level name which is a unique bit-string that provides a location independent form of naming. Each Clouds object is implemented as a single-level store that is demand-paged from a backing store. The persistence model in Clouds does not extend to threads, which must be restarted after failure. Threads are the only form of computation in Clouds and, unlike objects, are not persistent. They execute within the context of an object and may manipulate the data within it. However, threads may also move between objects by invoking an entry point of another object.

n        GUIDE is designed to explore the use of shared objects for communication in a distributed system, especially for applications that require cooperative work. Guide is written in a new language named the Guide language, which offers facilities for concurrency, persistence, and distribution.

n        KeyKOS
KeyKOS is an operating environment for S/370 computers which provides a high level of security, reliability, performance, and productivity. It allows emulation of other environnzens such as VM, MVS, and POSIX. Development of KeyKOS ceased in 1990. Many of the ideas of this system have been carried forward into EROS

n        Merlin (University of Sao Paulo)
An object-oriented, reflective operating system based on the Self programming language

n        MONADS (Monash University) aim at providing an environment for software engineering using data encapsulation and information hiding. These features were supported by a custom-built hardware architecture, the main features of which were a capability-based addressing scheme, large virtual addresses, and an inter-address space procedure-calling mechanism. MONADS supports the notion of persistence via the segment abstraction which provides support for large-grained persistent objects.

n        Opal (University of Washington)
Related to: Mach
Opal is a single-address-space operating system for 64-bit architectures. All Opal threads execute with a single global address space. The existence of a single address space simplifies sharing of complex (pointer-rich) data among cooperating applications, as well as persistent storage of that data, because pointers have the same meaning to all threads for potentially all time. Opal provides protection in the single address space; each thread executes within a protection domain that defines which pages it has the right to access.

n        Spring is a distributed, object-oriented operating system in which all resources and system functions are implemented as objects. A Spring object is an abstraction that is defined by an interface, expressed in IDL. The granularity of Spring objects spans a wide range, from small data-like objects to larger objects such as files and print services. Spring provides a general name service and persistent name-to-object bindings to support persistence.