Links físicos versus links simbólicos: qual deles é mais rápido / menor? [duplicado]

3

Links físicos

Dado um arquivo original.txt , um link de hardware hardlink.txt apontará para o mesmo inode e continuará existindo mesmo quando original.txt for deletado.

Links simbólicos

Dado um arquivo original.txt , um link simbólico symlink.txt apontará para o nome do arquivo.

Pergunta: Qual deles é mais rápido e qual é menor?

Minha intuição diz que os hard links seriam mais rápidos, já que são indistinguíveis do arquivo original. No entanto, tudo depende da velocidade dos links simbólicos.

Além disso, qual deles ocupa menos espaço no disco rígido?

Gostaria de ver respostas baseadas em medidas, como perguntas como este

    
por Ruben Verborgh 25.11.2013 / 12:50

2 respostas

2

Um link simbólico cria um novo arquivo contendo o caminho para o arquivo vinculado. Assim, você criaria um novo arquivo real, aproximadamente o tamanho do caminho (relativo ou absoluto) para o arquivo de destino (o arquivo para o qual o link aponta).

Um link físico apenas cria uma nova entrada em um diretório (ou seja, o arquivo especial que realmente contém os pares inode / nomes do diretório), então nada novo é criado - a menos que o diretório específico já esteja "cheio", então A tabela inode / name-pair deve ser aumentada (por exemplo, de 1024 a 2048 em kbytes) para obter espaço para a entrada do link.

Eu imagino que um link simbólico levaria mais tempo, já que o sistema precisará ler dois arquivos - tanto o link quanto o arquivo real ... além disso, provavelmente algum processamento do arquivo de link (ou seja, analisando o caminho ) e possivelmente ter que usar outra partição ou disco físico. O link físico, apenas teria que ler o arquivo real. Lembre-se, todos os hard-links são "criados iguais", eles não matam quais links foram os primeiros (que eram a "fonte" e qual era o "destino") assim que foram criados.

    
por 25.11.2013 / 13:18
1

Os links simbólicos adicionam um nível de indireção, portanto, são mais lentos para abrir do que os links físicos, embora provavelmente não sejam suficientes para fazer uma diferença notável em casos de uso comuns.

O tamanho do disco de um link simbólico depende da implementação do sistema de arquivos. Eu diria que ele é do mesmo tamanho com um sistema de arquivos moderno que otimiza o armazenamento de nomes usando "links simbólicos rápidos" ou um pouco maior, especialmente quando o caminho vinculado é muito longo para caber na estrutura de dados do arquivo.

Uma vez aberto, o uso de links simbólicos ou links físicos não faz diferença no que diz respeito às operações de leitura / gravação.

Edit: Um link simbólico precisa armazenar o caminho para o arquivo vinculado em algum lugar. Originalmente, isso foi feito em um bloco de dados. Mais tarde, a maioria dos sistemas de arquivos implementou links simbólicos rápidos, nos quais esse caminho era armazenado na própria estrutura de dados do arquivo, salvando tanto a leitura quanto o espaço em disco.

    
por 25.11.2013 / 13:06