/ / Kernel Space in a.out - c, Linux, Unix, Betriebssystem

Kernelraum in a.out - c, linux, unix, Betriebssystem

Ich bin ein bisschen verwirrt im Benutzerraum und im KernelPlatz . Ist der Kernel-Speicherplatz im virtuellen 4-GB-Speicher von a.out in Linux oder im Kernel-Speicherbereich enthalten, ist dies anders und nicht in diesem 4-GB-Speicherplatz enthalten. Der für das Betriebssystem reservierte Teil des virtuellen 4-GB-Speichers umfasst auch Kernel- oder Kernel-Speicherplatz. Bitte korrigieren Sie mich, wenn alle obigen Begriffe von mir falsch sind

Antworten:

2 für die Antwort № 1

Es hängt alles vom Betriebssystem ab.

Bei den meisten Betriebssystemen wird der Speicherplatz in 4 GB aufgeteilt, z. B. 2/2 oder 3/1, da der Wechsel vom Benutzermodus zum Kernelmodus erleichtert wird. Seitentabellen müssen während des Wechsels nicht neu zugeordnet werden.

Linux erlaubt jedoch sogar 4 GB Benutzerplatz und 4 GBKernel Space. Wie Sie sich jedoch vorstellen können, muss der gesamte Speicher jedes Mal neu zugeordnet werden, wenn Sie in den Kernel-Modus wechseln müssen, was einen gewissen Aufwand verursacht.

Obwohl es sich in Ihrem Speicherbereich befindet, lässt das Betriebssystem den Zugriff auf den Kernel-Speicherplatz nicht über den Benutzermoduscode zu. Diese Art der Zugriffskontrolle ist aufgrund der Berechtigungsbits in der Seitentabelle möglich.

Alle Aufrufe des Kernels vom Benutzerplatz aus sind tatsächlich ein int 80h Anruf. Dieser Aufruf leitet den Aufruf an den Interrupt-Handler des Kernels weiter und macht sowohl den Kernel als auch den Benutzerbereich zugänglich.


3 für die Antwort № 2

Das Standardspeichermodell für 32-Bit-Linux verwendet 1 GB für den Kernel und 3 GB für den Benutzerplatz.

Dies summiert sich auf den insgesamt verfügbaren 4 GB Speicherplatz, dh "Ja", der Speicherplatz des Kernels ist im Adressraum enthalten.

Dieser Artikel hat einige Grafiken, die die Aufteilung zeigen.