Nas primeiras versões do Unix, um bloco continha 512 bytes desde o hardware, passando pelo sistema de arquivos, passando pelo código C, até as ferramentas do usuário.
Hoje em dia existem muitos tipos diferentes de hardware e muitos sistemas de arquivos diferentes (alguns dos quais não têm noção de tamanho de bloco), então “tamanho de bloco” é uma definição arbitrária escolhida por cada ferramenta. A maioria dos sistemas Unix tradicionais manteve o tamanho de bloco de 512 bytes por padrão para compatibilidade com versões anteriores, e é isso que o POSIX exige para vários comandos ( dd
, du
, df
, ls
, find -size
,…) . Vários utilitários GNU / Linux exibem unidades de 1kB por padrão ( du
, df
, ls
,…) a menos que sejam invocados no modo POSIXLY_CORRECT
. Eu acho que a mudança para 1kB é motivada apenas porque é muito mais amigável para os humanos.
O utilitário fdisk
do Linux usou blocos de 1kB para dois decares - o cabeçalho também poderia ter lido kB
. No contexto do fdisk
do Linux, “bloco” sempre significa 1kB. A unidade padrão mudou em versão 2.25 , agora a unidade é de 512 bytes. No modo expert, a unidade sempre foi de 512 bytes. 512 byte é uma unidade de baixo nível mais natural para discos de PC tradicionais porque eles escrevem em setores de 512 bytes, e os limites de partição são alinhados a 512 bytes, portanto, usar 1kB como a unidade leva a ½ frações. Discos grandes modernos têm setores maiores (mas “setores” são amplamente usados para significar 512 bytes, independentemente de quaisquer características físicas ou lógicas do disco), e partições GPT são normalmente alinhadas em 1MB.