viernes, julio 30, 2004

Informe 30/07/2004

COSES A FER:

- Nom de la llibreria-utilitat: OK
Page Fault Trace (pftrace).
- Ordenar el codi i eliminar funcions obsoletes. OK.
- Cambiar nom de les variables (acronim utilitat + _ + nom), tipus (acronim utilitat + _ + nom + _ t),
funcions (acronim utilitat + _ + nom): OK.
- Provar si podem pasar-li al carregador opcions via variables d'entorn i que les agafi amb getenv():
SI es pot . OK
- Provar de linkar staticament les funcions de la libc.
No ho he aconseguit. Ok


- Començar la documentació.

- Afegir informació de control per al carregador a una secció NOVA PROPIA del executable utilitzant libelf i probablement objcpy.
---> analitzar la info a posteriori
- Tenir compte amb el paralelisme:
- treure el PID a les traces.Ok
- No utilitzar malloc --> mmap. 0x08048000???

- Controlar si es carreguen/descarreguen llibreries dinamicament i si es fan mmaps: (NOSE COMO HACERLO!!!)
- weak & strong symbols --> add_fork(), add_exec(), ...
- ld_open(), ld_close(), mmap()


OPTIMITZACIONS:


- Minimitzar les crides a libc i al sistema del programa.
- Escriure la sortida tot de cop per blocs de disc.



DECISIONS:

- La llibreria-utilitat no funcionara amb programes que redefineixin la funció d'atenció al signal SIGSEGV.


NOTES:

- ld_symbol (ld-linux.so) --> permet obtenir @ a simbols

DEDUCCIONS:

- Linux no colapsa diferents pàgines amb mateixes característiques. Es pot comprobar al veure que al protegir i desprotegir pagines crea noves
linees al archiu /proc/PID/maps i aquestes linees estan juntes i tenen les mateixes propietats.
COMPTE!!! --> aixo pasa a un linux 2.6.4 amb gcc 3.2.2, a linux 2.6.8 amb gcc 3.3.3 no pasa!


IDEES