| Zeile 16: | Zeile 16: | ||
Wie oben bereits erwähnt, gibt es durchaus auch Java - Compiler, die keinen Bytecode, sondern normalen Maschinencode erzeugen können, z. B. Excelsior JET und der GNU Compiler for Java (GCJ). Dadurch ist es zumindest theoretisch möglich, einen [[Kernel]] in Java zu implementieren. | Wie oben bereits erwähnt, gibt es durchaus auch Java - Compiler, die keinen Bytecode, sondern normalen Maschinencode erzeugen können, z. B. Excelsior JET und der GNU Compiler for Java (GCJ). Dadurch ist es zumindest theoretisch möglich, einen [[Kernel]] in Java zu implementieren. | ||
| − | Praktisch ist das jedoch nur mit relativ hohem Programmieraufwand möglich. Denn Java unterstützt weder Zeiger noch Inline - [[Assembler]], weshalb man direkte Hardwarezugriffe in externen Funktionen implementieren müsste, die dann beim Linken eingebunden werden. | + | Praktisch ist das jedoch nur mit relativ hohem Programmieraufwand möglich. Denn Java unterstützt weder Zeiger noch Inline - [[Assembler]], weshalb man direkte [[:Kategorie:Hardware | Hardwarezugriffe]] in externen Funktionen implementieren müsste, die dann beim Linken eingebunden werden können. |
| + | |||
| + | Beispielsweise bräuchte man eine Java - Datei, die den Kernel enthält, eine C - Datei, in der grundlegende Funktionen zum Hardwarezugriff implementiert sind (z. B. eine Funktion, die den Wert der angegebenen Speicheradresse zurückgibt bzw. ändert) und eventuell noch eine Assembler - Datei, sofern nicht bereits bei den C - Funktionen Inline - Assembler verwendet wurde. | ||
| + | |||
| + | === Beispielkernel in Java === | ||
| + | TODO... | ||