Besondere Eigenschaften

Die Kertasarie VM wurde unter Berücksichtigung der folgenden Ziele entwickelt:

Java 2 Standard
Netzwerkzentrierung
Portabilität
Skalierbarkeit,
Integrierter Remote Debugger (Debugging laufender Applikationen über das Netzwerk)
Eigenes GUI-System
Echtzeitfähigkeiten



Netzwerkzentrierung

Im Gegensatz zu vielen anderen JVMs für eingebettete System unterstützt die Kertasarie die Socketschnittstelle. Zudem werden das volle Reflection-API und die Klassen zur generischen Objekt-Serialisierung bereitgestellt. Das eröffnet die Möglichkeit, Middleware-Architekturen wie RMI oder CORBA auch für eingebettete Systeme anbietenzu können.

Portabilität

Die Kertasarie VM ist strikt ANSI-C konform, was die Portierung auf andere Systeme erheblich vereinfacht. Der plattformspezifische Code ist zudem stark gekapselt. Die Kertasarie VM implementiert ihr eigenes Threading-Modell um die quasi-parallele Abarbeitung von Java Threads zu ermöglichen (green threads Modell). Das darunterliegende Betriebssystem muss demzufolge keine Threads bereitstellen, was die Portierung weiter stark vereinfacht.

Skalierbarkeit

Die Skalierbarkeit der Kertasarie VM wird durch verschiedene Maßnahmen erreicht. Es ist zur Compile-Zeit der virtuellen Maschine möglich, bestimmte, nicht benötigte Funktionalitäten auszuschließen. Das kann die Codegröße erheblich verringern. Zudem kann die Größe einer Java Applikation wie auch das Java API stark minimiert werden. Da in eingebetteten Systemen oft nur eine einzige Applikation läuft, ist es möglich, das API entprechend für die Applikatio anzupassen. Zu diesem Zweck existiert eine Toolsuite, die für eine oder mehrere Applikationen das Java API um nicht benötigte Methoden und Klassen bereinigt. Typischerweise werden ca. 50% der Methoden aus dem API entfernt. In einem weiteren Schritt kann dieses API in die internen Strukturen der Kertasarie VM überführt werden. Dadurch ist es zum Einen möglich den Classloader in der VM
einzusparen. Außerdem wird das API damit ROM-fähig, was für viele eingebettete Systeme ein erheblicher Vorteil ist.

GUI

Bestehende GUI-Systeme für Java berücksichtigen selten die beschränkten Ressourcen in eingebetten Systemen. Die Standard Windowing-Toolkits wie AWT oder Swing sind viel zu groß für eine Integration in limitierten Geräten wie PDAs. Insbesondere sind die GUI-Komponenten (Buttons, Slider, Menüs etc.) viel zu groß für die oft recht kleinen Displays.
Das GUI-System der Kertasarie VM ist verfügbar für Windows CE, PalmOS und Linux/Unix. Es werden die vom Betriebssystem bereitgestellten GUI-Controls verwendet. Daraus resultiert zum einem in ein relativ kompaktes und schnelles System. Zudem ist ein weiterer Vorteil, dass eine Java-Applikation unter Windows CE wie eine Windows CE Applikation aussieht und benutzbar ist, auf dem Palm entsprechend wie eine PalmOS Applikation.
Für die Unix/Linux-Implementierung wurde das GIMP Toolkit (GTK) als Basis gewählt. GTK wurde ausgewählt, da es eine einfache Anbindung an C-Programme ermöglicht und zudem in einer Framebuffer-Version verfügbar ist. Das erlaubt eine einfache Portierung auf eingebettete Systeme, die unter Linux laufen.
Ein weiterer wichtiger Vorteil der Linux-Implementierung ist, dass ein einfaches und schnelles Rapid-Prototyping für die mobile Geräte möglich ist.

Echtzeitfähigkeiten

Die Kertasarie VM implementiert ein striktes highest-priority-first Scheduling-Verfahren. Um den Ausschluss der Abarbeitung von hoch priorisierten Threads durch niedrig priorisierte zu vermeiden (priority inversion), wurde in der Kertasarie VM das priority-inheritance-Verfahren implementiert.

 
       
 
© GIANT mbH
Aktualisiert: 01/26/2005