# JanosVM: A resource aware Java Virtual Machine

NOTE: This documenation is superceded by manual.ps, but is maintained here for historic reasons.

#### Introduction

JanosVM is a version of the Kaffe Java Virtual Machine that provides resource management and separation between programs running in a single instance of the JVM. It is not intended to provide a fully functional interface for controlling untrusted user code. Instead, JanosVM exports a number of primitives that can be used to support a library that provides customized interfaces for running untrusted user code.

JanosVM is derived from Godmar Back's KaffeOS, also from our group at the University of Utah. (JanosVM uses the same garbage collector but many of the other internals are different.)

#### Contents

This document is intended as a high level introduction to JanosVM. More detail can be found in the associated source files once you've grasped the general workings presented here.

- Introduction - A short overview of the system and its motivation.
- JanosVM Tutorial - A modest tutorial on using the JanosVM extensions.
- Comparison - A comparison to other Java operating systems.
- Teams - An overview of the JanosVM "team" concept. Teams provide to Java code a Unix process-like abstraction.
- Resources - Overview of the JanosVM resource tracking mechanisms and internal data structures.
- Man Pages:
  - janosvm
  - jsihey
- API Documentation - Javadoc-generated documentation of the public JanosVM Java library APIs.

Copyright (c) 2000, 2001 The University of Utah and the Flux Group.
All rights reserved.
Permission to use, copy, modify, distribute, and sell this documentation for any purpose is hereby granted without fee, provided that the above copyright notice(s) appear in all copies.