Das Low-Level-Coding unter Linux wird sich wohl am besten anbieten, da man hier alles notwendige schon hat, Compiler, Linker, Assembler...
Allerdings, und das ist mir aufgefallen, gehen die Tutorial-Schreiber nicht allzusehr darauf ein. Oder ist das Motto: "Wieso Linux? Da hat man doch nen Kernel zum abgucken..."? Wenn ich nen Blick auf den Source werfe, bin ich hoffnungslos überfordert. Ich will gerade damit anfangen
Ok, also der GNU CC macht KEINE wie von Teejay geschriebenen Underscores ("_") vor die Funktionen nach dem Compilen. Darum funktioniert das Linken auch per link.txt aus dem C-Tutorial nicht sondern bricht mit "undefined reference to _main" ab. Habe das ASM-File geändert:
##################
[Bits 32]
extern main
global start
global _EnableA20Gate
start:
call main
STOP:
jmp STOP
##################
Damit geht dat!
Desweiteren ist ein kleiner Typo in der kernel.c. Wenn Du den Video-Speichern ansprechen willst, so muss das 0xB8000 statt 0xA8000 sein. Oder war das Deine Absicht? - Du kleiner Schelm
OK, zum 2. das Tutorial von Mastermesh. Vielleicht solltest Du in Teil 5 erwähnen, das wenn man einen GRUB verwendet, der den Bootsplash-vanilla-patch implementiert hat, das man das Splash-Image zum testen abschalten sollte. Ich hab 4 Stunden gebraucht, das rauszufinden.
BTW, kann man per C den GFX-Mode von GRUB nicht irgendwie abschalten? Soweit ich das weiß, sind das 640x480 bei 14 Farben (originell!!). Würde mit Assembler sicher irgendwie zu bewerkstellingen sein.
Ansonsten find ich eure Sache richtig genial! Damit bekommt man mal richtigen Kontakt mit dem OS!
Weiter so,
der Beatkiller