Verständnisfrage zu Java-Prozesoren

Hallo zusammen!

Zur Zeit beschäftige ich mich mit Prozessoren, die den Java Bytecode direkt ausführen können - speziell picoJava-II.

Jedoch habe ich ein kleines Verständnisproblem bezüglich der Verarbeitung von hardwarenahen Befehlen, welche in Java nicht vorhanden sind. Dafür gibt es ja die Möglichkeit, diese in C/C++ zu implemetieren und dann einzubinden. Mir ist aber nicht klar wie das genau funktioniert.

Ich habe das so verstanden:
Es gibt einen Compiler, der C/C++ Code in Java Bytecode übersetzen kann. (Dieser Bytecode kann nun auf alle hardwarenahen Elemente zugreifen.) Diese Bytecode-Funtionen wird im externen RAM außerhalb vom picoJava-II Kern abgelegt und können aus dem Java Programm heraus aufgerufen werden.

Ist das so richtig? Wie sieht denn ein Aufruf aus einem Java-Programm aus. Warum meckert der Java-Compiler nicht, dass diese Methode nicht existiert?
Welche Rolle spielt da das Betriebbsystem?

Über eine kurze Bestätigung (gerne auch weitere Informationen) würde ich mich sehr freuen!

Gruß,
Mac

Moien

Jedoch habe ich ein kleines Verständnisproblem bezüglich der
Verarbeitung von hardwarenahen Befehlen, welche in Java nicht
vorhanden sind. Dafür gibt es ja die Möglichkeit, diese in
C/C++ zu implemetieren und dann einzubinden. Mir ist aber
nicht klar wie das genau funktioniert.

Von welchen Befehlen sprichst du genau? Die die intern benutzt werden oder von Benutzer via JNI angelegte Sachen?

Die Internen werden von der CPU implementiert und müssen gar nicht weiter vom javacode aufgegriffen werden.

cu

Hi pumpkin,

Von welchen Befehlen sprichst du genau? Die die intern benutzt
werden oder von Benutzer via JNI angelegte Sachen?

Der Befehlssatz von picoJava-II umfasst etwa 30 Befehle, die aufgrund ihrer Komplexität nicht in Hardware realisiert werden können, sondern durch Softwareroutinen abgearbeitet werden müssen und auf die Hardware zugereifen müssen (z. B. „new“).
Auf diese Befehle bezog sich meine ursprüngliche Frage: Wie werden sie kompiliert? Wo liegen sie? Wie ist die Interaktion mit der JVM um dem OS?

Falls dazu etwas weißt, bitte immer her damit!

Danke,
Mac