O conteúdo de um arquivo é sempre armazenado continuamente?

1

Nos sistemas de arquivos ext,

  1. O conteúdo de um arquivo é sempre armazenado continuamente? Ou o conteúdo do arquivo pode ser particionado em diferentes partes, com cada parte armazenada continuamente, e todas as partes armazenadas não continuamente? (O armazenamento de o conteúdo de um arquivo é apontado por seu inode).
  2. Um inode pode ter vários ponteiros diretos e indiretos apontando para o conteúdo de um arquivo. Os ponteiros estão apontando para locais diferentes dentro do conteúdo do arquivo, para tornar o conteúdo do arquivo de alguma forma "aleatoriamente" acessível?

Obrigado.

    
por Tim 02.08.2014 / 05:34

2 respostas

2

Não. Os arquivos nem sempre são armazenados continuamente; armazenamento descontínuo na verdade tem um nome, "fragmentação" (porque cada parte armazenada separadamente do arquivo é um "fragmento"). Isso é obrigatório, porque senão você não conseguirá criar um arquivo maior que o maior espaço livre contíguo. E anexar a arquivos geralmente falharia (ou, alternativamente, exigiria reescrever o arquivo inteiro para movê-lo).

O inode tem campos para dizer "bytes 0 a 1048575 começam no bloco 10.000", "bytes 1048576 a 2097152 começam no bloco 300", etc. Um inode é um tamanho fixo, portanto há um limite para o número de fragmentos que pode ser armazenado no inode. Quando mais fragmentos são necessários, o inode armazena um ponteiro para um bloco diferente; os fragmentos são armazenados lá.

Se o fragmento é apontado diretamente pelo inode, isso é um ponteiro direto.
Se o fragmento for armazenado fora do inode, isso é um ponteiro indireto.

Um artigo forense digital na SANS tem uma boa imagem explicando. Então, o artigo da Wikipedia . Observe que as extensões do ext4 funcionam de maneira diferente; novamente um artigo na SANS .

    
por 02.08.2014 / 05:51
1

A maioria dos formatos linux / unix ( ext2 / ext3 / ext4 e HFS / HFS+ , btrfs e ZFS ) tentam manter os dados unfragmented, mas sempre haverá alguns pequenos quantidade de fragmentação. Normalmente, todos os dados, com exceção de uma pequena quantidade, serão contíguos.

    
por 02.08.2014 / 05:51