Autor Thema: Bootloader der C Kernel lädt  (Gelesen 3602 mal)

Rev4n

  • Beiträge: 14
    • Profil anzeigen
Gespeichert
« am: 07. November 2006, 22:17 »
Da ich nun schon seit Tagen versuche, irgendwie irgendeinen Bootloader richtig einen C Kernel laden zu lassen, und da es mir nicht gelinkt schon fast verzweifel, wende ich mich jetzt einfach mal an die Community.

Ich möchte hier nun weniger meine kläglichen Versuche aufzählen, und irgendwie den Fehler in ihnen finden, sondern eher mal fragen:

Wie muss theoretisch ein ganz kleiner bootloader aussehen, wie lasse ich ihn am besten einen C Kernel laden, und wie bringe ich das ganze am besten auf Diskette?

Über einen gegebenenfalls vorgefertigten kleinen bootloader der schon einen (am besten leeren) C Kernel lädt, würde ich mich am meisten freuen, da ich dann selber erforschen könnte, wo mein Fehler lag.

Also ich hoffe mir kann jemand mit einem kleinen Tutorial und/oder einem guten Beispiel weiterhelfen.

M.f.G
Rev4n

Krox

  • Beiträge: 38
    • Profil anzeigen
    • Coding42.de
Gespeichert
« Antwort #1 am: 08. November 2006, 09:52 »
C Kernel heißt (fast) immer, dass es 32-bit protected Mode sein soll (gcc kann keinen 16bit Code erstellen). Also sollte die Reihenfolge ungefähr so aussehen:

1. Bootloader lädt (mithilfe von Bios-Interrupts) den Kernel
2. Bootloader schaltet in den PMode (falls Speicher über 1MB benutzt werden soll, auch noch das A20 Gate aktivieren)
3. main() wird aufgerufen

Tutorials würde ich dir TeeJays empfehlen: www.jay-code.de. Am wichtigsten natürlich "protected mode" und "c kernel tutorial".

ps: oder du nimmst einfach Grub als Bootloader. Der lädt deinen Kernel aus praktisch jedem Dateisystem, schaltet PMode und A20 gate an, und kann bei Bedarf sogar in Grafik-Modus schalten (was im PM sonst schwierig ist)
21 ist nur die halbe Wahrheit

Rev4n

  • Beiträge: 14
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 08. November 2006, 12:22 »
Kann mir gegebenenfalls jemand einen Link zu einem guten GRUB Tutorials geben?

FalShen

  • Beiträge: 73
    • Profil anzeigen
    • ScénOS
Gespeichert
« Antwort #3 am: 08. November 2006, 14:08 »
http://www.osdever.net/tutorials/grub.php?the_id=5
Is zwar in englisch, aber alle guten sources sind in englisch... Sollte eigentlich alle Fragen beantworten, sonst kannst du dich gerne mit mir direkt in Verbindung setzen (Messengeradressen siehe links :) ).
« Letzte Änderung: 08. November 2006, 14:22 von FalShen »

Rev4n

  • Beiträge: 14
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 08. November 2006, 15:44 »
Kann mir noch jemand eine beispiel-ASM (Die auf den Kernel aufgelinkt wird) Datei geben, die alle GRUB relevanten sachen enthält?

Rev4n

  • Beiträge: 14
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 08. November 2006, 19:13 »
Ok hat sich alles erledigt  :-D

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #6 am: 08. November 2006, 20:13 »
@Rev4n: Kein Bock mehr, oder hat's geklappt? ;-)

bitmaster
In the Future everyone will need OS-64!!!

Rev4n

  • Beiträge: 14
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 08. November 2006, 21:21 »
FalShen hat mir via Messenger geholfen  :-)

 

Einloggen