2016-05-03 3 views
1

Ich kann nicht verstehen, wie die Hardware weiß, dass derzeit ein Kernel-Code läuft. Müssen wir einen Speicheradressbereich in einigen Registern einrichten, der die CPU anzeigt, dass zwischen diesen Speicheradressen der Kernel läuft.Wie Hardware-Privilegien in x86-Prozessor manipuliert werden

+0

Welche CPU/Architektur? Das ist eine sehr hardwarebezogene Frage. – Devolus

+1

Googeln Sie Ihren genauen Titel gibt: 'Über 206.000 Ergebnisse'. –

+0

Googling jede Frage von Stackoverflow gibt in der Regel diese viele Ergebnisse @MartinJames –

Antwort

2

Auf x86-Architekturen wird dies mit Deskriptortabellen erreicht. Der Startup-Code installiert Tabellen, die der CPU mitteilen, welche Speicherbereiche welche Privilegien haben. Wenn auf den Speicher zugegriffen wird, prüft die Hardware, ob der Befehl und/oder die Zugriffsmethoden für den gegebenen Deskriptor der Adresse gültig sind.

Nun, das ist eine sehr einfache Beschreibung, da dies eine ziemlich breite Frage ist.

Einige Posting und Link zum Einstieg:

What are Ring 0 and Ring 3 in OS

http://duartes.org/gustavo/blog/post/cpu-rings-privilege-and-protection/

Ich würde auch (kostenlos), um den Intel Handbücher zum Download empfehlen, da dies auch dort im Detail beschrieben wird.

http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

+0

Mochte die kurze Antwort. –

0

Die CPU kann entweder durch eine Ausnahme in einem höheren Modus oder einen Interrupt. Die CPU geht mit einer Rückkehr von der Interrupt-Anweisung in einen niedrigeren Modus zurück.

Die CPU weiß aus dem Prozessstatusregister, in welchem ​​Modus sie ausgeführt wird. Das Betriebssystem weiß, dass es sich im Kernelmodus befindet, wenn es einen Handler für eine Ausnahme oder einen Interrupt ausführt.

Das Betriebssystem richtet die Seitentabellen ein, um einen Adressbereich für den Kernel zu definieren. Die Tabellen sind so eingerichtet, dass sie vor Zugriffen geschützt sind, wenn sich die CPU nicht im Kernel-Modus befindet.

Verwandte Themen