Por que os sistemas de arquivos têm limites de tamanho de arquivo e limites de tamanho de partição? [fechadas]

0

Todos os sistemas de arquivos têm limites variados, por que esse caso é muito técnico? Então, realmente, o que permite que um sistema de arquivos tenha um tamanho de arquivo maior ou um tamanho de partição maior do que outro sistema de arquivos?

Uma das minhas teorias foi propagada a partir do uso de inodes e como os sistemas de arquivos criam uma quantidade definida de inodes quando a partição é formatada; no entanto, isso explica apenas a quantidade máxima de arquivos em um sistema de arquivos.

    
por Birds With Feathers 23.11.2017 / 14:44

1 resposta

4

Muitos desses limites vêm de estruturas de dados contendo campos de tamanho fixo onde uma contagem (de bytes, setores, etc.) seria armazenada.

Por exemplo, a tabela de partições do MBR (o modo como os sistemas operacionais modernos usam) tem campos de 32 bits para contagem do setor. São quatro bytes, um tamanho "conveniente" para CPUs. (O formato de particionamento GPT mais recente usa valores de 64 bits.)

O maior número que pode caber em 32 dígitos binários é 2 32 -1, ou 4294967295 em decimal. Para discos com setores de 512 bytes, isso significa 2199023255040 bytes - apenas um setor com menos de 2 TiB.

Você pode encontrar problemas semelhantes em todos os lugares - o sistema de arquivos FAT32 só pode ter até 2 clusters 32 -1 (embora um cluster no FAT possa variar de tamanho; essa é a "unidade de alocação" ao formatar) e mantenha os arquivos até 2 32 -1 bytes (4 GiB) devido ao mesmo limite de tamanho de campo.

No momento em que vários sistemas de arquivos foram criados, seu limite máximo parecia muito ridículo e "improvável que fosse um problema", e seria bastante ineficiente trabalhar com números de 64 bits ou possivelmente até 32 bits em um sistema executando o MS-DOS. (As versões anteriores do MS-DOS nem sequer suportavam pastas!)

Hoje em dia os sistemas de arquivos usam contagens de 64 bits, o que é "improvável que seja um problema" (2 64 é muito ).

Mas além disso , os sistemas de arquivos modernos mudaram muito. Em vez de tabelas de inodes estáticos ou entradas de diretório linear, elas crescem conforme o necessário e usam estruturas como árvores B +. (Estou falando de NTFS, ZFS, possivelmente XFS ...)

    
por 23.11.2017 / 15:21