Eigenen Kernel Programmieren



  • Nachdem ich gerade auf die idee kam einen eigenen Kernel zu programmieren (x86),
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-139221-and-start-is-10.html
    dachte ich mir es sei das beste dazu gleich einen eigenen thread aufzumachen.
    Ich werde also hier von zeit zu zeit immer wieder Fragen stellen zu diesem Thema
    und ich hoffe das ihr mir mit eurem Rat zuseite steht.

    (Keine Angst ich will euch hier nicht mit jeder Kleinigkeit belästigen, ich weis schließlich das man am besten lernt indem man etwas selber macht)

    Als erstes wäre ich euch für einige infos zu diesem thema dankbar,
    einige links zu seiten habe ich bereits, ein tutorial für assembler das mir das nötige beibringt wäre nicht schlecht und sowas wie einen groben plan wie man an sowas am besten dran geht bräuchte ich noch.

    Wär lust hat kann sich mir ja anschließen, dann könnte man sich hier austauschen
    (wenn nicht mach ichs auch allein)

    Desweiteren bin ich für tips zu diesem thema dankbar, ich denke mal der ein oder andere von euch hat vielleicht in dieser richtung erfahrung.

    Auf jeden Fall vielen dank im voraus für eure hilfe
    MFG Storm.Xapek.de



  • Storm.Xapek.de schrieb:

    Auf jeden Fall viellen dank im v****** für eure hilfe
    MFG Storm.Xapek.de

    Wenn du es schon bearbeitest, dann schreib doch voraus und nicht vorraus. 🙄

    Gern geschehen

    mfg scnr



  • man muss auch nicht jedes mal, wenn jemand voraus falsch schreibt, ein inter-drama drausmachen. so schlimm ist es auch nicht 🙄





  • gsdfgsdfg schrieb:

    man muss auch nicht jedes mal, wenn jemand voraus falsch schreibt, ein inter-drama drausmachen. so schlimm ist es auch nicht 🙄

    Nicht jedesmal, aber ich fand den Post einfach so toll.



  • Nun da jeder mal was zu meinen Schreibkünsten gesagt hat,
    will ich mal meine erste Frage bezüglich meines eigenen Kernels stellen.

    Ich hatte vor diesen von grub laden zu lassen, wenn mir das jedoch zu aufwendig ist, wäre es möglich stattdessen kqemu zu benutzen (ich weis nicht genau für was man kqemu benuzten kann)?

    Ich hab hier sogar ein tutorial gefunden zu diesem thema
    (leider auf englisch und irgendwas mit DOS?)
    http://www.osdev.org/howtos/1/index.html

    Daran werd ich mich auf jedenfall versuchen zu halten

    //EDIT
    Bin nun schon weiter habe nun eine datei kernel.bin wie boot ich diese jetzt?
    (was ist eigentlich der unterschied zwischen coff und aout bei nasm? ich musst aout nehmen weil coff sich nicht linken lies)



  • a) du solltest asm können
    b) du solltest dich über die theorie informieren (nichts geht über ein buch)

    die qualität deiner fragen lässt mich stark bezweifeln, ob du von a) und b) genügend ahnung hast um einen kernel zu programmieren.



  • Ich möchte meine kritiker darüber informieren das es mir genlungen ist mein eigenes OS zu schreiben.

    Es gibt Hallo Welt aus und bleibt dann in einer endlosschleife hängen 🙂

    Einen eigenen bootloader habe ich jedoch ncoh nciht



  • Storm.Xapek.de schrieb:

    Ich hatte vor diesen von grub laden zu lassen, wenn mir das jedoch zu aufwendig ist, wäre es möglich stattdessen kqemu zu benutzen (ich weis nicht genau für was man kqemu benuzten kann)?

    AFAIK ist GRUB ein Bootloader und kqemu ein Kernelmodul für Linux, das den Emulator qemu schneller machen soll?

    Bin nun schon weiter habe nun eine datei kernel.bin wie boot ich diese jetzt?

    Ich nehme mal an, kernel.bin ist der Kernelcode im Binärformat.
    Wenn du das von GRUB booten lassen willst, schau mal hier rein: http://www.mega-tokyo.com/osfaq2/index.php/GRUB
    Das ganze muss dann dem Multibootstandard genügen (http://www.gnu.org/software/grub/manual/multiboot/)

    Ansonsten kannst du dir auch einen eigenen Bootloader schreiben (Arbeit 😉 )



  • Nee hab ne bessere lösung.

    bochs -> dann emuliert sozusagen einen boot. Da kann man das prima im eigenen system testen, ohne gleich jedesmal einen neustart zu amchen



  • mit bochs hast du wieder einen Emulator für einen ganzen PC -> brauchst trotzdem alles, was du für einen echten Rechner bräuchtest(also vom OS aus gesehen), hast bei dem ganzen aber den Vorteil, dass du deinen Rechner nicht neustarten brauchst.
    Ich persönlich hab mir eine alte Kiste zusammengeschnorrt und teste auf der 😉
    Zum Debuggen mit gdb qemu (mit qemu -s -S aufgerufen) und auf Assemblerebene bochs mit eingebautem Debugger.
    Ich komm mit der Konfiguration ganz gut zurecht.


Anmelden zum Antworten