2009-08-25 14 views
1

Je me demande juste ce qui arrive à la mémoire qu'un programme utilisateur libère via un appel système brk, puis revient à nouveau. Le noyau l'efface-t-il ou le contenu est-il indéfini?La mémoire est-elle effacée par le noyau Linux lorsque brk est réduit puis augmenté à nouveau?

Je crois que le noyau efface les pages quand elles sont nouvellement allouées via brk, mais je ne peux pas travailler si elles les zéros tous si cette page est retournée, puis demandé à nouveau. Je regarde à travers lxr.linux.no pour essayer de le découvrir. Je vais aussi jeter un coup d'œil au livre proposé dans le post this.

Merci pour vos réponses.

Tim

Répondre

1

IlRC est clair sur demande. Ainsi, quand une page est expulsée, le noyau la laisse tranquille, mais elle sera effacée lorsqu'elle sera affectée à un nouvel utilisateur/utilisateur (dont un nouveau bran compte). Il existe différents hacks pour mapper de nouvelles pages anonymes à "zéro page" et ensuite l'échanger contre une vraie page effacée en écriture.

Les pages non allouées ne doivent pas être repoussées si vous vous inquiétez de la fuite d'informations, bien que diverses attaques de démarrage à froid puissent fonctionner contre elles.

Voir l'article récent LWN pour plus d'informations: http://lwn.net/Articles/340370/