Sim, eles compartilham um senso comum da palavra "link", no sentido abstrato de "usar uma chave (de texto) para procurar um recurso nomeado". É útil começar olhando para o tipo "regular" de link de arquivo, o link físico.
Um link físico é uma entrada em um diretório Unix que associa um nome a um arquivo específico no disco, apontando para seu inode . Quando o arquivo é acessado (aberto, stat
ed), o driver do sistema de arquivos procura o inode correspondente ao nome solicitado. O diretório é uma tabela que conecta nomes com números de inode; Nesta listagem, o número na frente é o inode em que o arquivo está armazenado:
6951168 -rwxr-xr-x 1 christopher christopher 209 Apr 24 2014 CAPS
6951172 -rwxr-xr-x 1 christopher christopher 976 Aug 6 2012 offline
6951175 -rwxr-xr-x 1 christopher christopher 541 Apr 8 2014 records-backup.sh
6950166 -rwxr-xr-x 1 christopher christopher 778 Nov 4 07:05 switch-monitors.sh
Um link simbólico é um recurso que, em vez de apontar diretamente para o inode, aponta para um pequeno arquivo de texto especial que possui um caminho relativo dentro dele. Para a maioria das finalidades, ele procura programas como um link físico regular e recebeu o nome por analogia.
Um vinculador no sentido de ld.so
realiza uma operação análoga ao uso de links físicos pelo sistema de arquivos. Os programas C (e compatíveis) usam uma tabela de símbolos que lista os nomes das funções que o programa deseja chamar de outras bibliotecas. O vinculador procura a localização da memória para a função correspondente a cada nome solicitado e a preenche (a maneira precisa varia).