Benutzermodus und Kernelmodus
Ein Prozessor auf einem Computer mit Windows arbeitet in zwei verschiedenen Modi: Benutzermodus und Kernelmodus. Je nach Codetyp wechselt der Prozessor zwischen diesen Modi. Anwendungen arbeiten im Benutzermodus, während kerne Betriebssystemkomponenten im Kernelmodus funktionieren. Obwohl viele Treiber im Kernelmodus arbeiten, können einige im Benutzermodus funktionieren.
Benutzermodus
Wenn Sie eine Anwendung im Benutzermodus starten, erstellt Windows einen Prozess dafür. Dieser Prozess stellt der Anwendung einen privaten virtuellen Adressraum und eine private Handle-Tabelle zur Verfügung. Da der virtuelle Adressraum jeder Anwendung privat ist, kann eine Anwendung die Daten einer anderen Anwendung nicht ändern. Jede Anwendung wird isoliert ausgeführt, um sicherzustellen, dass sich die Anwendung bei einem Absturz nicht auf andere Anwendungen oder das Betriebssystem auswirkt.
Der virtuelle Adressraum einer Anwendung im Benutzermodus ist ebenfalls begrenzt. Ein Prozess, der im Benutzermodus ausgeführt wird, kann nicht auf virtuelle Adressen zugreifen, die für das Betriebssystem reserviert sind. Durch das Einschränken des virtuellen Adressraums einer Anwendung im Benutzermodus wird verhindert, dass die Anwendung kritische Betriebssystemdaten ändert oder beschädigt.
Kernelmodus
Der gesamte code, der im Kernelmodus ausgeführt wird, teilt sich einen einzelnen virtuellen Adressraum. Daher ist ein Kernelmodustreiber nicht von anderen Treibern oder dem Betriebssystem isoliert. Wenn ein Kernelmodustreiber fälschlicherweise in die falsche virtuelle Adresse schreibt, könnte er Daten kompromittieren, die zum Betriebssystem oder einem anderen Treiber gehören. Wenn ein Kernelmodustreiber abstürzt, stürzt das gesamte Betriebssystem ab.
Das folgende Diagramm veranschaulicht die Kommunikation zwischen Komponenten des Benutzermodus und Kernelmodus.