Читать книгу ICT-Virtualisierung - Johann Widmer - Страница 21
1.6 Die x.86 Architektur
ОглавлениеGreifen wir nun zurück auf die Grundlagen der Betriebssysteme. Wir haben dort die beiden Modi, Kernelmode und Usermode kennengelernt. Die modernen Maschinen, welche auf Intel oder AMD Prozessoren beruhen, benutzen eine x86-Architektur (eine Art der von Neumann Maschine). Diese x86-Architektur weist aber noch 2 Modi mehr auf. In Wirklichkeit sieht das Modell vier Ringe vor, wobei eben nur zwei genutzt werden (Ring 0 und Ring 3):
Bild 10 zeigt: x86-CPUs weisen vier Privilegienstufen auf, die als Schutzkonzept der Speicherzugriffe dienen und die Stabilität und Sicherheit des Betriebes eines Computers sicher stellen26. Ein Prozess kann immer nur in einem einzelnen Ring ausgeführt werden und ist nicht in der Lage diesen zu verlassen.
Prozesse welche in Ring 0 laufen haben vollen Zugriff auf die Hardware und dürfen den vollständigen Befehlssatz der CPU nutzen. Ring 0 wird auch als Kernel-Bereich (Kernel-Space, Kernel-Mode) bezeichnet. In Ring 0 läuft nur der Betriebssystemkern (Kernel) und die zum Start des Betriebssystems notwendigen Hardwaretreiber. In Ring 3 laufen die Anwendungen. Ring 3 wird auch als Benutzerbereich (User-Space, User-Mode) bezeichnet.
Die Regel der Ringbenutzung ist wie folgt: Ruft ein Prozess in einem weniger privilegierten Ring eine privilegierte Operation (Befehl) auf, erzeugt die CPU eine Ausnahme (Exception). Die Exception wird im benachbarten privilegierteren Ring abgefangen und dort behandelt. Ausnahmen, die nicht abgefangen werden können, verursachen eine allgemeine Schutzverletzung (General Protection Fault) – als Folge davon stürzt der aufrufende Prozess ab – handelt es sich dabei um einen Prozess im Kernel, stürzt das System ab.
Die Anwendungen die im Ring 3 laufen (im User-Mode) können die Kernel-Ressourcen (Kernel-Prozesse) nutzen, indem sie system calls (Betriebssystemaufrufe) benutzen. Will eine Anwendung eine Datei auf der Festplatte speichern, so wird sie dies dem Kernel mit Hilfe eines system calls mitteilen und dieser wird die Ressource „Memory-Management” mit dem nötigen Prozess zur Verfügung stellen.
Die x.86 Architektur hat zwar 4 Ringe vorgesehen, es werden aber nur Ring 0 (Kernel-Mode) und Ring 3 (User-Mode) benutzt. Insbesondere die x.86/64bit Architektur benutzt nur noch 2 Ringe.