Em primeiro lugar, e sei que esse não foi um dos termos da sua pergunta, você deve entender os metadados . Sucintamente, e roubados da Wikipedia, os metadados são dados sobre dados. Ou seja, os metadados contêm informações sobre um dado. Por exemplo, se eu possuo um carro, tenho um conjunto de informações sobre o carro, mas que não faz parte do próprio carro. Informações como número de registro, marca, modelo, ano de fabricação, informações sobre seguros e assim por diante. Todas essas informações são coletivamente chamadas de metadados. Nos sistemas de arquivos Linux e UNIX, os metadados existem em vários níveis da organização, como você verá.
O superbloco é essencialmente os metadados do sistema de arquivos e define o tipo, tamanho, status e informações do sistema de arquivos sobre outras estruturas de metadados (metadados dos metadados). O superbloco é muito crítico para o sistema de arquivos e, portanto, é armazenado em várias cópias redundantes para cada sistema de arquivos. O superbloco é uma estrutura de metadados de "alto nível" para o sistema de arquivos. Por exemplo, se o superbloco de uma partição / var ficar corrompido, o sistema de arquivos em questão (/ var) não poderá ser montado pelo sistema operacional. Geralmente nesse evento, você precisa executarfsck
que seleciona automaticamente uma cópia alternativa do superbloco e tenta recuperar o sistema de arquivos. As próprias cópias de backup são armazenadas em grupos de blocos espalhados pelo sistema de arquivos, com a primeira armazenada em um deslocamento de 1 bloco desde o início da partição. Isso é importante no caso de uma recuperação manual ser necessária. Você pode visualizar informações sobre backups de superbloco com o comando dumpe2fs /dev/foo | grep -i superblock
que é útil no caso de uma tentativa de recuperação manual. Suponhamos que o comando dumpe2fs produza a linha Backup superblock at 163840, Group descriptors at 163841-163841
. Podemos usar essa informação e conhecimento adicional sobre a estrutura do sistema de arquivos, para tentar usar esse backup superbloco: /sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo
. Observe que eu assumi um tamanho de bloco de 1024 bytes para este exemplo.
Um inode existe em um sistema de arquivos ou representa um metadado sobre um arquivo. Para maior clareza, todos os objetos em um sistema Linux ou UNIX são arquivos; arquivos, diretórios, dispositivos reais etc. Observe que, entre os metadados contidos em um inode, não existe um nome de arquivo como os humanos pensam, isso será importante mais tarde. Um inode contém essencialmente informações sobre propriedade (usuário, grupo), modo de acesso (permissões de leitura, gravação, execução) e tipo de arquivo.
Um dentry é a cola que mantém inodes e arquivos juntos, relacionando números de inodes a nomes de arquivos. Os dentries também desempenham um papel no cache de diretórios que, idealmente, mantém os arquivos mais frequentemente disponíveis para acesso mais rápido. A travessia do sistema de arquivos é outro aspecto do dentry, pois mantém um relacionamento entre os diretórios e seus arquivos.
Um arquivo , além de ser o que os humanos normalmente pensam quando apresentados com a palavra, é realmente apenas um bloco de dados arbitrários relacionados à lógica. Comparativamente muito monótono, considerando todo o trabalho realizado (acima) para acompanhá-los.
Compreendo perfeitamente que algumas frases não fornecem uma explicação completa de qualquer um desses conceitos; portanto, fique à vontade para solicitar detalhes adicionais quando e onde necessário.