Penso che tu sia confuso, forse perché hai letto diversi documenti che usano una terminologia diversa. Termini come "dimensione del blocco" e "dimensione del cluster" non hanno un significato universale, anche nel contesto della letteratura del filesystem.
Filesystem
Per ext2 o ext3 , la situazione è relativamente semplice: ogni file occupa un certo numero di blocchi . Tutti i blocchi su un determinato file system hanno le stesse dimensioni, generalmente uno di 1024, 2048 o 4096 byte. Un file¹ la cui dimensione è compresa tra N blocchi più un byte e N + 1 blocchi occupa N + 1 blocchi. La dimensione del blocco è quella specificata mke2fs -b
. Non esiste una nozione separata di cluster.
Il file system FAT utilizzato in particolare da MS-DOS e dalle prime versioni di Windows ha un'allocazione dello spazio altrettanto semplice. Ciò che ext2 chiama blocchi, FAT chiama cluster ; il concetto è lo stesso.
Alcuni filesystem hanno uno schema di allocazione più sofisticato: hanno blocchi di dimensioni fisse, ma possono usare lo stesso blocco per memorizzare gli ultimi byte di più di un file. Questo è noto come sottoallocazione a blocchi ; Reiserfs e Btrfs lo fanno, ma non ext3 o neanche ext4.
Utilità
Le utility Unix usano spesso la parola "blocco" per indicare un'unità di dimensioni arbitrarie, in genere 512 byte o 1kB. Questo utilizzo non è correlato ad alcun particolare filesystem o hardware del disco. Storicamente, il blocco 512B è nato perché i dischi e i filesystem all'epoca funzionavano spesso in blocchi da 512B, ma l'uso moderno è semplicemente arbitrario. Le utility e le interfacce unix tradizionali usano ancora a volte blocchi da 512B, sebbene ora siano spesso preferiti blocchi da 1kB . È necessario controllare la documentazione di ciascuna utility per sapere quale dimensione del blocco sta utilizzando (alcuni hanno un interruttore, ad esempio du -B
o df -B
su Linux).
Nell'utilità GNU / Linux stat
, la blocks
figura è il numero di blocchi da 512 B utilizzati dal file. La IO Block
figura è la dimensione preferita per l'input-output del file, che in linea di principio non è correlata ma di solito un'indicazione della dimensione del blocco del filesystem sottostante (o dimensione del cluster se è così che si desidera chiamarlo). Qui, hai un file di 13 byte, che occupa un blocco sul filesystem ext3 con una dimensione di blocco di 2048; pertanto il file occupa 4 unità da 512 byte (chiamate "blocchi" da stat
).
dischi
La maggior parte dei dischi presenta un'interfaccia che mostra il disco come un insieme di settori . Il disco può solo scrivere o leggere un intero settore, non singoli bit o byte. La maggior parte dei dischi rigidi ha settori da 512 byte, anche se i dischi del settore da 4kB hanno iniziato ad apparire un paio di anni fa.
La dimensione del settore del disco non è direttamente correlata alla dimensione del blocco del filesystem, ma avere un blocco in un numero intero di settori è migliore per le prestazioni.
¹
Eccezione: i file sparsi risparmiano spazio.