Hey Leute,
ich habe gestern begonnen, mich ein wenig mit der Kernel-Entwicklung vertraut zu machen.
Dazu habe ich ein Tutorial dazu gemacht, wie man mit GRUB bootet und dann auf C "umsteigt". Sprich: Erster Kernel-Teil in Assembler und Rest (so weit es geht) in C.
Das funktioniert auch alles super, NUR mein bisheriger C-Coder inlcudiert keine C-Libs. D.h. mein "Hallo Welt" sieht so aus:
Nun möchte ich jedoch die stdio.h Lib mit kompilieren, damit ich auf die IO-Funktionen zugreifen kann. Das sollte doch eigentlich mit dem Schalter '-static' vom gcc machbar sein.
Wenn ich das Ding dann kopiliere, wird beim Start der GRUB-Loader geladen und dann mein "OS". Dann jedoch kommt kein Hello World ( printf("Hello World"); ), sondern:
Error 15: File not found.
Ich nehme an, damit ist gemeint, dass #include <stdio.h> nicht gefunden wird.
Woran kann das liegen ? Mit dem Schalter -static wird doch wirklich KOMPLETT ALLES ins binary reinkopiert.
ich habe gestern begonnen, mich ein wenig mit der Kernel-Entwicklung vertraut zu machen.
Dazu habe ich ein Tutorial dazu gemacht, wie man mit GRUB bootet und dann auf C "umsteigt". Sprich: Erster Kernel-Teil in Assembler und Rest (so weit es geht) in C.
Das funktioniert auch alles super, NUR mein bisheriger C-Coder inlcudiert keine C-Libs. D.h. mein "Hallo Welt" sieht so aus:
Code:
int main() {
// Pointer zum Videospeicher
char *video = (char*)0xB8000;
// String zum Ausgeben
char *hello = "Hello World 123456";
// Zuerst den Speicher leeren
for(video+=4000; video !=(char*)0xB8000 ;video--)
*video=0;
// String ausgeben
while (*hello) {
*video = *hello;
video++;
*video = 0x07;
video++;
hello++;
}
// jetzt wo wir schon im Kernel drin sind, wollen wir auch nicht mehr raus ;)
while (1);
return 0;
}
Nun möchte ich jedoch die stdio.h Lib mit kompilieren, damit ich auf die IO-Funktionen zugreifen kann. Das sollte doch eigentlich mit dem Schalter '-static' vom gcc machbar sein.
Wenn ich das Ding dann kopiliere, wird beim Start der GRUB-Loader geladen und dann mein "OS". Dann jedoch kommt kein Hello World ( printf("Hello World"); ), sondern:
Error 15: File not found.
Ich nehme an, damit ist gemeint, dass #include <stdio.h> nicht gefunden wird.
Woran kann das liegen ? Mit dem Schalter -static wird doch wirklich KOMPLETT ALLES ins binary reinkopiert.