Ich lese das Buch "Understanding Linux Kernel" von Bovet und Cesati. Im zweiten Kapitel, unter "Paging in Linux", erwähnt der Autor, wie mit 32 Architekturen, bei denen PAE nicht aktiviert ist, die mittleren und oberen Verzeichnisse eliminiert werden. Ich habe Schwierigkeiten, dem zu folgen, was der Autor meint.Linux Kernel Memory Management Paging Levels
Sie waren in ihrer Behandlung locker und macht nicht viel intuitiven Sinn.
Für 32-Bit-Architekturen ohne physische Adresserweiterung sind zwei Paging-Ebenen ausreichend. Linux beseitigt im Wesentlichen die Felder "Oberes Verzeichnis" und "Seitenmittelverzeichnis", indem es sagt, dass sie null Bits enthalten. Die Positionen des Page Directory und des Page Middle Directory in der Reihenfolge der Zeiger werden jedoch beibehalten, damit derselbe Code auf 32-Bit- und 64-Bit-Architekturen funktionieren kann. Der Kernel behält eine Position für das Page Directory und das Page Middle Directory bei, indem er die Anzahl der Einträge in 1 setzt und diese beiden Einträge in den richtigen Eintrag des Page Global Directory einbindet.
Kann jemand das auf eine schmackhaftere Art erklären?
Okay, also habe ich ein wenig mehr nachgedacht und bitte sehen, ob das Sinn macht. Also, im Grunde haben Sie diese MMU-Hardware, die durch die Seitenhierarchie auf TLB-Miss geht, für die im Wesentlichen der einzelne Eintrag PMD und PUD nicht beachten. Für den Rest des Kernel-Codes müssen wir jedoch eine einheitliche Schnittstelle des 4-Level-Paging bereitstellen.Wir haben also eine PUD für einen einzelnen Eintrag und eine für einen einzelnen Eintrag, von denen jeder emuliert wird, um den exakt gleichen Wert des entsprechenden PGD-Eintrags für diese Adresse zu enthalten. – subramanian
Ja. Auf Prozessoren ohne PAE erwartet die MMU nur die unteren zwei Tabellen, aber der Kernel erwartet alle vier, so dass die oberen zwei mit nur einem Eintrag erstellt werden müssen. Stellen Sie sicher, dass Sie Ihren Kommentar als Antwort hinzufügen, wenn Sie können. – ughoavgfhw
Ich denke meine Erklärung hatte Löcher Linuxios erklärt es mir klar. Also werde ich seine Antwort als richtig markieren. – subramanian