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.
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.