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.ziper 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.htmHier 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.