Pregunta

me pregunto sobre lo que ocurre con la memoria que un programa de usuario comunicados a través de una llamada al sistema brk, a continuación, lleva de nuevo otra vez. Lo hace el kernel clara hacia fuera o es el contenido dejan sin definir?

Creo que el núcleo borra páginas cuando están recién asignados a través de BRK, pero no puedo averiguar si se les pone a cero todos si se devuelve esa página, a continuación, solicita de nuevo. Estoy mirando a través lxr.linux.no a tratar de averiguar. También voy a echar un vistazo al libro sugiere en este post .

Gracias por sus respuestas.

Tim

¿Fue útil?

Solución

Se obtiene una página en blanco puesto a cero: http : //lxr.linux.no/#linux+v2.6.30.5/mm/memory.c#L2580

El contenido de una página en blanco tiene que ser limpiado. Podría contener información sensible, pensar en la seguridad.

Otros consejos

IIRC es evidente en la demanda. Así que cuando se desalojó una página el kernel deja como está, sin embargo, de ser anulado cuando asignado a un nuevo usuario / uso (de los cuales un re-crecimiento BRK contaría). Hay varios trucos para mapear páginas anónimas frescas con "Página cero" y luego cambiarla por una página real de borrado de escritura.

páginas no asignadas no deben llegar llegar empujado a cambiar si están preocupados por la fuga de información, a pesar de varios ataques de arranque en frío pueden trabajar en contra de ellos.

Ver el artículo reciente LWN para más información: http://lwn.net/Articles/340370/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top