2016-08-18 5 views
2

Wie ich es verstehe, gibt es in den meisten Betriebssystemen zwei Privilegierungsringe: Kernel-Modus und Benutzermodus. Könnte ein Betriebssystementwickler zusätzliche Privilegierungsringe wie einen Middleware-Modus oder einen Kernel-Modul-Modus erstellen?Weitere Privilegierungsringe erstellen

Antwort

0

Es hängt von der Prozessorarchitektur ab. IA-32 (und auch AMD64) unterstützen tatsächlich vier Privilegien (Ringe) - Ring 3 (Benutzermodus) und Ring 0 (Kernelmodus). Sie können Code für andere Ringe (1 oder 2) ausführen, indem Sie die globale/lokale Deskriptor-Tabelle (GDT/LDT) bearbeiten.

IMHO, nutzen Hypervisor die anderen Ring-Ebenen aus Leistungsgründen (der Virtual Machine Kernel wird auf Ring 1 statt 0 ausgeführt und nur privilegierte Anweisungen, die nur auf Ring 0 ausgeführt werden können, werden emuliert).

+0

Ich fragte nach mehr Privilegien Ringe durch Software erstellen. – Melab

+0

Es hängt davon ab, welche Privilegien Sie durch einen solchen software-erzeugten Ring einschränken möchten. Die Begriffe "Middleware-Modus" oder "Kernel-Modul-Modus" sind nicht klar genug. Ich glaube, dass die Level von Ring 1 und Ring 2 für solche Szenarien gedacht waren, aber aus Performancegründen nicht genutzt werden. Sie können die hardwaregestützte Virtualisierung auf jeden Fall verwenden, um Ihre eigene "Ringstufe" zu erstellen (z. B. das Verbot bestimmter privilegierter Anweisungen). –