Der Benutzer virtuellen Adressraum für x86-64 mit Linux ist 47 Bit lang. Das bedeutet im Wesentlichen, dass Linux einen Prozess mit einem virtuellen Adressbereich von ~ 128 TB abbilden kann.Wie unterstützt Linux mehr als 512 GB virtuellen Adressbereich in x86-64?
Was mich jedoch verwirrt, dass x86-64 Architektur unterstützt ISA definierte 4-Level-hierarchische Seitentabelle (als Radix-Baum angeordnet) für jeden Prozess. Das Stammverzeichnis der Seitentabelle kann nur bis zu 512 GB zusammenhängender virtueller Adressraum zuordnen. Wie kann Linux mehr als 512 GB virtuellen Adressbereich unterstützen? Werden für jeden Prozess mehrere Seitentabellen verwendet? Wenn ja, dann sollte für einen Prozess was CR3 (x86-64-Register, um die Adresse der Basis der Seitentabelle enthalten) für einen bestimmten Prozess enthalten? Fehle ich etwas?
Danke für die Klarstellung.Ich habe eine Ebene falsch gezählt und damit die Verwirrung. Es ist jetzt klar. – Arka