it-swarm-es.tech

¿Qué son los ejecutables despojados y no despojados en Unix?

De archivo man ,

EXAMPLES
   $ file file.c file /dev/{wd0a,hda}
   file.c:   C program text
   file:     ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
             dynamically linked (uses shared libs), stripped
   /dev/wd0a: block special (0/0)
   /dev/hda: block special (3/0)
   $ file -s /dev/wd0{b,d}
   /dev/wd0b: data
   /dev/wd0d: x86 boot sector
   $ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}
   /dev/hda:   x86 boot sector
   /dev/hda1:  Linux/i386 ext2 filesystem
   /dev/hda2:  x86 boot sector
   /dev/hda3:  x86 boot sector, extended partition table
   /dev/hda4:  Linux/i386 ext2 filesystem
   /dev/hda5:  Linux/i386 swap file
   /dev/hda6:  Linux/i386 swap file
   /dev/hda7:  Linux/i386 swap file
   /dev/hda8:  Linux/i386 swap file
   /dev/hda9:  empty
   /dev/hda10: empty

   $ file -i file.c file /dev/{wd0a,hda}
   file.c:      text/x-c
   file:        application/x-executable, dynamically linked (uses shared libs),
   not stripped
   /dev/hda:    application/x-not-regular-file
   /dev/wd0a:   application/x-not-regular-file

¿Qué significa stripping ejecutable?

¿Por qué se eliminan algunos de los ejecutables y otros no?

38
Lazer

Si compila un ejecutable con el indicador -g de gcc, contiene información de depuración. Eso significa que para cada instrucción hay información sobre qué línea del código fuente lo generó, el nombre de las variables en el código fuente se retiene y se puede asociar a la memoria correspondiente en tiempo de ejecución, etc. Strip puede eliminar esta información de depuración y otros datos incluidos en el ejecutable que no es necesario para la ejecución para reducir el tamaño del ejecutable.

51
fschmitt