OS(Real-Mode)



  • Hi,

    Ich habe schon einen Bootloader in ASM gemacht aber wie kann ich jetzt den Haupteil meines OS schreiben? Und wie sprech ich das FileSystem an oder kann ich mir ein eigenes Coden?(Kann ich für ein OS auch C++ benutzen??)
    Wenn ich C++ muss ich dann printf() uns so selbst in ASM nachcoden?
    Und wie soll ich es bei meinem OS mit lauffähigen Dateien machen?

    MFG

    LordHoto



  • [url] www.freedos.org [/url]



  • was soll da sein?

    [EDIT: hmm eigentlich möchte ich irgendwelche Tutorials (am besten Deutsch aber
    da sind net so gut ich
    weiß)
    und net irgentwelchen Code!!!]

    [ Dieser Beitrag wurde am 12.01.2003 um 18:25 Uhr von LordHoto editiert. ]



  • Tutorials hab ich keine auf Lager, aber vielelicht ja ein paar Antworten 🙂

    Ich habe schon einen Bootloader in ASM gemacht aber wie kann ich jetzt den
    Haupteil meines OS schreiben?
    Den Hauptteil schreibt man meistens in C mit ein wenig Inline-Assembler.

    Und wie sprech ich das FileSystem an oder kann ich mir ein eigenes Coden?
    Du kannst dir ein eigenes Dateisystem ausdenken, aber an deiner Stelle würde ich zuerst FAT12/16/32-Support in dien OS bauen, denn es ist wesentlich einfacher, auf ner DOS-Formatierten diskette zu arbeiten (gerade bei Debug-Problemen), als auf einem selbstgebauten Format.

    (Kann ich für ein OS auch C++ benutzen??)
    C++ speziell KANN man auch benutzen, erfordert aber einigen Zusatzaufwand (ich hab z.B. gelesen man muss sich um Konstruktoren kümmern und son Kram).
    Solange man bei "normalem" C bleibt, ist man denke ich bestens bedient.

    Wenn ich C++ muss ich dann printf() uns so selbst in ASM nachcoden?
    Ja (auch in C ;)) Ein großer Teil beim OS-Proggen ist, dass man im Prinzip die Runtime-Library einmal neu schreiben muss. Wenn du am Ende "normale" Programme drauf laufen lassen willst, wirst du gezwungen sein, die gesamte C-Bibliothek neu zu schreiben, oft reicht es jedoch, die "echte" Kernelkommunikation (Ein/Ausgabe, Dateien etc.) zu schreiben, das ganze was dadrüber liegt kann man oft von anderen Bibliotheken nehmen. Für den Anfang reicht es natürlich, wenn du dir ein paar notwendige Funktionen wie printf selber schreibst (meistens dann im Kernel kprintf genannt).

    Und wie soll ich es bei meinem OS mit lauffähigen Dateien machen?
    Hie rist wiederum das einfachste, ein bereits vorhandenes Format zu wählen, besonders beliebt sind dabei:
    - Flat-Binaries à la .com unetr MS-DOS
    - ELF-Files (von Unix/Linux)
    - PE-Files (von Windows)
    - MZ-Files (von DOS)

    Die Formate haben den Vorteil, dass sie gut dokumentiert und ausgereift sind. Außerdem produzieren aktuelle Linker diese Formate, so dass man recht einfach ausführbare Programme für das neue OS schreiben kann.
    Du kannst dir natürlich auch was eigenes Ausdenken, aber ich empfehle bei diesen Formaten zu bleiben.



  • Danke!!

    Kannst du mir mal eine Mail an

    lordhoto@msn.com

    schreiben wie ich die Runtime Libary nachproggen soll und
    dann das mit den COM dateien machen soll.

    Ich bedanke mich.

    MFG

    LordHoto



  • Ist der Real-Mode nicht eigentlich komplett ohne Unterscheidung zwischen Betriebssystem- und Benutzermodus ?
    Was ja bedeuten würde, daß man eine Bibliothek für alles schreibt ??



  • Im Prinzip shcon, aber im Sinne einer sauberen Strukturierung sollten man vielelicht ruhig ein wenig trennen, denn wenn man was vernünftiges zusammenbaut kommt man früher oder später zum Protected Mode und da gibts dann Probleme. Außerdem entwickelt sich der Kernel sonst schnell zu sowas wie MS-DOS und das ist architektonisch DEFINITIV nicht sehr schön 🙂


Anmelden zum Antworten