OS Programmierung



  • Hi,
    ich wollte mal wissen was so ein OS alles machen muss um ein OS zu sein. Gibt's da vielleicht ein deutsches Tutorial (FAQ hab ich schon geschaut).
    Eigentlich muss doch ein OS nur booten, protectet mode aktivieren, commando-interpreter laden und Programme ausfürhern können. Oder?

    Danke
    Alexander Sulfrian



  • Mit OS-Programmierung und dt. Tut siehts ganz schlecht aus, eigentlich sind alle Tuts darüber auf Englisch, was aber auch kein größeres Problem darstellen sollte.

    Zuerst einmal sollte der Bootloader einen Kernel laden, der die Systemaufrufe(Dateisystem,I/O,Speicherverwaltung,...), das Einbinden von Treibern, etc. verwaltet, also praktisch eine Schnittstelle zwischen Hardware und Software ist.
    Dann wird entweder ein Kommandozeileninterpreter oder eine GUI geladen, die nun auf die Funktionen des Kernels zugreifen.

    P.S.:Allerdings kann man so manches auch anders Regeln, dies ist nur ein Beispiel.

    [ Dieser Beitrag wurde am 20.10.2002 um 14:57 Uhr von The Monument editiert. ]



  • schau mal in die FAQ, da findest du ne Menge Tutorials

    (BTW. das hört sich alles einfach an, aber du musst da schon hart dran arbeiten und C(++) und Assembler gut beherschen!)





  • Original erstellt von cpphack:
    http://www.tutorials.de/showthread.php?s=c54311b55c420293bcf60c809077863c&threadid =20706

    super...!
    Habe das mal getestet, und es funktioniert!
    Und wie geht es dann weiter? Kann man ab da schon in C weiterschreiben?

    Bin übrigens kein Troll der ein OS proggen will, das interessiert mich nur;)



  • Jo, das ist schon interessant, das Thema !

    Nur da ich nicht so gut Assembler kann, wäre natürlich praktisch
    wenn man das in C weiterschreiben könnte.

    Bis jetzt bootet das nämlich nur und gibt Text aus. 😃



  • Wie testet ihr eigentlich dieses kleine OS dann? auf nem Extra PC oder nur von ner Diskette auf eurem haupt PC?

    Reicht ein 486dx2 für son kleines "OS" zum testen? Hab so einen nämlich noch rumfliegen *ggg*



  • Original erstellt von <Guest>:
    **Wie testet ihr eigentlich dieses kleine OS dann? auf nem Extra PC oder nur von ner Diskette auf eurem haupt PC?

    Reicht ein 486dx2 für son kleines "OS" zum testen? Hab so einen nämlich noch rumfliegen *ggg***

    ich habe es auf meinem normalen Rechner geteste, einfach auf Diskette geschrieben, mit diesem Programm was da angegeben wurde!

    Das Ding könntest du eigentlich auch auf einem Taschenrechner booten:D Denn so eine kleine Textausgabe und ein Reboot werden wohl keine große Leistung erforden;)



  • Also generell würde ich zum OS basteln immer sowas wie bochs empfehlen, dmait man nicht immer rebooten muss für jeden test 🙂



  • was sind "bochs"??



  • Hm, scheint schon ganz in Ordnung zu sein.
    Nur das Problem ist, dass es solche Tuts wie Sand am Meer gibt. Solche, die lediglich einen Bootloader beschreiben, der nen Text ausgibt und eventuell noch nen paar Sektoren lädt.
    Aber sobald man Tuts für solche Sachen wie Systemaufrufe und Treiber sucht, siehts dann schon wieder eher dürftig aus. Möglichweise, weil viele erst dann merken, was sie sich vorgenommen haben, und es dann aufgeben.



  • @The Monument
    Naja ich denk mal ne gute GUI ist auch recht schwer *ggg*

    Aber was mich intressiert: Kann man überhaupt ein OS auch per C++ coden ohne ASM?



  • Original erstellt von <Guest>:
    Was sind "bochs"??

    bochs ist ein PC-emulator, de praktisch ermöglicht auf deinem Betriebssystem in einem Fenster einen komplett eigenen PC laufen zu lassen (siehe auch http://bochs.sourceforge.net/ )

    Original erstellt von <Guest>:
    Aber was mich intressiert: Kann man überhaupt ein OS auch per C++ coden ohne ASM?

    Ganz ohne asm kommt man nicht aus, man muss zumindest den Bootloader in asm schreiben. Und danachbenötigt man noch ein paar minimaldinge, die man aber C-Funktionen verpacken kann (z.B. sti/cli interrupts (de)aktivieren)



  • Original erstellt von TriPhoenix:
    Ganz ohne asm kommt man nicht aus, man muss zumindest den Bootloader in asm schreiben. Und danachbenötigt man noch ein paar minimaldinge, die man aber C-Funktionen verpacken kann (z.B. sti/cli interrupts (de)aktivieren)

    also jetzt mal klartext:
    Könnte man von der Stelle an jetzt in C weiterschreiben, soweit wie es jetzt ist?
    Wie kann man jetzt C-Programm ausführen? In welchem Format...?



  • @BF_31
    lies dir am besten mal die Tutorials durch aus der FAQ.

    Du brauchst einen Bootloader, der lädt dann deine Binär Datei nach, die kann natürlich mit jeder Programmiersprache geschrieben worden sein. Die Binär Datei darf nur keine Header Informationen oder so enthalten

    Ich weiss nicht, was du für ein OS/Compiler für deine Entwicklung nimmst, auf jeden Fall würde ich mal die Linker Anleitung durchlesen

    Wenn du den Kernel mit C Programmen erweitern willst, solltest du nicht vergessen, dass du keine Möglichkeit hast auf die C Std. Lib zuzugreifen. Also musst du schön alles neuschreiben oder eine C Std Lib auf dein OS portieren.

    Ohne detailierte Kentnisse von Assembler und wie du zB. Tastatur Programmierung betreibst kommst du aber nicht rum. Lies am besten ein paar Tutorials aus der FAQ.

    BTW.
    für das OS an dem ich mal gearbeitet habe, habe ich mein altes 386 Laptop immer zum testen genommen. Für größere Projekte sollte man aber BOCHs nehmen.


Anmelden zum Antworten