Não há nada chamado inode
que é concedido para existir.
O que as pessoas geralmente acreditam sobre o que é inode
é um detalhe de implementação do sistema de arquivos UNIXv6 / UNIXv7 que foi reimplementado no UFS. Observe que você não pode confiar nos detalhes da implementação.
Não há concessão de que haja inode structure
, o que é concedido para existir é apenas um inode number
que pode ser usado para identificar um arquivo específico.
Quando você faz um "link físico" de um arquivo, tudo o que o sistema faz é organizar uma entrada de diretório de forma a obter o mesmo número de inode ao emitir a chamada do sistema stat () para todos os arquivos vinculados.
Em sistemas de arquivos que ainda usam estruturas de inode, isso é feito colocando as entradas de diretório na mesma estrutura de inode.
Em sistemas de arquivos modernos que usam copy on write e, portanto, foram derivados do meu documento WOFS de 1991 (o ZFS é um sistema de arquivos), não há estrutura inode.
Meu WOFS usa gnodes
com um número de gnode que é substituído por um novo número com cada operação de gravação no arquivo (já que há um novo gnode gravado em um local diferente nesse caso). No entanto, existe um número adicional de inode que é mantido estável ao longo do tempo. No WOFS, um "hard link" é implementado como um link simbólico relativo ao inode, enquanto um "symlink" no WOFS é um link simbólico relativo ao nome. Observe que, para um arquivo de link fixo com 5 nomes que apontam para o mesmo arquivo, existem 5 estruturas de gnode.
O ZFS usa uma mistura do conceito inode e gnode. O ZFS como um sistema de arquivos moderno, no entanto, não funciona como as coisas funcionavam na década de 1970.