Menü
Developer

Red-Hat-Entwickler portieren OpenJDK für ARM64

vorlesen Drucken Kommentare lesen 17 Beiträge

Entwickler von Red Hat arbeiten daran, das OpenJDK auf die 64-Bit-Architektur von ARM zu portieren. Laut Andrew Haley, der auch Mitglied der JCP Expert Group für Java 8 ist, hat der Linux-Distributor mit der Entwicklung begonnen, weil die gegenwärtige Situation für ein OpenJDK auf der ARM-Plattform nicht zufriedenstellend sei. Deshalb wolle das Unternehmen es mit ARMv8/A64 besser machen. Dadurch dass ARM einen neuen Befehlssatz für 64-Bit-Systeme begonnen und nicht den bestehenden 32-Bit-Satz erweitert habe, sei es notwendig, sich mit ARMv8 auseinanderzusetzen und neue Compiler und JVMs (Java Virtual Machines) zu erstellen.

Haley führt weiter aus, es gebe gegenwärtig für 32-Bit-Systeme von ARM zwei Versionen der HotSpotJVM, eine proprietäre von Oracle und eine speziell für ARM geschriebene, die frei verfügbar sei. Oracles virtuelle Maschine mit JIT-Compiler (Just-In-Time) verhalte sich besser als die kostenlose mit einem abgespeckten JIT. Diese Situation wolle Red Hat unter keinen Umständen für ARMs 64-Bit-Architektur, schreibt Haley. Deswegen werde das Unternehmen eine Portierung schreiben, die komplett Open-Source-Software sein und als OpenJDK-Projekt der Java-Community übergeben werde, an dem dann auch andere Entwickler mitwirken können.

Eine Aufgabe sind die Entwickler anscheinend bereits angegangen. Da es bislang keine richtige Hardware für ARMv8 gebe, haben sie einen einfachen CPU-Simulator geschrieben, mit dem die Entwicklung getestet werden könne. Sie erwarten allerdings, dass noch einige Probleme auftauchen, wenn die Software zum ersten Mal auf richtiger Hardware laufen werde. Der sogenannte Template Interpreter, die Basis für jede HotSport-Portierung, ist offenbar fast fertig. Haley hofft, dass eine vorläufige Version davon bis Weihnachten vorliegt. Gegenwärtig können die Entwickler noch nichts Konkretes vorzeigen, da die Ergebnisse noch unter einer Verschwiegenheitsvereinbarung lägen, die aber schon bald gelockert werden soll.

Das Interpreter-Release werde eine vollständige Implementierung sein, die allerdings nicht sehr schnell sei. Außerdem müsse noch an zwei unterschiedlichen Compiler-Techniken gearbeitet werden: C1, Client-JIT, und C2, Server-JIT. Der Client-JIT-Compiler stand offenbar ursprünglich gar nicht auf dem Plan der Entwickler, aber es ist anscheinend mit ihm einfacher, die neue Prozessorarchitektur zu verstehen, um den Server-JIT zu entwickeln. Außerdem könnte es den Weg für eine abgestufte Kompilierung bereiten, bei der Client-JIT den Code zuerst kompiliert und danach die inflationär verwendeten Methoden durch die Server-JIT erneut kompiliert würden. (ane)