USENIX Technical Program - Abstract - USENIX Annual
Conference, General Session - June 2000
Techniques for the Design of Java Operating Systems
Godmar Back, Patrick Tullmann, Leigh Stoller, Wilson C. Hsieh, and
Jay Lepreau, University of Utah
Abstract
Language-based extensible systems, such as Java Virtual Machines and
SPIN, use type safety to provide memory safety in a single address
space. By using software to provide safety, they can support more
efficient IPC. Memory safety alone, however, is not sufficient to
protect different applications from each other. Such systems need to
support a process model that enables the control and management
of computational resources. In particular, language-based extensible
systems should support resource control mechanisms analogous to those in
standard operating systems. They need to support the separation of
processes and limit their use of resources, but still support safe and
efficient IPC.
We demonstrate how this challenge is being addressed in several
Java-based systems. First, we lay out the design choices when
implementing a process model in Java. Second, we compare the solutions
that have been explored in several projects: Alta, K0, and the J-Kernel.
Alta closely models the Fluke operating system; K0 is similar to a
traditional monolithic kernel; and the J-Kernel resembles a
microkernel-based system. We compare how these systems support resource
control, and explore the tradeoffs between the various designs.
|