On Sat, Dec 13, 2008 at 07:17:32PM -0300, Herr Groucho wrote: > El Mié 26 Nov 2008, Diego Woitasen escribió: > > On Fri, Nov 21, 2008 at 12:02:55AM -0300, Herr Groucho wrote: > > > El Jue 20 Nov 2008, Rodrigo Fuentealba escribió: > > > > El día 20 de noviembre de 2008 22:44, Herr Groucho > > > > > > > > <[email protected]> escribió: > > > > > El Mié 19 Nov 2008, Rodrigo Fuentealba escribió: > > > > >> 2008/11/19 MAbeeTT <[email protected]>: > > > > >> > 2008/11/19 Jimmy . <[email protected]>: > > > > >> >> On Wed, Nov 19, 2008 at 6:42 PM, MAbeeTT > > > > >> >> <[email protected]> > > > > > > > > > > wrote: > > > > >> >>> On Wed, Nov 19, 2008 at 9:33 PM, Rodrigo Fuentealba > > > > >> >>> <[email protected]> wrote: > > > > > > [...] > > > > > > > >> > Donde dice "nada" va "Nada útil" > > > > >> > > > > >> Entonces se declara como un puntero y se apunta a NULL. > > > > >> Si sigues leyendo el puntero, sólo tendrás basura. > > > > > > > > > > Si la posción de memoria 0 contiene sólo basura, para qué > > > > > implementarla por hardware? Que se ahorren esos bits y los > > > > > usen para otra cosa! > > > > > > > > En memorias DIMM podría, eventualmente, contener sólo basura. > > > > En las SIMM se inicializan desde cero, y para acelerar un poco > > > > el proceso, sólo se borra el índice de lo que contienen, por lo > > > > que si lees la posición de memoria de manera directa sin pasar > > > > por cero, eventualmente tendrás basura de todas maneras hasta > > > > encontrar una condición de aborto. En el peor de los casos no > > > > es basura y es información perteneciente a otros programas (y > > > > si la llegas a intentar tocar, en Linux el programa aborta con > > > > un lindo "Violación de Segmento"). > > > > > > > > Si? > > > > > > No. Primero, porque es la memoria virtual de un proceso en > > > particular, así que la dirección 0 del espacio de direcciones de > > > ese proceso será alguna dirección múltiplo del tamaño de página > > > en esa máquina y no necesariamente la dirección física 0. > > > Segundo, porque el sistema operativo (si el kernel es Linux al > > > menos) inicializa las páginas que asigna a un proceso > > > rellenándolas con 0 para que los procesos no adquieran > > > conocimiento de los datos de otros procesos (posiblemente > > > terminados) a los que recientemente pertenecían esas páginas (y > > > de paso para que los programas mal hechos que usan datos sin > > > inicializarlos tengan un comportamiento más definido). > > > Tercero, porque a menos que eviten usar la dirección 0 > > > deliberadamente, algún pedazo de alguna sección de la imagen del > > > proceso ca a estar almacenado allí, por ejemplo, instrucciones > > > del código de programa. > > > Cuarto, porque bien podría ser el caso que si la página a la que > > > pertenece la dirección virtual 0 del proceso contiene código, que > > > esté protegida contra lectura y ahí el proceso está impedido de > > > leer su propio código como dato almacenado en la dirección 0 así > > > que nunca llegará a leer lo que haya ahí, basura o no basura. > > > > > > Y esas son las razones por las que traje el theard a lug-list. > > > Pregunta: > > > Qué hay almacenado en la dirección 0 del especio de direcciones > > > de un proceso creado por Linux? > > > > Nada, no se usa es dirección. > > Malditos derrochones de bits!
Nah, no es desperdicio. Bah, salvo que hablas de desperdicio de bits de direccion, pero no de espacio. > > > > > O sea, cómo se mapean las secciones de un ejecutable al espacio > > > de direcciones al cargar la imagen? > > > > Podes ver un ejemplo con cualquier proceso en /proc/PID/maps > > Ah, a ver... > Mmm... En casi ningún proceso puedo ver nada... > Ah, claro, porque no son míos. A ver como root... > Bien. Uff, qué cantidad de mierdas que cargan los programas! Sep, mira el openoffice o el firefox entonces... > > -- > Herr Groucho > > ID Jabber: [email protected] > Señal distintiva: LU5MJR - 144,550 MHz FM. > Clave pública GPG: hkp://pks.lugmen.org.ar > Fingerprint GPG: B7BD 0FC7 D9A2 66F3 4EFC 45EE 7DE2 3932 597B 6354 -- -------------- Diego Woitasen
