Hi,
nur mal als Frage, was würdet ihr von einer Java-Laufzeitumgebung als TAP halten? Nützlich oder Blödsinn?
Beispielsweise könnte man versuchen, Sun's im C-Quellcode gelieferte portable Java VM (KVM) als TAP auf den Topf zu portieren.
Zusätzlich müsste man das TAP-API z.B. via KNI (K native interface) anbinden.
Besonders cool wäre es, die TAP API dann noch so weit wie möglich auf die standard Java TV API abzubilden.
Ich sehe diese Vorteile:
- Vereinfachung der TAP-Entwicklung durch Java (ich will keinen Programmiersprachenstreit vom Zaun brechen, behaupte aber mal, wer C kann, lernt Java schnell, aber nicht umgekehrt).
- Mehr Sicherheit bei Java-basierten TAP, diese sollten z.B. keine nicht für sie bestimmten Speicherbereiche überschreiben können.
- Java-basierte TAPs könnten unabhängig vom inzwischen "versteckten" GCC for TAP erstellt werden.
- Die KVM bringt eine eigene, feiner granulierte Speicherverwaltung mit (statt vielfache von ca. 1 kb)
- Verfügbarkeit von Standardbibliotheken, z.B. für Streams und Datenstrukturen
- Vermutlich ließe sich relativ leicht eine Debugging-Schnittstelle realisieren
Java auf dem Topf?
Ich spreche zwar kein Java, bin aber davon übezeugt, dass die Engine neben der Interpreterfunktion zumindest die Standardbibliotheken OS-gerecht einbinden muss (der Interpreter an sich kann ja nicht wissen, wie das OS z.B. Dateifunktionen gerne hätte).
Wie viel man davon mittels der API oder gar FW-Hacks davon hin bekommt ist eine Sache (ich befürchte zu wenig).
Die andere Sache ist, dass ich dem zarten Prozessörchen und dem arg begrenztem RAM kein Java zutraue.
Wie viel man davon mittels der API oder gar FW-Hacks davon hin bekommt ist eine Sache (ich befürchte zu wenig).
Die andere Sache ist, dass ich dem zarten Prozessörchen und dem arg begrenztem RAM kein Java zutraue.
Gruss
Harvey
Harvey
Es ist richtig, dass Dateifunktionen oder Speicherallokation über das TAP-Api angebunden werden müssten, aber ich sehe keine Notwendigkeit, auf FW-Hacks zurück greifen zu müssen.
Die Hardwareanforderungen der KVM dürfte der Topf weit übererfüllen. Zitat:
The high-level design goal for the KVM was to create the smallest possible
?complete? Java virtual machine that would maintain all the central aspects of
the Java programming language, and that would nevertheless run in a
resource-constrained device with only a few tens or hundreds of kilobytes of
available memory.
Auf dem Topf stehen m.W. dagegen ca. 30 MB für Anwendungen zur Verfügung.
Mir ging es jedoch eher um die Frage, ob es sinvoll wäre, Java zur Entwicklung von TAPs zur Verfügung zu haben. Z.B. könnte ich Ebers ersten Beitrag in diesem Thread dahingehend verstehen. Falsche Pointer oder Bufferoverflows bzw. unzulässige Indexes bei Arrays gibts bei Java nicht, wenn die API einmal korrekt angebunden wurde.
Die Hardwareanforderungen der KVM dürfte der Topf weit übererfüllen. Zitat:
The high-level design goal for the KVM was to create the smallest possible
?complete? Java virtual machine that would maintain all the central aspects of
the Java programming language, and that would nevertheless run in a
resource-constrained device with only a few tens or hundreds of kilobytes of
available memory.
Auf dem Topf stehen m.W. dagegen ca. 30 MB für Anwendungen zur Verfügung.
Mir ging es jedoch eher um die Frage, ob es sinvoll wäre, Java zur Entwicklung von TAPs zur Verfügung zu haben. Z.B. könnte ich Ebers ersten Beitrag in diesem Thread dahingehend verstehen. Falsche Pointer oder Bufferoverflows bzw. unzulässige Indexes bei Arrays gibts bei Java nicht, wenn die API einmal korrekt angebunden wurde.

