paulo1205
(usa Ubuntu)
Enviado em 10/11/2017 - 19:02h
ld.so é o módulo que carrega as bibliotecas dinâmicas num executável que tenha sido gerado de modo a usar bibliotecas dinâmicas.
Quando você dispara um programa com bibliotecas dinâmicas, o sistema tem de chamar o ld.so de qualquer maneira, de modo a identificar quais as bibliotecas de que o programa depende, carregar tais bibliotecas, e resolver os endereços de cada objeto dinâmico que ainda não esteja mapeado por quem faz uso dele.
No Linux, o ld.so foi feito não apenas como um módulo que o SO invoca implicitamente, como decorrência da execução de um programa com ligações dinâmicas, mas
também como um executável que o próprio usuário pode chamar diretamente, passando o nome do programa como argumento. O seu caso é um exemplo da utilidade desse tipo de implementação.
Em sistemas que suportam múltiplos formatos de arquivos executáveis, o ld.so acaba sendo renomeado para um nome mais complexo, que explicita qual dos formatos será suportado por essa versão do ld.so. No seu caso, você usou a versão de ld.so voltada à arquitetura x86_64, nativa para Linux (se você usasse uma emulação de Solaris ou Hurd, por exemplo, poderia ser necessário outra versão de ld.so), versão 2. Por isso esse nome.