Betriebssystem



  • Also ich lad mir das nicht runter.
    Aus den einfachen Grund, ich habe keinerlei Eindrücke von der Optik des OS.
    Vielleicht solltest du mal als nächstes eine ScreenShot Funktion einbauen.



  • Meinst du mich jetzt?
    Von mir bekommste höchstens nen Screenshot als HEX zum abtippen....



  • Habe auch den wahnsinnigen entschluss gefasst ein OS zu Programmieren.
    es heisst dann auch passenderweise S-OS.

    Vom Späteren Funktionsumfang währe es noch relativ einfach gestrickt.
    Und soll mir auf Uralt sowie x86 kompatiblen embedded Rechnern als Arbeitsgrundlage für einfache Steuerungssaftware dienen.

    Dazu habe ich dann mal Tagelang rumgesucht was Google & Co zu bieten haben.

    Und habe mir dann ein Beispiel Als Startpunkt meiner Entwicklung ausgesucht

    Cottontail Bootloader v0.02b
    http://bos.asmhackers.net/docs/booting/fat12_boot/cbl-v0_02b.zip

    er ist etwas an Grub angelehnt
    und war der mit den meissten funktionen und der einzige der scheinbar auch FAT 16/32 unterstützt und nen sehr Rudimenteren Modulsupport bietet.

    Leider war das ganze für Turbo-C unter Windows aber auch mit NASM
    Ich habe Versucht das jetzt auf Linux anzupassen bisher hat er nicht gemeckert und habe am Assembler und Quellcode nichts geändert nur nen kleines Shellscript
    gebastelt habe aber keine Ahnung obs richtig ist.

    Ich habe mir da auch schon ein paar Gedanken macht

    Bootloader Stage1 existiert schon für FAT12/16/32 und CD-Rom weitere sollen folgen

    Stage2 soll etwas aufgebohrt werden

    -eine rudimentäre Shell(nur das wichtigste)
    -ein Automatischer Updater wie er z.B. aus DVD playern bekannt es der beim Booten das vorhandensein einer bestimmten Datei prüft und das System dann auf dem neusten stand bringt.
    -Netzwerksupport zum einen nach bestimmten Dateien Dort auschau halten und lokal kopieren und vorallem soll es ne Einstellung geben in der das ganze System ubers netzwerk geladen wird
    -sowie ein einfaches Web und Konsolen(Seriel und ParallelPort) Interface(Modulbasierend)

    Das System selbst wird dann relativ einfach bleiben

    -nur Single User aber immerhin Multitasking

    Das besondere soll der Fenstermanager sein dieser soll ganz einfach sein und Optisch wird er wohl noch weit hinter Win3.11 liegen.

    Wobei ich mich von der Funktionsweise gern einer Mischung aus Windows GDI und Linux X11 bedien wollen würde.

    ein Programmfenster soll sich nur mit ein paar Textzeilen beschreiben lassen das Rendern übernimmt das OS komplett selbst.
    Und vom X11 brauch ich das Konzept Client Server für nen Genialen aber sinnlosen Trick. der eine Server soll der Normale halt Fensterln auf dem Bildschirm.

    Der andere das war mal ne Spinnerei die ich mal probiert habe lauscht auf nem Netzwerkport ob sich der User anmeldet wenn Ja und Passwort stimmt sendet er ihm eine kleine Webseite mit Java(Ajax?)die Praktisch einen X11 Clienten darstellt.

    Und so hat man dann den Desktop direkt auf seinen Browser.
    Ich hatte das mal bei nem Steuerprogramm aus spaß implementiert ganz Rudimentär.
    Und ich persönlich sowie anwesende Bastelfreaks fanden das eigentlich ganz genial.

    Nun zu meinen Fragen

    Etwas was bis jetzt nicht klären konnte wo schaltet man besser in den Protectet modus? im Bootloader oder im Kernel?

    Zur Umbauaktion des Bootloader hier mal die Original Batchdatei Build.bat

    @echo off
    echo This script builds the Cottontail Bootloader from source. You will
    echo need JLOC, Borland Turbo C 2.0, and NASM 0.98 all installed and within
    echo reach of your PATH variable.
    echo Building 2nd stage bootloader...
    tcc -c cbl.c
    tcc -c text.c
    tcc -c fat.c
    nasm -f obj cbl_stub.asm
    echo ALL: > jloc.conf
    echo 	cbl.obj >> jloc.conf
    echo	text.obj >> jloc.conf
    echo	fat.obj >> jloc.conf
    echo	cbl_stub.obj >> jloc.conf
    echo CBL: 0 800 0 >> jloc.conf
    echo	* >> jloc.conf
    jloc jloc.conf bin\cbl.bin
    del cbl.obj
    del text.obj
    del fat.obj
    del cbl_stub.obj
    del jloc.conf
    echo Done.
    echo Building 1st stage bootloader...
    nasm boot.asm -o bin\boot.bin
    echo Done.
    pause
    @echo on
    

    und hier die build.sh

    #!/bin/sh
    
    # Simple way to compile
    
    echo "This Script Builds the Bootloader Stage 1 and Stage 2"
    echo "and the Kernel from S-OS"
    
    echo "------======Building 1st stage bootloader======------"
    nasm -f bin ./stage1/boot.asm -o ./bin/boot.bin
    echo "Done."
    
    echo "------======Building 2st stage bootloader======------"
    echo "------======Build objectfiles with GCC======------"
    gcc -c -ffreestanding -nostdinc ./cbl.c -o ./objects/cbl.o
    echo "Done."
    gcc -c -ffreestanding -nostdinc ./text.c -o ./objects/text.o
    echo "Done."
    gcc -c -ffreestanding -nostdinc ./fat.c -o ./objects/fat.o
    echo "Done."
    
    echo "------======Build objectfile with NASM======------"
    nasm -f aout ./cbl_stub.asm -o ./objects/cbl_stub.obj
    echo "Done."
    
    # Put kernelasm.o first so it IS loaded first!
    ld  -T link.ld --verbose -o ./objects/cbl ./objects/cbl_stub.obj ./objects/cbl.o ./objects/text.o ./objects/fat.o
    objcopy -R .note -R .comment -S -O binary ./objects/cbl cbl.bin
    
    echo "Done."
    
    exit
    

    sowie die link.ld

    OUTPUT_FORMAT("binary")
    ENTRY(cbl_main)
    SECTIONS
    {
      .text  0x1000 : {
        code = .; _code = .; __code = .;
        *(.text)
        . = ALIGN(4096);
      }
      .data  : {
        data = .; _data = .; __data = .;
        *(.data)
        . = ALIGN(4096);
      }
      .bss  :
      {
        bss = .; _bss = .; __bss = .;
        *(.bss)
        . = ALIGN(4096);
      }
      end = .; _end = .; __end = .;
    }
    

    Ob man auch beim C Code was ändern muss weiss ich leider nicht gcc spuckt keine Fehler aus. das zeug mit NASM würd ich mal behaupten ist in Ordung da auf beiden seiten NASM verwendet wird aber über das Linken was das auch schon wieder



  • Irgendwann mal (wenn ich Rentner bin oder so [bin gerade 17]) will ich auch ein OS schreiben.

    Egal..

    Gibts mal ein Update (evtl. sogar ein Image)??



  • Komische Träume habt ihr 🙄



  • Ich will weder Linux noch Windows nachmachen,
    es geht lediglich um eine Oberfläche...

    Klar wenn ich die habe werde ich solange an der Funktionalität arbeiten bis ich den Hungertot an der Tastatur sterbe 😃 aber dass ist ja auch egal :p

    Ne eigentlich war mein Traum immer ein 3D Spiel...
    Aber dass ist Sinnfrei im vergleich zu einem Betriebssystem.

    Währ echt endgeil sone Oberfläche zu machen, frei nach dem Motto: CD ins Laufwerk, auf leere Festplatte installieren, Starten, und fertig.

    Hammer 😮



  • Hi,

    falls du nur sowas wie Hallo Welt ausgeben willst empfehle ich folgenden Link:
    http://www.tutorials.de/forum/programming-tutorials/20706-ein-eigenes-kleines-betriebssystem.html
    Es ist zihmlich idiodensicher erklärt!!!
    Statt:
    "Eine Taste drücken, um neu zu starten..."
    kann man auch schreiben:
    "Hello World"



  • Darf ich vorschlagen, diesen amüsanten Thread nach "Projekt: OS-Development" zu verschieben?

    Hier findest Du einen recht guten Einblick in den Einstieg in ein OS:
    http://www.henkessoft.de/OS_Dev/OS_Dev1.htm

    Hier findest Du ebenfalls Einsteiger und "Semi-Profis", die gemeinsam an einem einfachen OS werkeln:
    http://www.c-plusplus.net/forum/viewforum.php?f=62&sid=5f05332549d35ba559b92291396cfa5e



  • Ich würd den thread einfach löschen, weil die Diskussion absurd ist, bzw. keine vernünftigen antworten gegeben wurden.



  • Dieser Thread geht nirgendwo hin, ausser vielleicht ins Datennirvana.
    Der Thread ist eine Mumie, bereits 2005 erstellt, und weder damals noch in juengster Vergangenheit wurden, wie blitzmaster feststellte, wirklich bedeutende Antworten geschrieben. Ich sehe auch kein Potential, dass sich das nochmal aendert.


Anmelden zum Antworten