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