|
|
|
Project OverviewJaos (Java on Active Object System) is a Java Virtual Machine for the Bluebottle System and a case study in interoperability between the Oberon and Java Languages. Bluebottle is an small and efficient native kernel built using active objects. It is one result of the Active Objects research project of the Programming Languages and Run-Time Systems Research Group of the Institute for Computer Systems at ETH. Bluebottle provides many services; garbage collected memory, active objects (concurrency, synchronization and protection), exception handling and dynamic loading are used to implement Jaos. Jaos is deeply integrated in Bluebottle to take advantage of its services. This greatly simplifies the implementation, because many complex components needed by the JVM are already available (i.e. garbage collection, memory management, support for types and method tables). Using standard services also greatly simplifies interoperation among software that relies on those services, in particular the Active Oberon Language and the Native Oberon OS. Jaos uses the Gnu Classpath Java APIs. Changes to the API implementation were done for bootstrapping reasons, but as the implementation progresses, it should be possible to remove them and use Classpath out-of-the-box. The modified classes are Character and VMSystem. GoalsThe Jaos Project has the following goals:
One implication of these goals is quite interesting: Jaos can be easily turned into a native JVM, which runs directly on the machine without host OS. Description
Contributions
External Contributions and Acknowledgements
State of ImplementationJaos fully implements all features in the Java language, including garbage collection, interfaces, and exception handling. Jaos can run Java applications that use textual IO (using System.out and System.in); file access is also supported. Not supported are java/net and java/awt (thus no applet support either). |
|
(c) Patrik Reali, Institute for Computer Systems, ETH Zurich Last update: 03 Aug 2003 Send comments to Patrik Reali |