Hallo zusammen,
ich habe mir gerade ein paar Gedanken gemacht, wie ich mein OS designen sollte.
Ich wollte es so machen, dass der Kernel wirklich nur Paging und Scheduling beherrscht.
Der Rest soll als Modul nachgeladen werden.
Ein Teil der Module soll allerdings im Kernel-Space laufen.
Nun frage ich mich, wie ich den Modulen die Methoden zur Speicherverwaltung im Kernel-Space mitteile.
Das könnte ich entweder als Übergabeparameter machen (ist mir allerdings zu unelegant) oder durch shared-libraries.
Leider weiß ich nicht, wie ich diese implementieren soll (noch ohne FS).
Dann wollte ich auch noch Treiber in den Userspace auslagern.
Leider weiß ich noch nicht, wie ich den Treibern Rechte für die Ports geben kann.
Ich habe gesehen, dass das TSS eine IO-Bitmap besitzt.
Wie funktioniert die denn?
Außerdem hatte ich vor, dass der Kernel so gut wie nie gelockt wird.
Es soll nur ein Big-Kernel-Lock geben, wenn ein panic ausgelöst wurde.
Bei der Pageverwaltung habe ich es mir so gedacht, dass diese immer nur für die Prozesse gelockt werden.
Nun frage ich mich, ob da immer noch das TSS des Prozesses reicht, oder ob ich da dann später Probleme beim iret bekomme.
Dann habe ich mich auch noch gefragt, wie ich den Prozessen bestimmte Möglichkeiten zur Kommunikation biete (Display).
Das würde an sich doch am besten gehen, wenn ich einen Puffer im Kernelspace funktionieren, oder?
Am besten baut man den Puffer als Ringpuffer auf, oder?
Wie groß sollte der denn am besten sein?
Danke für eure Hilfe
cu rizor