Erläuterung

Erläuterung

Erläuterung

Es gibt zwei Arten von Adressräumen: virtuell und physisch. Im physischen Modell(normalerweise vom Kernel verwendet)Der Speicher ist begrenzt und jede Adresse entspricht einer physischen Adresse.

Der virtuelle wird von Prozessen verwendet. Es gibt keine Begrenzung(außer dem wegen der Zeigergröße). Um mehr Speicher zu erhalten, fordert das Programm ihn einfach an(ohne Berücksichtigung der Höhe der anzufordernden Summe). Jede Adresse wird einer anderen physischen Adresse zugeordnet.
Dadurch sind Prozesse darin eingeschränkt, was sie aus dem RAM lesen können.

Das Problem

Der Grund dafür ist, dass Systemaufrufe ring0 verwenden, aber gleichzeitig(zumindest unter Linux)Der Prozessstatus wird auf unterbrechbar aktualisiert, was darauf hindeutet, dass Systemaufrufe den virtuellen Adressraum verwenden.
Soweit ich weiß, geht es bei CPU-Ringen um privilegierte Anweisungen, nicht um Adressräume(da es mit MMU zusammenhängt).

Wenn also ein Out-of-Bound-Read(aufgrund einer Sicherheitslücke)tritt während der Ausführung eines Systemaufrufs im Kernelcode auf. Kann es Speicher von anderen Prozessen zurückgeben?

Antwort1

Kernelmoduscode kann praktisch alles tun, was er will, einschließlich des Ausspionierens der Adressräume verschiedener Prozesse.

Ja, Kernelmoduscode verwendet virtuellen Adressraum. Der Kernelverwaltetphysikalischen Adressraum, aber eseinlaufenphysischer Adressraum.

Der Benutzermodus kann nichts aus dem RAM lesen, da er keine Möglichkeit hat, physische Adressen zu bestätigen.

Da der Kernelmodus mit aktivierter Adressübersetzung ausgeführt wird, kann Kernelmoduscode auch nur virtuelle Adressen geltend machen. K-Modus-Code kann jedoch Seitentabelleneinträge einrichten, um virtuelle Adressen zu definieren, die in beliebige physische Adressen übersetzt werden, auf die er zugreifen möchte.

Antwort2

Die vom Kernel aufgerufenen Systemaufrufe verwenden den physischen Adressraum.
Die von Prozessen aufgerufenen Systemaufrufe verwenden den virtuellen Adressraum.

verwandte Informationen