der Hinweis auf GRUB leider sinnvoll. Dennoch empfinde ich dies als Einengung, denn man wird praktisch auf einen Rechner gezwungen, der GRUB verwendet, damit zu Linux getrieben.
Das ist Blödsinn und wird durch Wiederholung nicht richtiger. GRUB ist ein Bootloader, der mit Linux nur zu tun hat, dass das eins der vielen Systeme ist, das er laden kann. Warum sagst du nicht, man wird zu Hurd getrieben, da kommt er ja schließlich her? Oder zu tyndur, Xen, NetBSD usw., die kann er ja auch alle laden?
EDIT: Problem momentan entschärft. Der Algorithmus von PorkChicken ist zum Glück o.k. Das Schlimme ist, dass man bei allen Problemen im Kernel, die nicht überall gleichermaßen auftreten, den eigenen Bootloader im Verdacht hat.
Naja, das sagt viel darüber aus, wie sehr du deinem Bootloader vertraust. In dem Fall solltest du vielleicht nochmal eine Weile dran arbeiten, bis du ihm genug vertraust. Keiner hier sagt dir, du
musst GRUB nehmen. Aber wir sagen, wenn du es nicht tust, musst du ernsthaft Zeit in deinen eigenen Bootloader investieren, bevor du mit deinem OS richtig anfangen kannst. Ob du dazu bereit bist, ist deine eigene Entscheidung.
OS steht z.Z. absolut stabil. Fehler ist eindeutig im VFS/RAM-Disk-Code von JM (bei root->nodes). Nach Umgehung der VFS/RAM Disk läuft das OS stabil:
http://www.henkessoft.de/OS_Dev/Downloads/85.zip
Hättest du nicht vorher sagen können, dass das eine tar-Bombe im zip-Format ist?
Na gut, wie auch immer, gebaut bekommen habe ich es irgendwie. Ich nehme nur an, dass es nicht richtig ist, wenn nach "loading kernel" nur noch eine Zeile Sternchen kommt, oder? Wenn ich das Ding mal gebootet bekomme, würde ich mir vielleicht auch den PF anschauen. PFs debuggen ist aber sowieso die Alltagsarbeit in der OS-Entwicklung. Damit solltest du mit der Zeit selbst zurechtkommen.
Im Code sehe ich kein root->nodes, nur ein root_nodes. Wenn es tatsächlich daran liegen sollte, spricht das wohl für einen Fehler in deinem k_malloc. Möglicherweise ist der Fehler aber auch nur in diesem Block und kommt aber vom Zugriff auf eine andere Struktur. Da hilft nur Code disassemblieren und anschauen, was genau schiefgeht (oder einen gdb dranhängen und die einzelnen Werte ausgeben lassen).
Wer sich für OS-Entwicklung von Grund auf (also ohne GRUB) interessiert
Missverständnis. Bootloader-Entwicklung ist ein verwandtes Thema, aber kein Teilgebiet der OS-Entwicklung.