Linux, wird page pagefault beim ersten Lesen oder beim ersten Schreiben auf Null gesetzt?

Meine Frage ist Linux-spezifisch und erfordert Kenntnisse über Kernel, virtuellen Speicher, MMAP und Seitenfehler. Ich habe C-Programm mit großen statischen Arrays, die in BSS-Abschnitt gehen (Speicher, auf Null initialisiert). Beim Programmstart wird dieser Speicher nicht physisch zugewiesen, es gibt nur virtuellen Speicher, und jede Seite des virtuellen Speichers wird der speziellen Nullseite (der Seite mit allen Nullen) zugeordnet. Wenn eine Anwendung auf diese Seite zugreift, wird der Seitenfehler generiert und die physische Seite zugewiesen.

Die Frage ist: Wird ein solcher Seitenfehler beim ersten Lesezugriff oder beim ersten Schreibzugriff auf die Seite aus dem Abschnitt bss generiert?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage