Autor Thema: ELF möglichst einfach öffnen  (Gelesen 6484 mal)

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« am: 11. October 2005, 15:15 »
Ich plane meinen Kernel im ELF-Format zu speichern. Das heißt, ich brauche eine möglichst einfache Asm-Methode, mit der ich ein paar Infos über den File bekomme (vor allem 32bit/64bit) und ihn anschließend einfach ausführen kann (also Header, usw entfernen).
Wenn jemand passenden Code hat ist das natürlich okay, aber ein gutes Tutorial (also ein echtes Tut, keine Spezifikationen usw) wäre mir lieber ;)

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #1 am: 11. October 2005, 20:37 »
Na ja, ich kann dir nur sagen das es mal nen Kernel zu einem System namens GazOS gab der in ELF war und der seinen eigenen Bootloader hatte ...
*post*

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #2 am: 17. October 2005, 19:45 »
hi,

is eigentlich ganz einfach:
* Laden der ELF Header (an Dateioffset 0)
* Checken ob die ELF Header ok is:
  * Die ID bytes prüfen (ID bytes 0-3 sollten 0x07, 'E', 'L', 'F' sein)
  * Schauen obs für die richtige Architektur is (ID byte 4 = 1 für 32Bit)
  * Schauen ob richtiges byte-encoding (für x86 LSB, sollte ID byte 5 = 1 sein)
  * Schauen ob "Executeable" is im Feld "type" der Elf header
  * Schauen ob für die richtige Maschine (Feld "machine" sollte für i386 = 3 sein)
  * Schauen obs die richtige version der elf specification is (Feld version=1)
* Program Header laden
* Program Header Entries durchlaufen und die benötigte Speichermenge für die Segmente berechnen
* Speicher allozieren
* nochmal Program Header durchlaufen und diesmal die Segmente in den Speicher laden

Solltest dir trotzdem die Elf-Specification reinziehn.
Meine Erklärung gilt nur, wenn du dass Programm nicht vor dem ausführen gelinkt werden muss.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 18. October 2005, 15:21 »
@Legend: Der Download auf der Website scheint nicht zu funktionieren, aber ich hab noch ne alte (?) Version auf meiner Festplatte gefunden - nur verwendet die kein ELF.

@bluecode: Thx! Hast du irgendwas, wo nochmal alle Offsets, möglichen Werte, usw. stehen?

Dingsi

  • Beiträge: 29
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 18. October 2005, 17:30 »
Zitat von: DarkThing
@bluecode: Thx! Hast du irgendwas, wo nochmal alle Offsets, möglichen Werte, usw. stehen?
google: elf-spec.

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 19. October 2005, 16:13 »
Ich hab jetzt dieses Doc gefunden: http://www.acm.uiuc.edu/sigops/rsrc/pfmt11.pdf
Sieht eigentlich ganz gut aus und es wird noch mal alles schön beschrieben, usw.

 

Einloggen