Notei algo enquanto fazia find /bin -exec file {} \;
:
o file
comando relata algumas entradas em /bin
são shared objects
, enquanto outras como executables
. Por exemplo,
/ bin / ntfsck: objeto compartilhado
ELF de 64 bits LSB , x86-64, versão 1 (SYSV), vinculado dinamicamente (usa bibliotecas compartilhadas), para GNU / Linux 2.6.24, BuildID [sha1] = 312d93fd0d8653e7236a61db2e67b93c63225a00, despojado
Mesmo relatório para gawk
/ usr / bin / gawk: objeto compartilhado
ELF de 64 bits LSB , x86-64, versão 1 (SYSV), vinculado dinamicamente (usa bibliotecas compartilhadas), para GNU / Linux 2.6.24, BuildID [sha1] = 76bb13aac7e212164bd6e0d7b8a5d92db44543c9, despojado
Em contraste file
para /bin/echo
é:
/ bin / echo: Executável
ELF de 64 bits LSB , x86-64, versão 1 (SYSV), vinculado dinamicamente (usa libs compartilhadas), para GNU / Linux 2.6.24, BuildID [sha1] = 193e75fc13e9c4599e772b8d79125a5934cf601c, despojado
Essencialmente, quero saber qual é a diferença entre executable
arquivos e shared object
arquivos.