Hi Lowlevel Team!
Erstmal ein großes Lob an die Community und and das Forum! Es hat mir schon des Öfteren geholfen. Nun habe ich aber eine Frage die ich leider nicht durch suchen richtig erroieren konnte. Ich programmiere gerade ein kleines eigenes Betriebssystem um den PC besser zu verstehen. Bis jetzt hab ich alles was mit dem Speicher zu tun hat den Compiler erledigen lassen. Alles durch Strukturen etc. abgewickelt, um ja nicht mit dem Speicher direkt zu arbeiten. Ich habe quasi das Problem nur rausgeschoben. Nun bin ich beim Memory Management angelangt und das ist mein großes Problem:
Folgendes ist mein Status Quo(was den Speicher betrifft):
Nun will ich Paging verwenden (Ring 3) ich weiß auch wie ich Paging initialisiere. Folgendes weiß ich:
Wäre echt Super von euch, wenn einer sich die Zeit nehemen würde und mir das kurz erklären könnte!
Danke!
Erstmal ein großes Lob an die Community und and das Forum! Es hat mir schon des Öfteren geholfen. Nun habe ich aber eine Frage die ich leider nicht durch suchen richtig erroieren konnte. Ich programmiere gerade ein kleines eigenes Betriebssystem um den PC besser zu verstehen. Bis jetzt hab ich alles was mit dem Speicher zu tun hat den Compiler erledigen lassen. Alles durch Strukturen etc. abgewickelt, um ja nicht mit dem Speicher direkt zu arbeiten. Ich habe quasi das Problem nur rausgeschoben. Nun bin ich beim Memory Management angelangt und das ist mein großes Problem:
Folgendes ist mein Status Quo(was den Speicher betrifft):
- Mein Kernel wird von GRUB an die Adresse 0x100000 geladen.
- Ich habe eine GDT initialisiert mit einem Code und Datensegment für den Kernel (Ring0) und für Programme(Ring 3) (Baseaddress:0 Grösse:0xfffff)
- Die GDT ist geladen und auch der Kernel liegt in Ring0. Das funktioniert alles tadellos.
Nun will ich Paging verwenden (Ring 3) ich weiß auch wie ich Paging initialisiere. Folgendes weiß ich:
- Mein Kernel an der Adresse 0x100000 startet.
- Mein Kernel 58498 Bytes groß ist
Wäre echt Super von euch, wenn einer sich die Zeit nehemen würde und mir das kurz erklären könnte!
Danke!

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert

)