como “vários nós de arquivo” podem ser associados a um único inode?

3

Estou tentando aprender sobre iNodes e permissões de arquivo. Eu pensei que há um inode que contém as permissões para um único arquivo. O sistema operacional extrai um único inode na memória para verificar as permissões e o arquivo único. Os slides deste livro para a minha classe de segurança de computadores dizem que é assim que funciona. Mas eles também dizem que "vários nós de arquivos podem estar associados a um único inode". Isso parece contraditório. O livro está errado? Perdi alguma coisa? O que está acontecendo?

    
por bernie2436 28.02.2013 / 19:09

2 respostas

3

(By the way, é comumente chamado de inode, não um iNode.)

O livro provavelmente significa isto: vários arquivos nomes podem estar associados a um único inode. Ou seja, o mesmo inode pode ser acessado através de vários nomes diferentes. Em outras palavras, um arquivo pode ter mais de um link físico.

    
por 28.02.2013 / 19:25
3

Depende do que você entende por "nó de arquivo" e "inode". Eu não tenho esse livro, mas tentarei responder sua pergunta.

Tradicionalmente, o termo "inode" referia-se aos metadados em disco sobre um arquivo. Isso inclui o ID do proprietário, as permissões, o tamanho do arquivo em bytes e as referências aos blocos de disco que continham os dados reais do arquivo. Ah, e uma contagem de referência.

Tradicionalmente, um diretório era apenas um arquivo, com dados formatados especialmente, e uma marca em seu inode que indicava "este arquivo constitui um diretório". Cada entrada dos dados especialmente formatados continha um nome (na forma de uma matriz de bytes com terminação nula, uma cadeia de linguagem C) e um número de inode. A partir do número inode, o kernel pode procurar onde encontrar o inode (os metadados no disco). Para cada entrada de diretório, o código do sistema de arquivos do kernel deveria incrementar a contagem de referência do inode. Você pode ver este link contar com o comando stat , na maioria dos linxes, de qualquer forma.

O termo "nó de arquivo" pode se referir à entrada de diretório, essencialmente o nome do arquivo. Muitos nomes de arquivos podem se referir ao mesmo inode, cada nome de arquivo adicional aumentará a contagem de links em um.

Você pode demonstrar muito isso para si mesmo:

touch somefilename
ln somefilename anothername
ls -li somefilename anothername

Você deve ver números idênticos (o número do inode) como o primeiro campo de ls -li output para os dois arquivos. Você pode usar stat somefilename e stat anothername para corroborar os números de inode e as contagens de links. Exclua um dos arquivos e, em seguida, faça um stat no arquivo restante para ver a contagem de links diminuída.

    
por 28.02.2013 / 19:28