1
OS-Design / Re: OS für Plattform mit Segmentierung
« am: 18. August 2009, 15:19 »
Hallo Termite und erik
Ich will mal einige Aspekte aus der Sicht des Users betrachten.
Der User ist eigentlich der Compiler bzw. Linker der den ladbaren
Programmfile erstellt
- Flat-Speicher
Adresse beginnt immer bei 0x00
das OS gibt vor wo der Code anfängt
das Programm muss sich selbst kümmern ob das sich
Stack, Code und Daten nicht in die Quere kommen.
jede Änderung des Limits kann nur das OS über Systemaufrufe
jeder Zugriff außerhalb des Speicherlimits muss eine Exception werfen
Wenn nun dieser Speicher im Hitergrund in mehrere Pages zerteilt ist das erstmal egal. Sind aber nun mit diesen Seiten mit unterschiedlichen Attributen verknüpft (NoeXecute, ReadOnly) so ist das ziemlich merkwürdig.
- Segmentierung
jedes Segment beginnt auch bei 0x00
jedes Segment soll keine Überlappung in ein anderes Segment haben
Zugriffe außerhalb der Segmente müssen auch dann eine Exception
werfen wenn sie in einem anderen gültigen Segment landen
far-Pointer sind eigentlich nicht nötig sondern nur Segment-Override-Präfixe
Für beide Modelle muss gelten das der schreibende Zugriff auf die
Deskriptoren eine Exception wirft (auch wenn der User sysadmin ist).
Hinter beiden Speichermodellen sollte nun noch das Paging stehen
um die Adressen in den realen Speicher zu übersetzen.
MfG
Und was hindert uns als OS-Designer daran beide Modelle im
fertigen OS anzubieten.
Ich will mal einige Aspekte aus der Sicht des Users betrachten.
Der User ist eigentlich der Compiler bzw. Linker der den ladbaren
Programmfile erstellt
- Flat-Speicher
Adresse beginnt immer bei 0x00
das OS gibt vor wo der Code anfängt
das Programm muss sich selbst kümmern ob das sich
Stack, Code und Daten nicht in die Quere kommen.
jede Änderung des Limits kann nur das OS über Systemaufrufe
jeder Zugriff außerhalb des Speicherlimits muss eine Exception werfen
Wenn nun dieser Speicher im Hitergrund in mehrere Pages zerteilt ist das erstmal egal. Sind aber nun mit diesen Seiten mit unterschiedlichen Attributen verknüpft (NoeXecute, ReadOnly) so ist das ziemlich merkwürdig.
- Segmentierung
jedes Segment beginnt auch bei 0x00
jedes Segment soll keine Überlappung in ein anderes Segment haben
Zugriffe außerhalb der Segmente müssen auch dann eine Exception
werfen wenn sie in einem anderen gültigen Segment landen
far-Pointer sind eigentlich nicht nötig sondern nur Segment-Override-Präfixe
Für beide Modelle muss gelten das der schreibende Zugriff auf die
Deskriptoren eine Exception wirft (auch wenn der User sysadmin ist).
Hinter beiden Speichermodellen sollte nun noch das Paging stehen
um die Adressen in den realen Speicher zu übersetzen.
MfG
Und was hindert uns als OS-Designer daran beide Modelle im
fertigen OS anzubieten.