Benutzermodus und Kernelmodus

Ein Prozessor auf einem Computer, auf dem Windows ausgeführt wird, verfügt über zwei verschiedene Modi: Benutzermodus und Kernelmodus.

Der Prozessor wechselt zwischen den beiden Modi je nachdem, welche Art von Code auf dem Prozessor ausgeführt wird. Anwendungen, die im Benutzermodus ausgeführt werden, und Kernkomponenten des Betriebssystems werden im Kernelmodus ausgeführt. Während viele Treiber im Kernelmodus ausgeführt werden, können einige Treiber im Benutzermodus ausgeführt werden.

Benutzermodus

Wenn Sie eine Benutzermodusanwendung starten, erstellt Windows einen Prozess für die Anwendung. Der Prozess stellt die Anwendung einen privaten virtuellen Adressraum und eine private Handle-Tabelle bereit. Da der virtuelle Adressraum einer Anwendung privat ist, kann eine Anwendung keine Daten ändern, die zu einer anderen Anwendung gehören. Jede Anwendung wird isoliert ausgeführt, und wenn eine Anwendung abstürzt, ist der Absturz auf diese Anwendung beschränkt. Andere Anwendungen und das Betriebssystem sind nicht vom Absturz betroffen.

Zusätzlich zum Privaten ist der virtuelle Adressraum einer Benutzermodusanwendung eingeschränkt. Ein Prozessor, der im Benutzermodus ausgeführt wird, kann nicht auf virtuelle Adressen zugreifen, die für das Betriebssystem reserviert sind. Das Einschränken des virtuellen Adressraums einer Benutzermodusanwendung verhindert, dass die Anwendung änderungen und möglicherweise kritische Betriebssystemdaten ändert.

Kernelmodus

Der gesamte Code, der im Kernelmodus ausgeführt wird, teilt einen einzelnen virtuellen Adressraum. Dies bedeutet, dass ein Kernelmodustreiber nicht von anderen Treibern und dem Betriebssystem selbst isoliert ist. Wenn ein Kernelmodustreiber versehentlich an die falsche virtuelle Adresse schreibt, könnten Daten, die zum Betriebssystem gehören, oder ein anderer Treiber kompromittiert werden. Wenn ein Kernelmodustreiber abstürzt, stürzt das gesamte Betriebssystem ab.

Dieses Diagramm veranschaulicht die Kommunikation zwischen Benutzermodus- und Kernelmoduskomponenten.

block diagram of user-mode and kernel-mode components.

Virtuelle Adressräume