Windows System-Architektur
Aus PC-WELT-Wiki
Windows NT-Systemarchitektur
Kernel und User Mode - Ring 0 und 3
Basierend auf der i386-Hardware-Architektur, die vier Berechtigungsebenen 0-3 unterstützt, unterscheiden NT-Systeme (NT4, 2000, XP, Vista) die Berechtigungsebenen 0 und 3. Die Ebenen 1 und 2 bleiben hier also ungenutzt, alle Prozesse laufen entweder in Ring 0 (Kernel Mode) oder Ring 3 (User Mode). Eine Aufgabe dieser Ring-Architektur ist es, Prozesse im Speicher sauber zu trennen und gegen absichtliche oder zufällige gegenseitige Zugriffe zu schützen. Ein weiterer Vorteil dieser Architektur ist die Tatsache, dass jeder Zugriff auf die Hardware immer auf genau geregelten "call gates" über den innersten Ring geschehen muss. Ein gewisser (auf aktuellen Rechnern aber nicht mehr wesentliche) Nachteil dieses Aufbaus ist der deutlich erhöhte Ressourcenverbrauch, der durch zahlreiche Ringwechsel über die "call gates" notwendiger Weise entsteht.
Ring 0, die Ebene mit maximalen Rechten, ist wesentlichen Systemkomponenten vorbehalten. Hier laufen neben dem System-Kernel unter anderem grundlegende Systemdienste wie Smss.EXE (Sitzungsmanager) und die meisten Gerätetreiber.
Ring 3, die Ebene mit den geringsten Rechten, steht normalen Anwendungen zur Verfügung, nimmt aber auch weniger fundamentale Systemdienste auf.
Die Systemringe sind von unten nach oben durchlässig, nicht jedoch umgekehrt. Das heisst: Komponenten in Ring 0 haben Zugriff auf den Speicher in Ring 1-3, Ring 3-Komponenten können hingegen nicht direkt auf die privilegierteren Schichten oder gar auf die Hardware zugreifen. Um überhaupt mit der Hardware kommunizieren zu können, muss eine User-Anwendung in Ring 3 den Weg über einen Interrupt (Windows NT4 und 2000) oder den speziellen API-Befehl SysEnter (Windows XP und Vista) gehen. Der jüngere API-Befehl führt stets über die NTDLL.DLL hinab in den Kernel Mode. Hier entscheiden dann Kernkomponenten wie der Prozess-Manager und der Speicher-Manager, wann und wie die angeforderte Funktion tatsächlich ausgeführt wird. Erst dann geht der Aufruf weiter an den eigentlichen Kernel und schließlich über den Hardware Abstraction Layer (HAL) zur Hardware.


