Paul schrieb:
> soweit. Das Problem ist jetzt allerdings der Compeliervorgang: Es ist ja
> asm+ C file zu .o files... und dann?
Was sind das für komische Tutorials wenn da nicht mal steht wie man
einen Linker benutzt und was ein Linkerscript ist?
> Wie kann ich einen Bootfähigen USB erstellen? (Ich benutze NASM auf MAC)
Zunächst mal musst Du herausfinden, wie der Bootvorgang deines Systems
abläuft. z.B. war es früher beim BIOS Boot so, das das Bios auf den
ersten Sektor der Festplatte geschaut hat, und von dort einen Bootcode
geladen hat (ja das sind nur ein paar hundert Byte) Dieser Bootcode
wurde an eine bestimmte Addresse im RAM geladen (immer die selbe) und
von da an musste der Bootcode selbst sehen wie es weiter geht. Der
Bootcode konnte in gewissen Grenzen dazu noch mit dem Bios interagieren.
Auf dieser Basis musste mann dann sein Linkerscript machen, also das die
.o Dateien in ein Binary zusammengetan werden konnten.
Heuzutage ist das mit EFI etwas einfacher (Wenn man Secure-Boot
auschaltet) Bei EFI gibt es eine EFI Systempartition, in der man den
Bootlader, Programme oder auch den Kernel als Binärdatei ablegen kann.
Das EFI Bios liest dann die komplette Datei in den RAM (an definierte
Addresse wiederum) und started diese. Das funktioniert z.B. beim Linux
Kernel, beim Grub Bootloader mit EFI Modus oder auch beim "Memtest86"
tool.
Ich denke mit dem Quellcode der o.g. Tools kommst Du schon weiter.
Alternativ: Hier steht im Prinzip alles was Du machen must:
https://wiki.osdev.org/UEFI