Il famoso
registro di Windows usa un modello di allocazione simile a quella utilizzata per i file da parte del file system: è per questo che un'analoga deframmentazione gioverebbe sia all'occupazione di spazio, che all'aumento delle prestazioni, soprattutto quando l'occupazione su disco inizia a crescere in maniera rilevante: fino a
20-40 MB per XP, per non parlare dei
60-80 MB di Vista.
Il
registro di Windows svolge un'importante funzione sia a livello statico che dinamico: oltre a contenere ogni sorta di informazioni sul sistema operativo, possiede anche dati vitali a runtime su hardware, driver, periferiche e software utilizzati nel computer. Per questo, col passare del tempo,
esso può arrivare a contenere una certa quantità di rimasugli inutili, sia riguardanti vecchie periferiche che software non completamente - o erroneamente - disinstallato.
Ma andiamo ad analizzare la
struttura fisica del registro, o al limite a rinfrescare la memoria ai lettori che ne fossero già edotti. I dati di
registro sono immagazzinati in particolari strutture dette
hive (
alveari), che riflettono l'organizzazione gerarchica delle chiavi e dei valori. Gli
hive sono a loro volta suddivisi in blocchi, simili ai cluster utilizzati dal file system; l'ampiezza dei blocchi è settata di default a 4 KB: ogni volta che nuovi dati sono aggiunti a un
hive, esso aumenta la sua dimensione tramite passi di 4 KB.
Dentro un
hive, per continuare la similitudine, i dati sono suddivisi in
cellule: una cellula può contenere una chiave, un valore, un SID o una lista di sotto-chiavi o valori di chiave. Il primo campo di una cellula identifica il tipo di dato, seguito da uno o più valori di quel tipo; appena una cellula si unisce all'
hive, esso viene espanso per contenerla di un'unità di spazio detta
bin (letteralmente, contenitore), che rappresenta l'ampiezza della cellula, aumentata dallo spazio necessario per raggiungere un multiplo di 4 KB;
lo spazio allocato potrebbe quindi rimanere parzialmente vuoto, se non è utilizzato da altre cellule.
Inoltre, appena viene cancellato un valore o una chiave di
registro,
le celle che contengono tale valore vengono deallocate, e passate a una lista di spazio libero, la quale può essere allocata nuovamente
on demand. Tale politica porta chiaramente a un'ulteriore frammentazione e, ciò che è peggio,
Microsoft non mette a disposizione nessuna utility di defrag per il registro di configurazione. Per questo, nella seconda parte, andremo ad analizzare il funzionamento di varie utility adatte allo scopo, recensite in un
articolo su
InformIT, dal quale, tra l'altro, ho tratto questa breve introduzione.