| Zeile 18: | Zeile 18: | ||
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- | + | Praktisch ist das jedoch nur mit relativ hohem Programmieraufwand möglich. Denn Java unterstützt weder Zeiger noch [[Inline-Assembler | 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) | + | 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) oder eine Assembler-Datei, sofern nicht bei den C-Funktionen Inline-Assembler verwendet wurde. |
=== Beispielkernel in Java === | === Beispielkernel in Java === | ||
TODO... | TODO... | ||
| − | == | + | == Bekannte Projekte == |
Ein Betriebssystem, das auf Java basiert, nennt sich JOS (Java Operating System) und ist unter [http://jos.sourceforge.net/ sourceforge.net] zu finden. | Ein Betriebssystem, das auf Java basiert, nennt sich JOS (Java Operating System) und ist unter [http://jos.sourceforge.net/ sourceforge.net] zu finden. | ||