Kernel programmieren

lupinix

umherwandelndes Bit
Hallo zusammen!

Um mich etwas in die Hardware eines PC zu vertiefen, habe ich mir gedacht, mal einen Kernel zu programmieren (Wenn man es Kernel nennen kann, erstmal soll das Ding nur sowas wie "Hallo, ich hab gebootet" auf den Monitor schreiben).

Habt ihr da Erfahrungen oder kennt ihr gute Tutorials?

Viele Grüße
lupinix
 
Zuletzt bearbeitet:
Habt ihr da Erfahrungen

Ja.

oder kennt ihr gute Tutorials?

Nein, Tutorials sind nicht so mein Ding.

Booten auf x86 ist, ähm, recht komplex. Wenn Du Zugriff auf einen PowerPC- oder SPARC-basierten Rechner hast, dann üb' lieber damit. Falls nicht, dann schau mal bei http://coreboot.org/ vorbei. Mit coreboot v3 und libpayload kannst Du eine Payload (*) schreiben fast als ob Du ein Userprogramm schreiben würdest. Du brauchst nicht einmal Assembler zu können.

(*) Eine "Payload" in der Welt von coreboot ist ein Programm welches von der Firmware, also coreboot, gestartet wird. Üblicherweise ist das entweder ein Bootloader wie GRUB oder eben der Kernel selbst.
 
x86:
Wenn du die x86 Assembler Grundlagen lernst ist das programmieren eines Bootsectors, der 'Hallo, ich hab gebootet' ausgibt, kein Ding.
Such dir ein x86 ASM Tutorial, lern ein bißchen, schau dir an, wie mit Int 10h Text auf deinen Monitor zauberst und sieh dir dann an, wie ein Bootsektor aufgebaut ist. Der Rest ergibt sich dann von alleine.
Für die Assembler Grundlagen hat mir Anfang der '90er das ASM Tutorial von Draeden/VLA sehr geholfen. Ist zwar für Dos und TASM, aber das ist ja egal. Außerdem gibt's noch das gute alte Buch PC INTERN von Data Becker bzw. das PC/XT/AT Referenz Handbuch von Sybex. Vielleicht hat deine örtliche Bibliothek ja noch eins der beiden Bücher...
 
Zuletzt bearbeitet:
Hallo Lupinix!
Also prinzipiell: das ist echt ne gute Idee, um mal richtig zu kapieren, was beim Boot eigentlich passiert. Ich hab das auch mal selber gemacht. Tutorials, Interrupt-Liste, Hardware-Specs und das x86-Assembler-Buch (Assembler gePackt) und schon kann man tage-und Wochenlang Spaß haben. Hab mir damals ein kleines "OS" gebaut, welches eine selbstgebaute Kommandozeile lud und man konnte ein paar unwesentliche Dinge eingeben.

Hier der ALLERERSTE Einstieg dazu: http://www.tutorials.de/forum/programming-tutorials/20706-ein-eigenes-kleines-betriebssystem.html

Dann sollte man auch das hier zur Hand haben: http://www.nondot.org/sabre/os/articles

Für Prozessorinformationen: http://www.sandpile.org/

und:
http://www.amazon.de/Assembler-Ge-P...=sr_1_1?ie=UTF8&s=books&qid=1222072605&sr=1-1

Also viel Spaß mit dem Thema! Ja und: warum nicht auf x86 einfach mal loslegen? Ob x86 der goldene Weg ist oder nicht sollte erstmal egal sein. Leider bin ich nach ein paar Jahren Abstinenz nicht mehr ganz im Thema, aber vllt kann ich bei mancher Frage noch weiterhelfen.
 
Das sieht doch schon mal ganz nett aus, vielen Dank schonmal für die Tipps, besonders an Jeff!

Viele Grüße
Christian
 
Zurück
Oben