Ogni sistema operativo utilizza il proprio file system per memorizzare i dati. Windows utilizza NTFS, macOS utilizza APFS e la maggior parte delle distribuzioni Linux utilizza Ext4. Sebbene questi file system siano fondamentalmente diversi gli uni dagli altri, una caratteristica che esiste in tutti questi file system è il journaling.
Impariamo di più sui file system di journaling e su come influenzano i computer di tutti i giorni.
Che cos’è il journaling?
Immagina ogni file su un computer come un catalogo di una biblioteca unico di riviste, periodici o documenti. Ogni nuovo numero aggiunto a un catalogo cambierebbe leggermente le sue informazioni. Invece di cercare una voce nella biblioteca, devi solo controllare il catalogo pertinente.
Il journaling nei file system informatici funziona in modo molto simile. Il suo scopo è tenere traccia delle modifiche non ancora applicate al file system. Anche dopo eventuali arresti anomali o arresti imprevisti, è comunque possibile accedere all’ultima versione del file con una minore probabilità che venga danneggiata.
Il termine “diario” deriva dall’analogia di un diario. Tutte le modifiche registrate in una voce del diario vengono memorizzate in base alla data e all’ora. In modo simile, l’inserimento nel journal consente di archiviare tutti gli aggiornamenti di un file in una porzione contigua del disco.
Questi aggiornamenti non devono essere posizionati fisicamente l’uno vicino all’altro: infatti, le voci del file journal sono sparse su tutto il disco. Ma invece di accedervi in modo casuale, sono disponibili in una sequenza simile a un diario che è migliaia di volte più veloce.

L’inserimento nel journal consente di risparmiare molto tempo nel recupero dell’archiviazione di file a causa delle allocazioni di memoria contigue.
Definizioni
A seconda del sistema operativo, ci sono diversi tipi di voci di journaling che discuteremo di seguito. Prima di farlo, dobbiamo essere chiari su alcuni termini numerici.
Tebibytes (TiB): sappiamo tutti quanto è un gigabyte. Un tebibyte (TiB) è uguale a 1024 (= 210) gigabyte. TiB è una delle unità predefinite per esprimere valori elevati nella memorizzazione di file. Inoltre, 1 TiB = 1,09951 terabyte (TB).
Pebibyte (PiB): un pebibyte (PiB) è uguale a 1024 TiB o circa un milione di gigabyte – un valore davvero molto grande.
Cluster: i cluster di dati sono la più piccola unità di spazio su disco che può essere utilizzata per memorizzare un file. Può variare da 512 byte per un singolo settore a 64 KB per 128 settori.
1. NTFS
New Technology File System (NTFS) è il sistema di journaling predefinito di Microsoft per Windows e Windows Server. Utilizza i file di registro e le informazioni sui punti di arresto per ripristinare i valori stabili di un file system dopo un riavvio.
NTFS supporta grandi volumi di dati: per una dimensione del cluster di 4 KB, può contenere 16 TiB di dati. Per una dimensione del cluster di 64 KB (massima), significa 256 TiB di dati con 256 TiB come dimensione massima del file.
Al giorno d’oggi, NTFS corregge qualsiasi danneggiamento nei file online attraverso ciò che è noto come “NTFS autoriparante”. Gli utenti di Windows 10 potrebbero ricordare un’esperienza di inattività dovuta a Chkdsk
, che affliggeva le versioni precedenti di Windows. Nell’ultimo aggiornamento NTFS con riparazione automatica, il problema è stato risolto online e non si verificano tempi di inattività.
2. Ext
L’Extended File System (ext) è stato il sistema di journaling di Linux sin dall’inizio. È stato ispirato da Unix File System (UFS) e ha subito altre tre iterazioni dal suo arrivo all’inizio degli anni ’90.
- ext2: originariamente utilizzato in Debian e Red Hat Linux, ext2 è ancora utilizzato nei supporti flash come schede SD e unità USB. Può contenere da 2 a 32 TiB di dati con una dimensione massima del cluster di 8 KB.
- ext3: come terzo file system esteso, ext3 è stato utilizzato con Linux, BSD e ReactOS. I limiti di dimensione sono simili a ext2.
- ext4: l’ultima versione del file system esteso, viene utilizzata dall’archivio file di Google, BSD, PowerPC e dalle distribuzioni Linux più recenti. I limiti di dimensione sono pari a 1024 PiB o circa un milione di TiB. La dimensione massima del cluster è 64 KB.
ext4 utilizza checksum nel journal per migliorare l’affidabilità, in quanto può evitare in modo sicuro un’attesa di I / O del disco durante il journaling e migliorare leggermente le prestazioni del disco.
3. APFS
L’Apple File System (APFS) viene utilizzato con macOS High Sierra, iOS 10.3 e versioni successive e alcuni altri sistemi. Supporta fino a 8000 PiB (263 bytes), che è circa otto volte maggiore di ext4.

Le funzionalità principali di APFS sono molte: includono la creazione di “istantanee”, che è come una fotocopia del sistema in un punto particolare. Come NTFS, utilizza i checksum per garantire l’integrità dei dati e protegge dai crash del sistema utilizzando un approccio chiamato “copia su scrittore”. APFS utilizza la crittografia completa del disco.
Conclusione
Il journaling nei file system è un’assicurazione di base contro arresti anomali del sistema e arresti imprevisti. Scrivendo rapidamente le modifiche a un diario, possiamo garantire che tutte le modifiche ai file vengano registrate e non vengano perse durante gli arresti di alimentazione o i crash del computer.
Ci sono molti file system journaled oltre a quelli discussi qui. Oracle, VMware, BSD, Cisco, Solaris e molti altri hanno le proprie unità di giornale proprietarie.