Alta demonstrates the applicability of operating system concepts to a Java
virtual machine, leveraging type-safety where a traditional operating system
would leverage hardware-based protection mechanisms. Alta is also evidence that
standard operating system abstractions can be easily implemented in Java, and
that traditional kernel implementation techniques are applicable in a Java-based
The work presented in this thesis makes the following four additional
contributions to language-based operating system research:
- Extensions to the Java type system to support safe sharing between
different applications and a facility for renaming classes: Definitions
of class and class equality in a system with partially inconsistent
typespaces were presented along with a simple algorithm for
determining if two classes are safe for sharing between disjoint
- Implementation of the Fluke nested process model in Java: Alta
demonstrates the applicability of Fluke's nested process model to Java.
By duplicating the design, and in many ways the implementation,
of Fluke in Alta, I was able to evaluate the influence of Java's
programming model on Alta's structure. Additionally, using several
detailed performance studies, I identified some of the strengths and
weaknesses of Java as a systems programming language.
- Support for multiple applications in a single Java virtual machine:
Alta demonstrates that a language-based operating system can, to
a large degree, control and separate applications as effectively as
a traditional, hardware-based operating system without sacrificing
Java's safe, fine-grained sharing.
- Mechanisms for resource control in a Java virtual machine: Direct
mechanisms to account for the total memory usage of a Java
application were demonstrated for Alta. Capabilities, a standard
operating system abstraction, were demonstrated as a mechanism for
controlling secondary resources such as files and the file system.