Autor Thema: In welcher Reihenfolge (Paging, Multitasking, VFS, ..)  (Gelesen 3788 mal)

nnosdev

  • Beiträge: 61
    • Profil anzeigen
Gespeichert
Hallo Leute!

Also ich hab parallel zum Tutorial von lowlevel.eu auch noch ein anderes (jamesmolloy.co.uk) offen.
Dabei fällt sofort auf, dass die Reihenfolge nicht dieselbe ist. Außerdem wird bei jamesmolloy.co.uk auch ein VFS
behandelt. Jetzt wollte ich fragen:

Macht es einen Unterschied in welcher Reihenfolge ich die essentiellen Elemente des Systems implementiere oder
gibt es Wege wie man es besser bzw. schlechter machen kann? Was wäre eurer Meinung nach die vernünftigste
Reihenfolge?

micha

  • Beiträge: 141
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 19. July 2012, 14:37 »
Also ich denke da gibt es schon eine grobe Reihenfolge. Es wäre unsinnig mit Paging anzufangen ;)
Das VFS ist nicht unbedingt nötig für den Anfang. Ich denke deshalb wird es in OSDev-für-einsteiger weggelassen.

Meiner meinung nach ist diese Reihenfolge die beste:
  • Erstmal eine Textausgabe zum Debuggen und bootfähigkeit
  • GDT
  • Interrupts
  • PMM
  • Multitasking
  • VMM
  • Ein Loader für binaries
  • ...

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 19. July 2012, 15:16 »
Hallo,

Also ich denke da gibt es schon eine grobe Reihenfolge. Es wäre unsinnig mit Paging anzufangen ;)
Nicht unbedingt. Für einen Higher-Half-Kernel ist Paging ziemlich essentiell, je früher desto besser. Der VMM sollte spätestens vor dem Multitasking laufen.

Meine Reihenfolge bisher war: VMM, Debugausgabe, GDT, IDT, PMM. Als nächstes stelle ich den VMM fertig und nehme Multitasking/Userspace plus Binary-Loader in Angriff (um Multiboot-Module nutzen zu können). Dann den Scheduler.

Da man aber ohnehin alles semi-gleichzeitig entwickeln muss, damit man was sieht, ist die exakte Reihenfolge nicht so wichtig.

Das VFS ist eine Möglichkeit, IPC zu betreiben (vgl. /sys oder /proc unter Linux) und daher erst wichtig, wenn Multitasking läuft.

Gruß,
Svenska

nnosdev

  • Beiträge: 61
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 19. July 2012, 15:25 »
Okay :D

Also vielleicht sollte ich mir gerade als Einsteiger nicht so viel Gedanken um Nachhaltigkeit machen da man beim ersten Versuch vermutlich sowieso scheitert ein sehr schönes Design zu entwickeln für einen Kernel :D

Das soll jetzt nicht zu pessimistisch klingen, aber ihr stimmt mir sicher zu, dass einiges dazu gehört um sowas einigermaßen sauber und nachvollziehbar zu schreiben.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 19. July 2012, 16:13 »
Ja, das ist so. Solange du nicht weißt, wie etwas überhaupt funktioniert, kannst du es logischerweise auch nicht richtig designen. Das muss nicht unbedingt heißen, dass du deinen Kernel mehrmals wegwirfst (obwohl das viele machen), aber du musst zumindest mit größeren Umbaumaßnahmen rechnen, nachdem du immer mal wieder entdeckst, dass das alles irgendwie Mist war. ;)

Aber Erfahrung kommt halt letztendlich nur auch dadurch, dass man auch merkt, wie (und vor allem warum) es nicht geht.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

TheThing

  • Beiträge: 105
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 19. July 2012, 17:23 »
Bei mir lief das auch so, meinen ersten Kernel hab ich weggeworfen, den zweiten baue ich momentan um. Meine Reihenfolge war folgende: Textausgabe (für Debugging), GDT, PIC, IDT, PIT, PMM. Dann kam Multitasking und dann Paging, wobei ich da bemerkt habe, dass mein bisheriger Code Unsinn ist. Also habe ich mir einen Heap-Manager gebaut, in den nur noch entsprechende vmm-Funktionen eingesetzt werden müssen. Und ich baue momentan Multitasking und Paging gleichzeitig um. Aber es könnte sein dass diesmal aus dem Kernel etwas brauchbares wird ;)

nnosdev

  • Beiträge: 61
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 19. July 2012, 23:34 »
Na ich denke dann werde ich am besten einfach mal drauf loscoden was die Tutorials so hergeben und freue mich wenn ich auch mal von solchen Aha!-Erlebnissen berichten kann :D

 

Einloggen