Seu sistema não tem /lib/ld.so
, então ele não está equipado para executáveis a.out vinculados dinamicamente. Ele pode ser equipado para executáveis a.out vinculados estaticamente, se o seu kernel incluir suporte para eles; O Ubuntu não faz isso (isso requer a opção de configuração do kernel CONFIG_BINFMT_AOUT
). O formato a.out foi obsoleto no Linux por cerca de 20 anos e obsoleto por cerca de 15, então a maioria dos sistemas hoje parou de apoiá-lo.
/lib/ld-linux.so.1
e /lib/ld-linux.so.2
são duas versões diferentes do carregador dinâmico ELF do GNU / Linux, cada uma com sua própria ABI . A versão 1, correspondente à libc5, ficou obsoleta por apenas alguns anos a menos do que a.out e atualmente não é suportada na maioria dos sistemas. A versão 2, correspondente ao GNU libc6, é atual.
Cada arquitetura tem sua própria convenção de nomenclatura e número de versão para o carregador dinâmico (diferentes arquiteturas de processadores têm ABIs diferentes). /lib/ld-linux.so.2
é o nome x86_32. Em x86_64, a localização normal é /lib64/ld-linux-x86-64.so.2
. No armel, o local é /lib/ld-linux.so.3
, em armhf /lib/ld-linux-armhf.so.3
e assim por diante.
/lib/ld-linux.so.2
é uma biblioteca (ou, mais precisamente, um objeto compartilhado dinamicamente vinculado - o carregador dinâmico geralmente não é chamado de biblioteca). O fato de ser um link simbólico para um arquivo regular em vez de um arquivo normal não muda isso: o que faz dele uma biblioteca é seu conteúdo.