Junções NTFS e Unix Hard Links

3

Estou construindo uma biblioteca de abstração de E / S para o código CIL, e tenho muita dificuldade em entender as diferenças entre uma junção entre duas pastas em NTFS e hard links.

Eles são equivalentes? Existem diferenças que eu deveria saber?

    
por serialseb 21.10.2010 / 00:25

2 respostas

8

Os pontos de junção NTFS são um tipo de ponto de nova análise, atuando efetivamente como links simbólicos, mas restritos a segmentar diretórios locais por caminho absoluto.

Suponha que você tenha

C:\>mkdir a b
C:\>linkd b\c C:\a

O que acontece é que dentro da tabela de diretórios para C:\b , uma entrada de diretório chamada c é inserida, com um atributo $Reparse contendo dados especificando que é um ponto de junção com o destino C:\a .

Quando o Windows 2000 (quando pontos de nova análise e pontos de junção foram introduzidos) encontra um ponto de nova análise, ele é transferido para o manipulador apropriado. Nesse caso, ao acessar um caminho abaixo de C:\b\c , o manipulador de pontos de junção substituiria o caminho C:\b\c with C:\a e as operações normais do sistema de arquivos continuariam a partir daí.

Outros filtros do sistema de arquivos podem ser instalados, interceptando e manipulando outros tipos de pontos de nova análise; O Windows Vista, Server 2008 e posterior vêm com um manipulador para pontos de nova análise "symlink" no NTFS, que pode apontar para um arquivo ou diretório, absoluto ou relativo, local ou remoto - praticamente como links simbólicos em outros sistemas.

Separadamente, o NTFS tem suporte para hardlinks, da mesma maneira que o UNIX - várias entradas de diretório podem apontar para o mesmo "inode", que é o dado real do arquivo. Isso não tem nada a ver com pontos de nova análise. Em quase todos os sistemas, os links físicos só podem ser feitos em arquivos; diretórios hardlinking é repleto de perigo. (Entre outras coisas, como deve ser a entrada .. de um diretório com link físico?)

    
por 21.10.2010 / 06:43
2

Um ponto de nova análise NTFS para um diretório é muito parecido com a montagem de loopback no Linux / UNIX.

Um hardlink NTFS para um arquivo é muito parecido com um hardlink para um arquivo no Linux / UNIX.

Um link simbólico do NTFS é muito parecido com um link simbólico no Linux / UNIX.

Uma versão mais antiga do Cygwin for Windows tratou os pontos de nova análise da mesma forma que os hardlinks, o que fez com que / usr / bin / find se queixasse de loops no sistema de arquivos. As versões posteriores do Cygwin tratam pontos de nova análise para ser o mesmo que links simbólicos, no que diz respeito aos programas compatíveis com POSIX.

    
por 24.03.2012 / 00:53