classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Jaos, a JVM for Oberon


From: reali
Subject: Jaos, a JVM for Oberon
Date: Thu, 8 Nov 2001 16:12:46 +0100 (MET)

I'm working on the ETH Oberon System (http://www.oberon.ethz.ch/).
Oberon is both a language and an OS. Our language is a pragmatical mix
between imperative and object oriented language, is strongly typed,
is garbage collected, and has active objects. The modules are
dynamically loaded. The underlying kernel supports those features.

Modules are loaded and linked dynamically. I can release a single
module X in binary form. The system checks if the modules imported by X
are available and compatible and then loads + links them.

Java has many similarities, so it is almost obvious to provide a JVM for
our system, as we already have a kernel with integrated GC. The JVM is
basically an exercise in mapping the Java structures to our kernel ones.
 
The JVM loads the java byte-code, compiles it using our conventions (object
layout, calling convention, memory organization, ...), links it, and 
makes it available for the rest of the system. The whole code is 
written in Oberon, but for VMSystem (when System is loaded, the reflection
API is not bootstrapped, thus I had to supply the code in java).
Classes are compiled and executed on the fly. No executable is created.
The control over the linker allows me to easily override a java
implementation with an Oberon one.

The VM and Classpath need each other. The VM supplies the native routines,
and relies on some libraries (why implement everything twice?).

My goals are two: showing that our kernel is generic enough to support
Java, and allowing the interoperability between Oberon and Java.

I'm currently using classpath as implementation of the java libraries,
almost out of the box (VMSystem and Character are modified). The VM
is already working and I can run some simple applications. Spec
_200 and _201 already run on it.

Now that the project is nearing a mature state, I'm considering about
releasing it, but first our legal department must give its opinion,
and I'm not sure if I'll be able to use an open source license,
if any probably BSD (without adv.), under which we released the previous
version of the system.

-Patrik
--
Patrik Reali, address@hidden
http://www.inf.ethz.ch/personal/reali/
http://www.oberon.ethz.ch/native/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]