Next: Imagen de un proceso
Up: Ficheros ejecutables
Previous: Lanzando ficheros ejecutables
Un ejecutable es un programa que puede ejecutarse por la CPU normalmente
para realizar algún trabajo útil. Estos ficheros normalmente se generan
con la ayuda de un compilador aunque si se desea también se puede trabajar
directamente con el ensamblador. Ya usemos uno u otro, el fichero se enlaza
mediante el enlazador (linker) con el resto de librerías del sistema
operativo antes de convertirse en un verdadero fichero ejecutable. Estos
tienen la siguiente estructura:
- 1.
- Cabecera: contiene los tamaños del resto de áreas del
ejecutable.
- 2.
- Código (text): almacena el código máquina del programa. No
hay datos pero si referencia a los mismos.
- 3.
- Datos (data): aquí se colocan las variables cuyo valor es
conocido por el compilador en tiempo de compilación: constantes, arrays
estáticos, etc.
- 4.
- Tabla de símbolos: almacena las referencias a todos los
símbolos (los nombres de las variables usadas) que utiliza el programa.
Esta información es útil en tiempo de depuración.
- 5.
- Información de reubicación: contiene información sobre dónde
ha buscado el montador de referencias (linker) que no encontró el
compilador.
Las dos últimas secciones no son imprescindibles para el ejecutable si ya
está depurado y pueden eliminarse mediante el comando strip . Para
averiguar el tamaño de las áreas de código y datos puede usarse el
comando size . Ejemplo:
width 3pt
width .3pt415ptgogh:/bin2/bin> ls -l zrun
-rwxr-xr-x 1 vruiz wheel 24137 Feb 2 21:12 zrun*
gogh:/bin2/bin> size zrun
text data bss dec hex filename
12256 4096 0 16352 3fe0 zrun
gogh:/bin2/bin> strip zrun
gogh:/bin2/bin> ls -l zrun
-rwxr-xr-x 1 vruiz wheel 16384 Jul 5 19:30 zrun*
gogh:/bin2/bin> size zrun
text data bss dec hex filename
12256 4096 0 16352 3fe0 zrun
gogh:/bin2/bin>
width .3pt
depth .3pt
width -3pt
Next: Imagen de un proceso
Up: Ficheros ejecutables
Previous: Lanzando ficheros ejecutables
Vicente González Ruiz
1998-07-13