Domanda

Mi chiedo solo di quello che succede a memoria che un programma utente rilascia attraverso una chiamata di sistema BRK, poi ottiene di nuovo. Lo fa il kernel chiaro fuori o è il contenuto lasciato indefinito?

Io credo che il kernel cancella le pagine quando sono appena allocata tramite BRK, ma non riesco a capire se li azzera tutto, se la pagina viene restituito, quindi ha chiesto di nuovo. Sto guardando attraverso lxr.linux.no per cercare di scoprire. Devo dire anche dare un'occhiata al libro suggerito in questo post .

Grazie per le vostre risposte.

Tim

È stato utile?

Soluzione

È possibile ottenere una nuova pagina azzerato: http : //lxr.linux.no/#linux+v2.6.30.5/mm/memory.c#L2580

Il contenuto di una pagina fresca deve essere sgomberato. Potrebbe contenere informazioni sensibili, pensare alla sicurezza.

Altri suggerimenti

IIRC è chiaro su richiesta. Così, quando una pagina viene sgomberato il kernel lascia da solo, tuttavia si otterrà cancellato quando assegnato a un nuovo utente / uso (di cui una ri-crescere BRK conterebbe). Ci sono vari hack per mappare le pagine anonime freschi a "pagina zero" e poi scambiare per una pagina Real riesce a scrivere.

pagine non allocate non dovrebbero ottenere ottenere spinto a scambiare se si sta preoccupando per la perdita di informazioni, anche se vari attacchi di avvio a freddo può funzionare contro di loro.

Vedere la recente articolo LWN per ulteriori informazioni: http://lwn.net/Articles/340370/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top