-1

In Linux gibt es Funktionen wie pgd_offset, pmd_offset und pte_offset, die zum Indexieren von pgd, pmd und pte verwendet werden. Wer nennt diese Funktionen? Verwendet die MMU diese Funktionen, um die Seitentabellen zu durchlaufen?Linux-Seitentabelle

Ich verstehe, dass der Linux-Kernel eine Seitentabelle für jeden Prozess erstellt und die Basisadresse der Seitentabelle an das Seitentabellenbasisregister übergibt, damit die MMU darauf zugreifen kann. Wie liest die MMU die Seitentabelle danach? Wer benutzt diese pgd_offset, etc. Funktionen, wenn die MMU diejenige ist, die die Seitentabellen liest?

+0

Schauen Sie [hier] (http://lxr.free-electron.com/ident?i=pgd_offset). – Downvoter

Antwort

0

Wie liest die MMU die Seitentabelle danach?

Die MMU verwendet Hardware eine beschleunigte Methode, um Speicher zu lesen. Die tatsächliche Suche ist architekturspezifisch: genau wie der Anweisungs-Parsingprozess.

Wer benutzt diese pgd_offset, usw. Funktionen, wenn die MMU derjenige ist, der die Seitentabellen liest?

Manchmal Kernel-Code möchte ein struct page von einer virtuellen Adresse suchen. Es muss diese Funktionen verwenden, um dies zu tun (AFAIK, es gibt keine API für die MMU-Adressensuche. Daher muss es auch im Kernel implementiert werden).