Qual é a diferença entre o tamanho 'físico' e 'lógico'?

7

Acabei de descobrir o comando mdls em OS X , que imprime os metadados associados a um determinado arquivo. Este comando me diz tanto um "tamanho físico" ("kMDItemPhysicalSize") quanto um "tamanho lógico" ("kMDItemLogicalSize"). Por exemplo, o arquivo de texto atual que eu estou vendo tem:

  • tamanho físico: 1152
  • tamanho lógico
  • : 4096

Se eu fizer um ls -l , seu tamanho será 1152. Se eu abrir o painel 'get info', ele diz "1,152 bytes (4 KB no disco)". Então, qualquer que seja o "tamanho lógico", aparentemente equivale ao tamanho "no disco".

    
por DilithiumMatrix 15.05.2014 / 18:20

1 resposta

9

Os discos são divididos em setores, que são 512 bytes * em seu disco rígido típico ou SSD.

Os sistemas de arquivos são responsáveis por receber solicitações de arquivos com base no nome (algo que você entende) e traduzir em pedidos de leitura / gravação em bloco (algo que o disco entende). Para que isso funcione, um mapa de quais setores pertence a qual arquivo é necessário. Há muitas maneiras de fazer isso e, portanto, existem muitos sistemas de arquivos existentes. O Windows usa NTFS e FAT32, por exemplo, e o Linux tem vários, incluindo ext2, ext3, etc. Não tenho certeza sobre sistemas de arquivos Mac, mas é o mesmo princípio.

Alguns sistemas de arquivos terão um nível acima dos setores chamados clusters , que são conjuntos de setores - porque um mapa de cada setor em discos grandes pode ocupar muito espaço. No NTFS, por exemplo, você pode especificar o tamanho do cluster ("unidade de alocação" é outro nome para ele) e 4096 bytes (8 setores) é um deles que você pode escolher.

Então, considerando tudo isso, o "mínimo" que você pode realmente ler ou gravar em um disco será o tamanho do setor ou o tamanho do cluster. Então, enquanto você pode escrever 4097 bytes em um disco, o sistema de arquivos tem que dar a esse arquivo dois clusters, então ele ocupa 8192 bytes do seu espaço livre. Assim, você tem o tamanho lógico (tamanho que consome no disco) e o tamanho físico (o tamanho real do arquivo).

* Em alguns discos "Advanced Format" mais novos, ele é internamente 4Kbytes, mas ainda parece com setores de 512 bytes no SO para compatibilidade. SSDs são muito diferentes no interior, mas novamente ainda parecem com setores de 512 bytes no SO.

    
por 15.05.2014 / 18:29