Il registro di sistema, in informatica, indica la base di dati in cui sono custodite le opzioni e le impostazioni (setting) di un sistema operativo di tipo Microsoft Windows e di tutte le applicazioni installate. Il concetto di registro di sistema è strettamente legato alla logica dei sistemi operativi Microsoft, che conservano tutte le proprie impostazioni in un numero ristretto di (in Unix esistono file di configurazione per ciascun pacchetto installato). Per accedervi bisogna digitare regedit nella casella esegui, invocabile con la pressione di .

Storia Il registro di sistema risale a prima di Windows 95: la sua prima implementazione risale infatti a Windows 3.0, con un file nominato WIN.INI, dalla quale si è evoluto negli anni (e con le varie versioni di Windows) fino alla sua più recente incarnazione, quella di Windows 11.

Windows 3.0 L'introduzione del registro di sistema in Windows 3.0 fu resa necessaria da due novità di quella versione di Windows: La piattaforma Object Linking and Embedding (OLE) di Microsoft, che per il suo funzionamento aveva bisogno di un deposito stabile dove memorizzare i componenti OLE installati nel sistema; requisito che fu soddisfatto con l'aggiunta nel file WIN.INI della sezione . Il File Manager e il Program Manager, per i quali era necessaria una posizione dove conservare le associazioni tra i tipi di file e le applicazioni che li gestivano, che fu creata nel file WIN.INI come sezione . Il registro di sistema, nella sua primissima versione, risiedeva quindi interamente nel file WIN.INI.

Questo è un esempio della sezione :

[Extensions] bmp=PBrush.exe ^.bmp ^.dib crd=CardFile.exe ^.crd wri=Write.exe ^.wri

Come si può vedere, ad ogni applicazione viene associata una o più estensioni di nome di file.

Una struttura differente veniva impiegata invece nella sezione :

[Embedding] Mplayer=Media Clip, Media Clip, MPlayer.exe, picture Paintbrush.Picture.1=Paintbrush Picture, Paintbrush Picture 1.0, C:\Windows\PBrush.exe, picture

Qui, a fianco dell'ID programmatico (eventualmente completo di numero di versione), compaiono il nome generico della classe, il nome specifico di questa versione della classe, il percorso del programma in grado di creare oggetti di questa classe (fabbrica di oggetti; in inglese impropriamente class factory, fabbrica di classi), e il tipo di oggetto.

Windows 3.1 Il registro di Windows 3.0 era fortemente penalizzato dal risiedere in un file di testo; in Windows 3.1, questa limitazione fu aggirata spostando tutto il registro di sistema in un unico file non testuale, REG.DAT. Questo file era sicuramente un miglioramento rispetto al WIN.INI, ma aveva comunque un limite alla dimensione massima, di ; questo grave limite fece sì che gli sviluppatori di software continuassero a usare file esterni per memorizzare le impostazioni delle loro applicazioni.

Windows 95/98 In Windows 95, la struttura del registro fu ridisegnata completamente: non solo fu separato in due file (USER.DAT e SYSTEM.DAT), ma furono tolti anche quasi tutti i vincoli precedentemente imposti (quello della dimensione massima in primis) e ne fu promosso l'utilizzo massiccio come sostitutivo dei file di configurazione esterni.

Windows NT/2000/XP Nell'obiettivo di un sistema operativo sicuro, Windows NT e i sistemi da esso derivati hanno adottato una strategia supplementare: ogni chiave (nodo) del registro dispone di una propria lista di controllo degli accessi (ACL), che permette quindi di specificare restrizioni in base all'utente che cerca di accedervi. Oltre a questa importante differenza, anche qui il registro è stato ripartito in più file, anche se in maniera differente, e ogni profilo utente include una versione privata della chiave relativa alle impostazioni dell'utente, HKEY_CURRENT_USER.

Descrizione Il registro di sistema di Microsoft Windows Nei sistemi Windows, il registro di sistema è stato introdotto a partire dalla versione Windows 3.0 e ha permesso l'eliminazione della gestione tramite file INI delle informazioni riguardanti: impostazioni dei driver profili hardware impostazioni del software installato profili utente associazioni dei tipi di file librerie di tipi, interfacce e classi di COM criteri di protezione dei sistemi e degli utenti

Criteri di gruppo Dall'avvento di Windows 95, gli amministratori di sistema possono affiancare al registro degli speciali file, detti di criteri di gruppo, che permettono di ridurre o inibire l'accesso a specifiche chiavi del registro (per esempio, per rendere impossibile la modifica delle impostazioni grafiche della shell); l'estensione per questi file è .POL. I criteri di gruppo possono agire su un singolo utente, o su un gruppo di utenti; l'efficacia è garantita dall'applicazione indiretta al registro, che impedisce quindi agli utenti che subiscono le restrizioni di modificare i valori specificati nei criteri. I file di criteri vengono tipicamente distribuiti sui computer dall'amministratore attraverso la rete locale, ma possono anche essere piazzati direttamente sui computer interessati.

Per creare e modificare file di criteri di gruppo, Microsoft fornisce un programma per Windows 9x, POLEDIT.EXE; per i sistemi derivati da Windows NT, è disponibile invece un plugin MMC, che tuttavia è disabilitato in Windows XP Home. Il plugin MMC richiede di essere eseguito da un utente con privilegi amministrativi; può agire sul registro della macchina in locale come anche connettersi ad un registro di sistema remoto e operare su quello. Le impostazioni che il programma permette di modificare sono memorizzate in file .ADM; la shell di Windows, EXPLORER.EXE, include uno di questi file. I file .ADM sono semplici file di testo, con un supporto alla localizzazione dato dal raggruppamento di tutti i testi in un unico punto.

Punti di forza

Rispetto ai classici file INI, il registro offre i seguenti vantaggi: l'omogeneità del formato e dei vincoli permette di eseguire gli script senza bisogno di modificarli per ogni applicazione essendo costituito da un ristretto numero di file in posizioni note il backup è semplice il registro centralizzato e i criteri di gruppo favoriscono la gestione centralizzata da parte degli amministratori il danneggiamento del registry è un evento molto raro e sono previsti sistemi automatici di protezione, di backup e di ripristino gli utenti poco esperti raramente manipolano il registry facendo danni, mentre i file di testo separati sono più facilmente soggetti a modifiche accidentali, sia a seguito di editing sia di operazioni sul file system le impostazioni a livello di computer sono separate dalle impostazioni individuali degli utenti

Da quando anche Windows utilizza le convenzioni dei sistemi operativi stile Unix (cartelle distinte per utente contenenti i file di configurazione di tutti i programmi usati dall'utente) questa caratteristica può essere ottenute anche per altra via.

La gestione centralizzata da parte degli amministratori è ottenibile in maniera anche con un sistema a file per altre vie.

Punti deboli Il registro non è la panacea a tutti i problemi di configurazione del software. In particolare: Un registro danneggiato è in grado di rendere il sistema operativo inutilizzabile, a volte offrendo come unica via d'uscita la re-installazione completa del sistema. Per manipolare il registro, i programmi devono utilizzare le apposite funzioni dell'API di Windows, mentre un normale file testuale di configurazione può essere elaborato con le normali funzioni di manipolazione dei file. Questo obbligo riguarda anche gli utenti, che per accedere al registro devono utilizzare il programma REGEDIT.EXE, mentre per i comuni file di configurazione è sufficiente un qualsiasi applicativo di elaborazione testi. Questo può essere visto anche come un vantaggio, perché scoraggia la manipolazione da parte di utenti inesperti. Nei file INI spesso sono presenti dei commenti per spiegare in che maniera l'utente può agire per variare la configurazione delle applicazioni, mentre il registro non prevede commenti. A causa del fatto che i vari file che costituiscono il registro sono sempre mantenuti aperti (per motivi di prestazioni) dal sistema operativo, il loro backup è possibile solo mediante appositi strumenti, come NTBACKUP.EXE.

Inoltre il registry può subire un degrado di prestazioni nel caso in cui il pacchetto d'installazione sia mal costruito e non rimuova alcune voci in fase di disinstallazione. I generatori commerciali di pacchetti di installazione normalmente non sono soggetti a questi problemi. In ogni caso è buona pratica effettuare regolarmente la pulizia del registro.

Problemi con i sistemi operativi Windows 9x e pulizia del registro Nei computer con Windows 9x, un'installazione del sistema operativo troppo datata può essere soggetta a notevoli rallentamenti dovuti ad un'eccessiva dimensione del registro, che penalizza le prestazioni del sistema, in particolare all'avvio, e spesso è anche causa di instabilità del sistema stesso; la frequenza di questa circostanza ha portato all'associazione "registro → instabilità", che risulta tuttavia meno fondata per i sistemi operativi basati su Windows NT. Esistono comunque dei programmi in grado di pulire il registro.

Alternative al registro in altri sistemi operativi L'esigenza di mantenere i file di configurazione separati è sentita anche in altri sistemi operativi, ma l'approccio di solito consiste nel raggruppamento degli stessi in apposite cartelle del file system, come la cartella Preferences in Mac OS, o la cartella /etc e le cartelle nascoste (quelle cioè il cui nome inizia con un punto) all'interno della home nei sistemi tipo Unix. Con questo approccio, la protezione dei vari gruppi di impostazioni si appoggia direttamente ai permessi d'accesso del file system ospite; inoltre l'unico evento in grado di minare la stabilità di questo sistema è la corruzione del file system, che avrebbe comunque delle gravi ripercussioni sull'intero sistema. La suddivisione in più parti inoltre permette agli utenti di non dover manipolare file cruciali per il sistema operativo solo per modificare le preferenze di un programma; gli interventi su file di impostazioni importanti rimangono così un evento poco frequente.

Posizione A seconda della versione di Windows, il registro di sistema è memorizzato in uno o più file in posizioni note, ma sempre sullo stesso computer; l'unica eccezione, solo da Windows NT in poi, è data dal file del profilo privato di ogni utente che, per via della caratteristica dei profili remoti, può risiedere su una macchina (ospite del profilo) raggiungibile via rete.

Windows 3.0 Il registro, in questa sua prima versione, è semplicemente un'astrazione delle sezioni ed del file WIN.INI.

Windows 3.1x In queste versioni di Windows, il registro risiede fisicamente nel file REG.DAT, ubicato nella cartella d'installazione di Windows (tipicamente C:\WINDOWS).

Windows 9x In Windows 95 e Windows 98 il registro è memorizzato nei file USER.DAT e SYSTEM.DAT, posizionati nella cartella d'installazione di Windows (tipicamente C:\WINDOWS).

Windows Me La collocazione del registro in Windows Me è identica ai suoi predecessori Windows 9x, con l'aggiunta del file CLASSES.DAT.

Windows NT/2000/XP In Windows NT e nei sistemi operativi da esso derivati (2000, XP e Server 2003, il registro è composto da alcuni file posizionati in %SystemRoot%\System32\Config (tutti senza estensione): SAM Security Software System Default UserDiff Inoltre, nella cartella di ogni profilo utente, è memorizzata una versione personalizzata di questi file: NTUser.dat

Struttura Il registro è organizzato in una gerarchia originata da alcune sezioni principali; ogni nodo della gerarchia è detto chiave (key), e ogni nodo può contenere uno o più elementi di dati, detti valori (values), di cui uno anonimo (retaggio di compatibilità).