Paging: Owner-Bit im Seitentabelleneintrag (PTE)
-
Hi Zusammen,
ich lese hier gerade, dass das Owner- oder auch U-Bit im PTE angibt, ob Benutzermoduscode auf die jeweilige Seite zugreifen kann oder ob dies nur im Kernelmodus möglich ist.
-
Woher weiß denn die CPU, dass ich mich im Kernelmodus befinde ?
Mag jetzt eine blöde Frage sein, sry. Aber ich bin grad etwas blank.
Die CPU muss ja irgendwo einen Anhaltspunkt haben, in welchem Ring sie sich gerade befindet. Nur wo finde ich dieses Flag oder Bit oder wie auch immer ? -
Wenn ich meinen Computer boote und in den Protected Mode gehe, bzw. Paging anschalte, befinde ich mich dann nach dem Einschalten sofort im Ring0 oder Ring3 und muss ich somit abhängig davon vorher die IDT, etc. initialisieren...
Wäre nett, wenn ihr mir da weiterhelfen könntet.
Schöne Grüße
Fragesteller
-
-
Zu 1:
Praktisch verhaelt es sich so, dass die hoechstmoegliche Privilegstufe im Deskriptor steht und die "aktuelle" Privilegstufe im Selektor.
Siehe dazu auch Protected Mode / MMX in den FAQ.Zu 2:
Das kommt darauf an, wie du deine GDT, IDT usw. initialisierst (muss natuerlich vor dem Umschalten in den PM passieren). So kannst du wohl auch im Ring3 starten, macht aber eben nicht viel Sinn.
-
sobald du das bit im cr0 gesetzt hast bist du im ring0.
Aber du musst noch die GDT befüllen um die sachen auch richtig nutzen zu können.
In der GDT ist bei den einzelnen einträgen der privilege-level gespeichert(bei code-segmenten), und kann so auch geändert werden...