II. pDI-Tools: documentación del proyecto

Tabla de contenidos
1. Fundamentos
1.1. Introducción al ELF
1.1.1. Descripción del formato
1.1.2. Secciones y "Dynamic Tags"
1.1.3. Relaciones entre las diferentes secciones
1.1.4. El "Runtime Linker"
1.2. Descripción y estructura de DITools
1.2.1. Mecanismos usados para interponer código
1.2.2. La librería libhook.so
1.2.3. La librería liblink.so
1.2.4. Tipos de interposiciones
1.3. Limitaciones de DITools
2. Trabajo realizado
2.1. Funcionamiento
2.2. Estructura y decisiones de diseño
2.2.1. Lenguaje y sistema de compilación
2.2.2. Organización del código
2.2.3. Distribución de los ficheros
2.3. Tipos de interposiciones
2.3.1. Conceptos básicos para crear una interposición de código
2.3.2. Mecanismo de reenlace
2.3.3. Mecanismo de redefinición
2.3.4. Mecanismo de "callback"
2.4. Mejoras y extensiones
2.5. Validación
2.5.1. Pruebas automáticas
2.5.2. Testeo y comprobación manual
3. Portabilidad e implementación en las diferentes plataformas
3.1. El formato ELF en diferentes sistemas
3.1.1. GNU/Linux sobre INTEL® 386
3.1.2. Solaris sobre SPARC
3.1.3. Irix sobre MIPS®
3.1.4. PowerPC™ sobre GNU/Linux
3.1.5. Organización del "Elf Backend"
3.2. Políticas seguidas para obtener un código portable
3.2.1. Variante de C usada
3.2.2. El preprocesador
3.2.3. Tipos de datos
3.2.4. Datos no-dependientes y dependientes de la arquitectura
3.3. Organización del código según la plataforma
3.3.1. Ficheros de cabecera de pDI-Tools
3.3.2. Código fuente de pDI-Tools
3.4. Herramientas
4. Esfuerzo y coste
4.1. Planificación
4.2. Valoración económica del esfuerzo
5. Conclusiones
5.1. Conclusión y valoración
5.2. Trabajo futuro