JVM on Barrelfish
Summary:
What should the interface between a language/VM runtime and an operating system be?
Motivation:
Barrelfish is a new operating system being developed within the Systems Group targeting future multicore architectures. It eschews the traditional POSIX system call API in favour of a model that exposes the underlying concurrency and hardware heterogeneity; for example, user-level processes explicitly manage their own address space (with the help of a library) and schedule their own threads. High-level languages, including Java, can benefit from such an interface: thread creation can be cheap, and a number of optimisations that require hardware awareness become possible.
Goals:
Bring up an open-source JVM (such as the Jikes RVM, although this may be negotiated) on Barrelfish; this may involve both porting the JVM to Barrelfish but also adapting the Barrelfish interfaces and libraries to the JVM. Then explore one or more of the following research ideas:
- Integration of garbage collection policies with virtual memory system behaviour
- Explicit management of concurrency with scheduler activations and user-level threads
- JVM design for multi-core systems
- ...
Technologies:
C, Java, OS API design, language runtime implementation.
Previous:
Storage layer for Barrelfish



