Zum Kernel: Den Einsprung macht man in Assembler.
Speicheradressung geht meines Wissens mit C++ (Zeiger). Ok,
meinetwegen, die Prozessor-Register kann man halt nur in
Assembler ansprechen. Aber die Interrupts kann man - soweit ich
weiss - auch mit Assembler empfangen und an C++ weitergeben.
Schließlich werden Treiber ja auch nicht nur in Assembler
geschrieben.
Also verwendest du doch Assembler. Schau dir mal die Linux-
Sourcen an, da findest du auch genügend Assembler-Code.
Achja: RealMode: Nein, danke!
Oder besser doch? Du musst dir für jedes Gerät einen Treiber
basteln, wenn du im ProtectedMode läufst.
Naja, nicht mein Bier.
Der CrossCompiler wird doch nich für TByteOS geschrieben,
sondern TByteOS wird mit dem Crosscompiler geschrieben! Also
egal ob du den Code für TByteOS auf Windows, Linux, oder
Macintosh schreibst, einen CrossCompiler wirst du brauchen.
Du hast offenbar ein paar Probleme mit deinem grundsätzlichen
Verständnins von Crosscompilern.
Ein Crosscompiler liefert ausführbare Dateien für eine andere
Zielplattform.
D.h. wenn du auf einem x86-Linux Code für ein x86_64 generierst,
dann wird cross-kompiliert.
Das selbe gilt für das erstellen von Windows-Binaries unter Linux und
umgekehrt.
Nun gibt es zwei Fälle:
1.: TByteOS verwendet ein bereits vorhandenes Binärformat.
Gehen wir von ELF auf x86 aus.
Damit hast du dann zwei Möglichkeiten: Du cross-kompilierst von
irgendeinem Betriebssystem aus nach Linux x86 oder du kompilierst
nativ auf einem x86er Linux.
2.: TByteOS verwendet ein selbst entwickeltes Binärformat.
In diesem Fall hast du keinen Compiler, der passenden Code
generiert und musst einen eigenen schreiben.
Da du dein OS mit einem anderen Hostsystem entwickeln musst,
wäre dies ein Crosscompiler.
Also würde im 2. Fall der Compiler für das OS geschrieben und im 1.
Fall wäre ein Crosscompiler unter Verwendung von Linux unnötig.
Denn ein klassischer Windows Compiler erzeugt dir exe, ein
klassischer Linux Compiler erzeugt dir z.B. *.deb und Macintosh was
noch schlimmeres. Und keines dieser Formate kannst du problemlos
als Kernel laufen lassen...
Falsch.
Ein Linux-Compiler liefert dir ELF oder a.out.
Damit kannst natürlich auch noch nicht viel machen, aber .deb kommt
sicherlich nicht dabei heraus.
Allerdings glaube ich nicht, dass dir eine ELF-Binary so viel weiterhilft
;-)
Beste Grüße