Autor Thema: Aufbau des Betriebssystem?  (Gelesen 8045 mal)

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« am: 02. March 2006, 12:21 »
Hi,

ich frage mich zurzeit was der besste Aufbau eines OS ist. Im Moment läd mein Bootstrap den Kernel, und im Kernel sind alle Funktionen des OS enthalten plus GUI. Aber auf dauer soll dies nicht so sein. Wie macht ihr das so? Was ist am besten, und warum?


bitmaster
In the Future everyone will need OS-64!!!

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 02. March 2006, 12:31 »
Hallo,
also bei mir wird das so sein, dass die Shell, ... alles einzelne Programme sind. Nur ich hab noch keine ahnung wie ich das mach, da ich erstmal dann einen C compiler bräuchte, der auf meinem OS läuft...


Viele Grüße,
   Johannes

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 02. March 2006, 12:40 »
bei mir ist das so, dass der bootsektor den kernel vollstaendig enthaelt. der laedt dann einen fs treiber und damit dann ein init-programm. dieses laedt dann (z.zt.) den grafik- und den tastaturtreiber (beides user mode programme) und startet dann eine shell bzw. den login prozess.

der vorteil ist die die starke modularisierung, und die verlagerung von allem aus dem kernel heraus in den user mode. wobei kernel und user mode bei mir nichts mit ring 0/3 zu tun hat. eine solche trennung nehm ich aus platzgruenden nicht vor.
Dieser Text wird unter jedem Beitrag angezeigt.

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #3 am: 02. March 2006, 13:46 »
@PorkChicken: Hä? Der Kernel ist bei dir im Bootsektor? Der kernel befindet sich in dem 512 Byte Bootsektor? Kapiere ich nicht. Wie klein ist dann der kernel?
In the Future everyone will need OS-64!!!

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 02. March 2006, 13:48 »
Der Kernel wäre etwas sehr klein  :roll:
Mein Kernel ist ja schon 5kb groß...

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 02. March 2006, 14:12 »
jo, der kernel selbst ist 512 bytes gross. er bietet nur grundlegende (und teilweise sehr eingeschraenkte) funktionen wie memory management, prozessmanagement und einen scheduler fuers multitasking. der dateisystemtreiber (fat12) ist leider zu gross fuer den kernel, sonst waere er da auch noch drin gelandet.
Dieser Text wird unter jedem Beitrag angezeigt.

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #6 am: 02. March 2006, 15:11 »
Zitat von: PorkChicken
jo, der kernel selbst ist 512 bytes gross. er bietet nur grundlegende (und teilweise sehr eingeschraenkte) funktionen wie memory management, prozessmanagement und einen scheduler fuers multitasking. der dateisystemtreiber (fat12) ist leider zu gross fuer den kernel, sonst waere er da auch noch drin gelandet.
Hmm... Dieses konzept finde ich irgendwie blöd.
In the Future everyone will need OS-64!!!

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 02. March 2006, 15:54 »
ich auch. aber immerhin funktionierts ;)
Dieser Text wird unter jedem Beitrag angezeigt.

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #8 am: 02. March 2006, 16:37 »
Zitat von: PorkChicken
ich auch. aber immerhin funktionierts ;)
Und was ist wenn dein kernel mal größer als 512 Byte (bzw. 510 Byte) wird?
In the Future everyone will need OS-64!!!

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 02. March 2006, 16:48 »
wird er nicht. und sonst muss halt etwas in externe treiber/programme ausgelagert werden. z.b. wie beim fat12-treiber schon geschehen.
Dieser Text wird unter jedem Beitrag angezeigt.

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #10 am: 08. March 2006, 11:20 »
Ich muss sagen, da ist mir ein Bootloader auch lieber. ;)
Einmal Bootsektor schreiben (oder GRUB benutzen :P) und dann möglicherweise an weit mehr Stellen Arbeit sparen! ;)
*post*

Coffee

  • Beiträge: 470
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 08. March 2006, 11:24 »
naja... mein kernel kann bisher nur text ausgeben(eigene print-func), is in c geschrieben....  und das sind schon 173 byte..... wenn da noch n bissl was kommt dann passt das mit sicherheit nich in die 512 / 510 bytes rein...

Krox

  • Beiträge: 38
    • Profil anzeigen
    • Coding42.de
Gespeichert
« Antwort #12 am: 28. March 2006, 22:54 »
Mein Aufbau sieht zur Zeit so aus. Grub lädt den Kernel der zum einen aus init Routinen und zum anderen aus einer api besteht. In der Kernel API sind aber nur funktion für Speicherverwaltung, Taskverwaltung und ein Nachrichtensystem für die Tasks. Also keinerlei Funktionen zum Textausgeben oder für Floppy Zugriffe. Das alles über Treiber, die als normale Tasks laufen, realisiert. Da der Kernel also von sich aus keine weiteren tasks von der Festplatte/Diskette laden kann, werden eine Shell (die direkt auf den Video-speicher zugreift) und ein Floppy Treiber von Grub mitgeladen (als Module). Der Kernel richtet es so ein, dass jedes Modul direkt als Task gestartet wird. Man könnte also auch gleich die GUI oder sein E-Mail Programm vom Bootloader laden lassen  8)  .

(Auch wenn ich noch nicht bei einer GUI bin... vom Design her würde das so reinpassen)

@PorkChicken: 512 Byte  :shock:  find ich schon beeindruckend
21 ist nur die halbe Wahrheit

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 29. March 2006, 14:19 »
mein Bootloader kann hex anzeigen, Text ausgeben und Disketten lesen
um den Kernel zu laden
Der Kernel sollte über 10h Textausgeben können, tut aber noch nicht
mein größeres Ziel ist in den Kernel einen VGA-Treiber einzubauen
damit ich n'kleines Spiel machen kann, um das ganze zu demonstrieren

das beste was ich mir vorstellen kann ist ein TCP/IP-Stack, aber das wird wohl noch ne Weile dauern

 

Einloggen