Harmony Kernel Documentation


To port the class libraries to a new VM, the VM writer must implement certain Kernel Java classes to the full Java 1.4.2 API specification. (The VM writer must also implement the documented C VM Interface which contains the VM entry points required by other class library natives.)

Kernel Java Classes

The Kernel Java classes are those classes which are tied to the structure of the VM, or whose structure is known by the VM. Most of these classes are defined by the Java 1.4.2 API specification. The IBM VM implementations of these classes are provided in open source. The IBM implementations rely on the presence of (typically) VM specific natives to implement the required Java APIs. Other VM writers can choose to use these implementations, but this forces the writer to use the reference design and the writer must then implement the natives, for which minimal documentation is provided.

All but one of the kernel classes are defined by the public Java 1.4.2 API. These classes, described further in the doxygen class list, belong to the following packages:

The other class is in the org.apache.harmony.kernel.vm package.

Some of the documented classes must be entirely implemented by the VM writer. For other classes the implementation is mostly provided. Some classes are documented so the implementation details can be used by the VM writer. Below is a summary of all the Kernel classes.

Kernel Class Details

The VM writer is expected to entirely implement the classes below. A small number of non-public methods must be implemented in these classes to support other classes (such as java.lang.SecurityManager) as documented in the method descriptions.

The implementation of org.apache.harmony.kernel.vm.VM must be provided by the VM writer. This class provides class loading and stack walking methods that are not available in the public Java API such as a method which enables its caller to obtain the caller's class loader. This class also provides an intern(String) method, which the intern() method of the String implementation in Harmony will call.

The class org.apache.harmony.luni.internal.process.SystemProcess is implemented, but is documented so the VM writer can use this class to implement java.lang.Runtime.exec().

The class java.lang.ref.ReferenceQueue is implemented, but is documented so the VM writer can use the non-public fields and methods in the implementation of java.lang.ref.Reference and its subclasses.

The following classes are implemented, but require a small number of methods to be implemented by the VM writer to complete the implementation. Alternatively, the VM writer can provide their own implementations of these classes.

The class java.lang.StackTraceElement is implemented, but is documented so the VM writer can use the non-public fields and methods in the implementation of java.lang.Throwable.

The implementation of java.lang.ThreadGroup is provided. Certain non-public methods are documented as they are used by the VM when booting the class libraries.

Genereated on Tue Dec 9 14:09:47 2008 by Doxygen.

(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.