Der Prozessor führt Programme im Benutzermodus oder Kernelmodus aus. Wenn Sie Ihren PC verwenden, wechselt der Prozessor häufig zwischen diesen beiden Modi, je nachdem, was er tut. Aber was sind Benutzermodus und Kernelmodus? Was ist der Unterschied zwischen diesen beiden Modi? Warum muss die CPU zwischen diesen Modi wechseln?
Was ist der Benutzermodus in Windows?

Benutzermodus in Windows
Wenn Sie ein Programm unter Windows starten, wird dieses Programm im Benutzermodus gestartet. Immer wenn ein Programm im Benutzermodus ausgeführt werden möchte, erstellt Windows einen Prozess dafür. Ein Prozess ist einfach ein Programm, das ein Prozessor ausführt, oder ein Programm, dessen Ausführung Windows geplant hat. Und wann immer Windows einen Prozess erstellt, erstellt es auch einen virtuellen Adressraum für diesen Prozess.
Der virtuelle Adressraum ist der Satz logischer (nicht physischer) Adressen, die Windows einem Prozess zuweist. Prozesse können diese Adressen verwenden, um Daten im physischen Speicher zu speichern.
Darüber hinaus ist der virtuelle Adressraum isoliert. Daher beeinträchtigt der virtuelle Adressraum eines Prozesses nicht den Adressraum eines anderen Prozesses. Und da Programme im Benutzermodus separate Adressräume haben, stürzt ein Programm allein ab, wenn es abstürzt, und hat keine Auswirkungen auf andere Programme oder das gesamte Betriebssystem. Es.
Eine andere Möglichkeit, Anwendungen im Benutzermodus zu beschreiben, besteht darin, den Begriff „weniger privilegiert“ zu verwenden. Windows schränkt den direkten Zugriff von Anwendungen im Benutzermodus auf kritische Systemressourcen ein und macht sie dadurch weniger privilegiert. Wenn eine Anwendung beispielsweise auf Hardware zugreifen möchte, muss sie mithilfe von Systemaufrufen (ein Programmierstil, bei dem ein Computerprogramm einen Dienst vom Kernel des Betriebssystems anfordert) über den Betriebssystemkernel ausgeführt werden.
Vereinfacht gesagt laufen Anwendungsprogramme wie Videospiele im Benutzermodus. Sie verfügen über wenige Privilegien und haben daher keinen uneingeschränkten Zugriff auf Systemressourcen. Jede Benutzermodusanwendung verfügt über einen eigenen Adressraum. Eine Anwendung kann den Adressraum einer anderen Anwendung nicht ändern. Wenn also eine Anwendung abstürzt, hat dies keine Auswirkungen auf andere Programme, die auf dem Computer ausgeführt werden.
Was ist der Kernelmodus in Windows?

Kernelmodus in Windows
Bevor wir uns mit dem Kernel-Modus befassen, müssen wir zunächst wissen, was ein „Kernel“ ist und wie er unter Windows funktioniert.
Der Kernel ist das Gehirn eines Betriebssystems. Es ist die Kernsoftwarekomponente, auf der alle anderen Komponenten innerhalb des Betriebssystems basieren. Der Kernel verwaltet die Computerhardware, plant Ausführungen auf dem Computer und verwaltet die Interaktionen zwischen Hardware und Anwendungssoftware.
Kurz gesagt ist der Kernel der am meisten privilegierte Teil des Codes, der auf dem System ausgeführt wird, da er der Code ist, der direkt mit der Hardware interagiert. Jedes andere Programm, das Hardwareressourcen nutzen möchte, muss den Zugriff über den Kernel anfordern.
Wenn ein Anwendungsprogramm im Benutzermodus läuft und auf Hardware wie eine Webcam zugreifen möchte, muss es den Kernel über Systemaufrufe anfordern. Um diese Anfragen zu bedienen, wechselt die CPU zum Zeitpunkt der Programmausführung vom Benutzermodus in den Kernelmodus.
Sobald die Ausführung abgeschlossen ist, wechselt die CPU zurück in den Benutzermodus und beginnt mit der Ausführung des nächsten geplanten Prozesses. Dies wird als „Kontextwechsel“ bezeichnet .
Was ist der Unterschied zwischen Benutzermodus und Kernelmodus?
Der Hauptunterschied zwischen dem Benutzermodus und dem Kernelmodus besteht in der Ebene der Berechtigungen, die jeder Modus bietet. Im Benutzermodus haben Anwendungen weniger Berechtigungen. Sie haben keinen direkten Zugriff auf Hardwareressourcen und können nicht in den Adressraum anderer Anwendungen schreiben.
Code, der im Kernelmodus ausgeführt wird, verfügt über erhöhte Berechtigungen. Es hat nicht nur direkten Zugriff auf die Computerhardware, sondern alle im Kernel-Modus ausgeführten Programme, einschließlich des Betriebssystems, teilen sich auch einen Adressraum. Wenn also ein Programm im Kernel-Modus abstürzt, kann dies zum Absturz des gesamten Betriebssystems führen. Um sicherzustellen, dass solche Probleme nicht auftreten, lässt Windows einige Prozesse nur im Kernel-Modus laufen.
Windows verfolgt einen mehrschichtigen Ansatz, um Benutzerprogramme von Systemressourcen zu trennen
Windows verwendet ein Schichtenmodell, um die Berechtigungsstufen von Prozessen zu bestimmen. Bei den Anwendungen in der äußersten Schicht handelt es sich um Anwendungen mit Mietprivilegien. Der Kern dieser Schichten ist der Kernel. Daher hat der Kernel uneingeschränkten Zugriff auf Betriebssystemressourcen.
Der mehrschichtige Ansatz schützt auch kritische Betriebssystemfunktionen. Wenn Programme in der oberen Ebene zufällig abstürzen, hat dies keine Auswirkungen auf das Betriebssystem. Wenn der Kernel hingegen abstürzt, ist das gesamte Betriebssystem betroffen.