Techniques for the design of java operating systems

  • Authors:
  • Godmar Back;Patrick Tullmann;Leigh Stoller;Wilson C. Hsieh;Jay Lepreau

  • Affiliations:
  • Department of Computer Science, University of Utah;Department of Computer Science, University of Utah;Department of Computer Science, University of Utah;Department of Computer Science, University of Utah;Department of Computer Science, University of Utah

  • Venue:
  • ATEC '00 Proceedings of the annual conference on USENIX Annual Technical Conference
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

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.