Vanguard: `Recursive' OS from Apple

Rainer Blome
Sat, 1 Jul 1995 18:43:19 +0200

this stuff on looks interesting.
anybody has this as a ps file?


#54 Recursive Structuring of Operating System Kernels 
by: Mark Hennecke, Ross Finlayson, and Steven L. Goldberg; January 13, 1994


Operating systems have evolved from rigid, monolithic designs to more
flexible, modular designs built around a small kernel (sometimes called a
nucleus or microkernel). Kernel-based designs increase an operating
system’s flexibility by allowing higher-level OS services (such as file
systems) to be implemented as configurable modules, above the kernel. In
turn, these higher-level services become more maintainable and portable,
not only because they are isolated from the kernel, but also becuase they
make use of a well-defined set of lower-level abstractions-such as
lightweight processes and location-trasparent IPC-exported by the kernel.

Unfortunely, typical operating system kernels cannot make use of the
abstractions that they export to higher levels of the system. In
particular, alghough a running kernel consists of concurrently-excuting
activities that communicate and synchronize with one another, it cannot use
its exported lightweight process and IPC primitives within its own
implementationl. Consequently, kernels, although now much smaller than the
operating system as a whole, remain largely monolithic, and are not as
flexible and maintainable as the higher-level services that are built upon

In this paper, the authors describe recusive operating system kernels, in
which the abstractions exported by a kernel are also used in its
implementation. In particular, they describe the recursive design and
implementation of the Vanguard operating system kernel, and use it to
illustrate the benefits of this approach. Finally, the authors analyze the
inherent performance overhead introduced by a recursive kernel such as
Vanguard, and discuss the circumstances that make this overhead acceptable.

#55 From V to Vanguard:
The Evolution of a Distributed, Object-Oriented Microkernel Interface
Mark Hennecke, Ross Finlayson and Steven L. Goldberg; January 13, 1994 


The Vanguard operating system kernel was designed and implemented as a
research testbed for distributed applications and higher-level operating
system services. Using the design of the V-System as a starting point, the
authors developed an extensible set of operating system services, organized
in an object type hierarchy.  They authors also implemented a modular OS
microkernel that implements these services.

An important part of any microkernel design is its exported interface, as
the design of this interface affects the ease with which programmers can
develop higher-level operating system services on top of the kernel.  In
this paper, several notable features of the Vanguard microkernel interface
are described — in particular, its process and object model, its object
identification scheme, and its use of group communication. The authors show
how these features lead to a simple yet powerful interface that avoids the
need to provide an excessive number of operations.