Was bedeuten Benutzermodus und Kernelmodus unter Linux?

Betriebssysteme wie MS-DOS laufen im Single-CPU-Modus, aber einige Unix-ähnliche Betriebssysteme verwenden den Dual-
Modus, der effektiv Time-Sharing implementiert. Auf einer Linux-Maschine befindet sich die CPU entweder im vertrauenswürdigen Kernelmodus oder im
eingeschränkten Benutzermodus . Alle Benutzerprozesse werden im Benutzermodus ausgeführt, mit Ausnahme des Kernels selbst, der sich im Kernelmodus befindet
.

Kernel-Modus-Code hat uneingeschränkten Zugriff auf alle Befehlssätze des Prozessors sowie den gesamten Speicher und E/A-Bereich . Damit ein Benutzermodusprozess
dieses Privileg genießen kann, muss er über einen Systemaufruf eine Anfrage an einen Gerätetreiber oder einen anderen Kernelmoduscode stellen
. Darüber hinaus ermöglicht der Benutzermoduscode das Auftreten von Seitenfehlern, während dies bei Kernelmoduscode nicht der Fall ist.

In 2.4 und früheren Kerneln konnten nur Benutzermodusprozesse durch Kontextwechsel ausgeschaltet und von anderen Prozessen vorbelegt werden.
Kernel-Modus-Code kann die CPU monopolisieren, bis die folgenden zwei Bedingungen eintreten:

(1) 它自愿放弃 CPU;
(2) 发生中断或异常。

Der 2.6-Kernel führt die Kernel-Präemption ein, und der meiste Kernel-Modus-Code kann ebenfalls präemptiv ausgeführt werden

おすすめ

転載: blog.csdn.net/weixin_43072508/article/details/128676519