2009-08-19 7 views
0

Normalerweise werden Boot Strap Loader in Assemblersprachen geschrieben. Ist es möglich, es mit Java mit nativer Schnittstelle zu punktieren.Bootstrap Loader mit Java

Antwort

2

Es gibt einige mögliche Lösungen:

  1. Es existiert Hardware, die in der Lage zu Java-Bytecode auszuführen.
  2. Sie können auch Java-Code zu nativen Code mit verschiedenen Compiler kompilieren.
  3. Schließlich können Sie einen Mini-Lader haben, der startet den Rest des Prozesses in Java.

Keine dieser Lösungen ist einfach oder macht zu viel Sinn. Aber möglich - ja.

Der Vollständigkeit halber: JNode ist ein Projekt mit dem Ziel, ein PC-Betriebssystem in Java zu erstellen.

Auch Antworten auf this question können hilfreich sein. Es fragt nach Gerätetreibern in Java, und das ist nicht die gleiche Frage, aber einige der Lösungen, die in den Antworten vorgestellt werden, können auch bei Ihrer Frage hilfreich sein.

+1

+1 für die Erwähnung von JNode –

0

Natürlich ist es. Eine bessere Frage wäre, ob es praktikabel ist oder nicht, und ob es im Vergleich zu bestehenden Methoden Vorteile bringen würde, die die Implementierungszeit wert sind.

1

Ich möchte nicht ein klares Nein sagen, denn ich bin mir sicher, wenn ich jemanden hätte, würde mir das einfallen, aber das wäre sicherlich SEHR schwierig (und möglicherweise fruchtlos).

Damit Java auf einer JVM ausgeführt wird, müssen Sie nativ eine ausreichende Menge des Betriebssystems nativ booten, so dass die Umstellung auf Java eine Zeitverschwendung wäre (es würde wirklich nicht viel anderes als Komplexität hinzufügen).

Es gibt Geräte, die "nativ" Bytecode ausführen können, wo es möglicherweise möglich ist, aber ich denke nicht, dass dies die meiste Zeit möglich ist.

0

@Mnementh erwähnte JNode. Für die Aufnahme verwendet JNode GRUB als Bootstrap Loader.

Ich stimme mit @Mnementh überein, dass die Implementierung eines Bootloaders in Java technisch möglich wäre, obwohl wahrscheinlich schwierig. Aber meine Frage an das OP ist: "Warum willst du es machen?". Ich verstehe den Punkt nicht.

+0

nicht im praktischen Sinne. Aber etwas Neugier zu wissen, ist es möglich oder nicht. (Könnte wegen Mangel an Wissen in JVM sein. Entschuldigen Sie mich ... dafür ..) –