Utah Flux Java Projects

  • Projects
  • Software
  • Links
  • Other Flux Projects
  • Utah's Flux Research Group is using Java in several research projects, exploring the intersection of type-safe languages and traditional operating systems. We currently have four related projects targeting systems research in Java.

    * Alta: The Nested Process Model in Java
    Our microkernel-based research operating system, Fluke, was designed to provide strong, hierarchical resource management through a process model we've designed, the "nested process model." Our goal with Alta is to provide a similar OS and process model for Java, using type-safety instead of the MMU to provide protection. We are using Kaffe as the basis for our Alta, along with the Kore class library. We aim to maintain backwards compatibility with "legacy" Java.

    * Kaffe on the OSKit
    We are using Kaffe and our OSKit to develop a stand-alone Java system that uses the OSKit framework and its components (the FreeBSD protocol stack, device drivers, etc.) to enable systems-level programming in Java.

    Look at our OSKit and Kaffe downloads for using the recently-released OSKit with Transvirtual's Kaffe.

    * Janos - a Java OS for Active Networks
    All of these projects are coming together, along with additional research, to build a new operating system we call Janos. Janos is an OSKit-based operating system containing a special Java virtual machine and Java run-time, for executing Java byte code. Janos puts particular emphasis on local-node resource control and security. Although Janos is relevant to any environment running less-than-fully-trusted Java byte code, our focus is on the needs of an active network node.

    For a Janos project overview, see the new base Janos page, a short summary and these slides.

    Software and Documentation We use MIT's Active Node Transfer System (ANTS) system as a component. To support resource management, we have made substantial, but still only a first round, of changes to ANTS 1.2. This version is still entirely user-mode based. We expect to release frequent updates for this version and would appreciate feedback.

    You may download our June 1st release (315K gzip'ed tar file); our changes and their rationale are described in a document in html and Postscript formats. The API is documented in "javadoc" style.

    * Kaffe and Kore infrastructure work
    Kore is a freely available, clean-room re-implementation of the Java core classes (the java.* packages). We have provided the necessary infrastructure to Kaffe so that it can use the Kore libraries. This lets us experiment with changes to the Virtual Machine and the basic set of classes that it uses.

    We maintain a web page with news about Kore and patches for Kaffe.

  • Our Kore page has a set of patches to enable Kaffe to use Kore as its default standard libraries. Our extensions to the ANTS (Active Node Transfer System) platform are now released, as described above.
  • We plan soon to release our enhancements to Kaffe, the Alta Virtual Machine with support for the nested process model.

  • Links:
  • The Kaffe Virtual Machine is a freely redistributable virtual machine for interpreting Java bytecodes. It also support JIT compilation of Java bytecodes.
  • The J-Kernel and SLK projects at Cornell.
  • The Java-based ANTS and the Active Networks project at MIT.
  • BISS AWT is a freely redistributable, clean room, re-implementation of the AWT Toolkit.
  • The JOS Project aims to build a free Java-based Operating System.

  • Other Flux Projects:
    * The OSKit
    The OSKit is a framework and set of modularized library code together with extensive documentation. Its goal is to make it easier for OS developers to create a new OS; to run user code directly on the hardware, including programming language runtimes; to port an existing OS to a platform supported by the OS kit; or to enhance an OS to support a wider range of devices, file system formats, or executable formats.
    * Fluke and Flask
    The Fluke microkernel and OS support the Fluke API. Fluke was designed to provide hierarchical resource control to user-mode processes. Flask is a security-enhanced version of the Fluke kernel and OS, being developed cooperatively by the Utah Flux team and the US Department of Defense.
    * Flick
    The Flick IDL Compiler. Flick is a highly optimizing and flexible IDL compiler that supports multiple IDLs, language presentations, encodings, and transports.

    Back to the Flux Project home page.

    Jay Lepreau
    Dept. of Computer Science
    University of Utah

    Last modified: May 10 1999