Login
Newsletter
Werbung

So, 7. August 2005, 00:00

GNU Classpath - Einer für alle, alle für einen

Mit dieser Artikelserie wird umfassend über GNU Classpath und seine wichtigsten Schwesterprojekte informiert.

Motivation 2

Mit dieser Artikelserie will ich euch umfassend über GNU Classpath und seine wichtigsten Schwesterprojekte informieren. Wer sich ein bisschen Zeit zum Lesen nimmt, dessen Wahrnehmung bezüglich Java in der freien Software-Community wird gründlich umgekrempelt.

Dieser Artikel richtet sich vorrangig an Java-Entwickler, aber auch an Entwickler anderer beliebter Programmiersprachen.

Worum geht es denn dieses Mal?

Nachdem ich im ersten Artikel Hintergrundinformationen zu unserem Projekt und seiner Geschichte gegeben habe und dabei technisch nicht so sehr in die Tiefe gegangen bin, hole ich dies jetzt nach.

Im Umkreis von GNU Classpath haben sich viele freie Softwareprojekte angesiedelt. Ein Teil davon sind virtuelle Maschinen in verschiedenen Ausprägungen. Daneben gibt es aber noch Spracherweiterungen, ein Betriebssystem sowie klassische Java-Sprachbindungen.

Es kommt mir darauf an zu zeigen, dass es um GNU Classpath herum turbulent zugeht und sich viele interessante Sachen anbahnen oder schon im vollen Gange sind. Vielleicht findet der eine oder andere ein vorgestelltes Projekt sogar so spannend, dass er oder sie es nutzen oder sogar aktiv unterstützen möchte. Freie Software lebt schließlich vom Mitmachen!

Neben den Projektvorstellungen behandle ich aber auch die Themen, welche von den Lesern des ersten Artikels vorgeschlagen wurden. Ich bedanke mich daher für eure Mithilfe und hoffe, diese Fragen gründlich beantwortet zu haben. Auch dieses Mal rufe ich dazu auf, Vorschläge für den kommenden Teil der Artikelserie zu machen.

Hinweisen möchte ich auch darauf, dass ich meine Arbeit unter einer Copyleft-Lizenz der Creative Commons zur Verfügung stelle und es in meinem Interesse ist, dass ihr das Material weiterverwendet.

Live-Berichte von Entwicklern sind eine gute Sache

Diese Aussage befand sich unter den Kommentaren zu meinem ersten Artikel und es freut mich sehr, dass dieser Aspekt hervorgehoben wurde. Meine Intention ist es, einerseits über unser Projekt zu informieren und gleichzeitig die freiwillige Arbeit meiner Freunde bei GNU Classpath und seinen Schwesterprojekten ein wenig zu würdigen.

Ich fände es große Klasse, wenn sich auch andere freie Softwareprojekte vorstellen und über ihre Tätigkeiten berichten würden. Die Gemeinschaft der freien Software kann davon nur profitieren.

Als ich mir im März 2005 die ersten Gedanken zu dieser Artikelserie machte, waren es vor allem die groben Mißverständnisse bezüglich unseres Projektes, die ich widerlegen und dies schriftlich festhalten wollte. Vielleicht gibt es ja so etwas Ähnliches auch in deinem Projekt...

Freie Entscheidung zu haben ist eine gute Sache

Ein Leser hat hervorgehoben, dass GNU Classpath und GCJ weitere Möglichkeiten für Programmierer eröffnen, Anwendungen für den GNOME-Desktop zu erstellen. Diese Aussage können die Classpath-Entwickler mit bestem Gewissen unterschreiben: Wir möchten nicht das Monopol einer bestimmten Programmiersprache oder Plattform fördern, sondern zu einer Vielfalt von solchen beitragen.

Die Möglichkeit, Anwendungen für den GNOME-Desktop in Java zu schreiben, ermöglicht das Projekt java-gnome, welches ich weiter unten vorstelle.

Natürlich gibt es nicht nur GNOME. Leider ist KDE bei uns momentan unterrepräsentiert. Es gibt jedoch von unserer Seite her keine Vorbehalte, die eine Initiative wie die Entwicklung von AWT-Klassen auf Basis von Qt beeinträchtigen würden. Lediglich ein paar Freiwillige sind dazu notwendig.

Virtuelle Maschinen und was dem nahe kommt

Soviele Projekte oder wie Vielfalt Trumpf sein kann

Die folgenden Seiten werden zehn Projekte vorstellen, die eine Laufzeitumgebung für Java-Programme darstellen. Diese hohe Zahl an Projekten ist vorrangig auf die verschiedenen Vorstellungen zu Java-VMs ihrer jeweiligen Gründer zurückzuführen. Durch den Einsatz von Classpath und das Hinzufügen von Portierungen haben sich heute die Unterschiede zwischen den Projekten verringert.

Nichtsdestotrotz haben alle die im folgenden vorgestellten Laufzeitumgebungen innovative Besonderheiten, deren Konzepte und Techniken einmal allen VMs zugute kommen werden.

JamVM

Robert Lougher hat mit JamVM eine ausschließlich interpretierende VM geschrieben. Das Binary ist sehr klein (etwa 100 KiB) und hat nur wenige Abhängigkeiten zu anderen Bibliotheken. Auf diese Weise eignet es sich gut für eingebettete Systeme. JamVM wird hauptsächlich auf der PowerPC-Architektur entwickelt, ist aber auch für x86- und Arm-Prozessoren optimiert. Als Betriebssystem setzt JamVM momentan eine POSIX-Umgebung voraus, getestet sind derzeit GNU/Linux und Mac OS X. Die kleine VM ist bei Classpath-Entwicklern beliebt, da es mit ihr sehr einfach möglich ist, die Classpath-Version aus dem eigenen Arbeitsverzeichnis zu benutzen und somit Änderungen ohne großen Aufwand zu testen.

CacaoVM

Demonstration von SableVMs Unterstützung für die Java-Debugging-Schnittstelle JVMDI

Robert Schuster

Demonstration von SableVMs Unterstützung für die Java-Debugging-Schnittstelle JVMDI

CacaoVM ist eine seit 1996 in der Entwicklung befindliche virtuelle Maschine der Technischen Universität Wien. Sie zeichnet sich durch eine neuartige Herangehensweise bei der Just-In-Time (JIT)-Kompilierung aus, die für ihre Effizienz bekannt ist. Sie wurde vorrangig für 64-Bit RISC-Architekturen (viele Register) entworfen, läuft aber heute auch auf CISC-Architekturen wie den x86-Prozessoren. Im Dezember 2004 wurde CacaoVM freie Software unter der GNU GPL. Mit dem Release 0.92 (14.Juli 2005) ist es nun auch hier möglich, Classpath out-of-the box zu nutzen.

SableVM

SableVM bezeichnet sich als eine robuste, extrem einfach zu portierende, effiziente und spezifikations-treue virtuelle Maschine. Das von Etienne Gagnon als Forschungsarbeit gestartete Projekt ist heute die erste freie virtuelle Maschine mit der Debugging-Schnittstelle JVMDI. Die Portabilität soll so hoch sein, dass SableVM binnen einer Stunde an eine neue Plattform angepasst werden kann.

IKVM.NET

Bei Jeroen Frijters IKVM.NET handelt es sich um eine virtuelle Maschine mit dem Ziel, .NET und Java zu verbinden. Zum gegenwärtigen Zeitpunkt werden Mono und das .NET-Framework von Microsoft unterstützt.

IKVM.NET besitzt zwei Betriebsmodi: Im dynamischen Modus werden normale Java-Anwendungen ausgeführt und zur Laufzeit in die Common Intermediate Language (CIL) übersetzt. Im statischen Modus hingegen werden mit Hilfe eines speziellen Compilers die Java-Klassen in ein .NET-Assembly umgewandelt, welches dann beispielsweise mit Mono ausgeführt werden kann. Die Integration der Welten kommt schlußendlich dadurch zustande, dass IKVM.NET den Zugriff auf die jeweils andere Klassenbibliothek erlaubt.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung