Extensible Operating Systems
Extensible Operating Systems
-
Aegis/Exo-kernel
(Massachusetts Institute of Technology)
Group Members: Frans Kaashoek,
Dawson Engler
The Aegis kernel is built around the idea of an
exo-kernel. An evolution from micro-kernels, exo-kernels export
a virtual machine that securely multiplexes resourses among mutually
distrusting spplications. The exo-kernel philosophy tries to export
as few abstractions besides the basic hardware abstractions as possible,
and to implement as little policy in the kernel as possible. Like SPIN,
Aegis relies on techniques such as downloading code into the kernel
to make the system fast.
-
Cache kernel
(Stanford University Distributed Systems Group)
Group Members: David Cheriton,
Kenneth Duda
The supervisor-mode component of the V++ operating system.
The Cache Kernel caches operating system objects such as threads and
address spaces just as conventional hardware caches memory data.
User-mode application kernels handle the loading and write-back
of these objects, implementing application-specific management policies
and mechanisms.
-
Choices
(University of Illinois, Urbana-Champaign)
Choices is written as an object-oriented operating system in
C++. As an object-oriented operating system, its architecture is
organized into frameworks of objects that are hierarchically
classified by function and performance. The operating system is
customized by replacing subframeworks and objects. The application
interface is a collection of kernel objects exported through the
application/kernel protection layer. Kernel and application objects
are examined through application browsers
-
Flux
(University of Utah)
Group Members
The Flux Project's objective is to develop a
nanokernel-based decomposed operating system that achieves high
performance while retaining inter-component protection and rich
functionality. Such a system will overcome the performance/protection
and performance/functionality tradeoffs that thwart traditional
micro-kernel-based operating systems. This objective includes
integration of selected research results of others, and free
distribution of an unencumbered and usable version of the entire
system.
-
Kea
(University of British Columbia)
Group Members: Norm Hutchinson,
Alistair Veitch,
Peter Smith,
et al.
Kea is an operating system architecture designed to provide
the applications running on top of it with the ability to dynamically
replace parts of the system. Don't like your file-systems buffering policy?
Write your own, the system will replace it for your application! Of course,
there are lots of research and design issues over how we do this on a
fine-grained scale, whilst maintaining system integrity and efficiency.
-
Protection and Sharing through Shared Libraries
(University of Notre Dame)
Group Members: Arindam Banerji
Protected Shared Libraries (PSLs) are based on the observation that
shared libraries, with some modifications, could be used to implement user-level
OS services with adequate protection and many degrees of sharing. Furthermore
the dynamic nature of loadable shared libraries can be extended to provide a high
degree of flexibility in the implementation of user-level services.
Protected Shared Libraries add two different dimensions to the usual
notion of shared libraries - protection domains and multiple forms of sharing
through Shared Address Libraries.
-
Scout
(University of Arizona)
Group Members
The Scout project is a new operating system project that aims
to build a fast, customizable operating system for networked systems by
looking at novel ways to structure and construct operating systems.
The Scout operating system is designed around the path,
which is how data flows between end-points in a system.
Paths are primary objects to which resources are allocated in Scout.
The Scout system is also exploring new compiler technologies for system
design and implementation, based on the insight that extensible operating
systems are worthless if no one can build or extend them.
-
SPACE
(University of California, Santa Barbara)
Group Members: John Bruno,
Dave Probert
SPACE is an approach to operating systems which uses multiple
protection domains rather than a single kernel to provide
operating system services. Multiple instances of fundamental
paradigms, such as threads and virtual memory, can coexist, since
they are implemented as applications code. All that is left in what
was the operating system kernel is a set of
mechanisms to implement the protection domains. In SPACE these
mechanisms.can be replaced as needed by the application
to provide a fundamental level of extensibility not available in other
adaptive operating systems.
-
SPIN
(University of Washington)
Group Members
SPIN is one of several research systems
that aims toward run-time flexibility and specialization using
techniques like type-safe languages and dynamic code generation to
make a fast, dynamic, flexible system. It is an extensible
operating system micro-kernel that supports the dynamic adaptation of
system interfaces and implementations through direct application
control, while still maintaining system integrity and
inter-application isolation.
-
Spring System
(Sun)
Sun's new research kernel. Spring is a highly modular,
object-oriented operating system, which is focused around a uniform interface
definition language. Spring is intrinsically distributed, with all system
interfaces being accessible both locally and remotely.
-
Synthesis
(Columbia University)
Group Members: Henry Massalin
The Synthesis kernel was one of the first modern operating system
projects to use run-time code generation (which Massalin called code synthesis)
and fine-grained scheduling to construct a system that responded quickly and
dynamically to high-speed devices. The main "draw-back" of Synthesis was that
it was written is 68000 macro-assembler. Synthesis has influnced most of the modern
extensible research operating systems, including SPIN, Aegis, Scout, and Synthetix.
-
Synthetix
(Oregon Graduate Institute)
Group Members: Andrew P. Black,
Charles Consel,
Calton Pu,
et al.
The Synthetix project is investigating the
application of a technique called incremental specialization,
a combination of fine-grain modularity and dynamic code generation, to
create operating systems which are both highly modular and
high-performance. Incremental specialization takes advantage of
particular circumstances, not just at compile time, but also at load
time and run time, to make specialized optimizations.
-
Vino
(Harvard University)
VINO's key attributes are reusability of kernel mechanisms by
user-level applications, application-directed kernel policy, and an
access-method paradigm similar to that used by database management
systems. The goal of VINO is to reduce the size of conventional
operating systems by leaving the definition of complex kernel policies
with applications. Additionally, the VINO system will provide improved
performance for applications, since they can retain more control over
their resources. Finally, VINO is designed to enable the development
of new applications, such as real-time video, that require explicit
control of system resources.
-
x-kernel
(University of Arizona)
The x-kernel is an object-based framework for implementing
network protocols. It defines an interface that protocols use to
invoke operations on one another (i.e., to send a message to and
receive a message from an adjacent protocol) and a collection of
libraries for manipulating messages, participant addresses, events,
associative memory tables (maps), threads, and so on.