Registro di sistemaIl 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 file (in Unix esistono file di configurazione per ciascun pacchetto installato). Per accedervi bisogna digitare StoriaIl registro di sistema risale a prima di Windows 95: la sua prima implementazione risale infatti a Windows 3.0, con un file nominato Windows 3.0L'introduzione del registro di sistema in Windows 3.0 fu resa necessaria da due novità di quella versione di Windows:
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.1Il 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 64 kB; questo grave limite fece sì che gli sviluppatori di software continuassero a usare file esterni per memorizzare le impostazioni delle loro applicazioni. Windows 95/98In 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/XPNell'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. DescrizioneIl registro di sistema di Microsoft WindowsNei 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:
Criteri di gruppoDall'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 forzaRispetto ai classici file INI, il registro offre i seguenti vantaggi:
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 deboliIl registro non è la panacea a tutti i problemi di configurazione del software. In particolare:
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 registroNei 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. Va anche considerato che diversa cache di Windows nonché altre impostazioni che non si riesce a eliminare (oppure a riportare nelle condizioni iniziali) con i comandi del sistema operativo risiedono sul registro e, per operare, non si può che agire sul registro. È opportuno quindi, prima di procedere a modifiche, effettuare un backup del registro per poterlo poi recuperare in caso di problemi.[poco chiaro e molto pleonastico] Alternative al registro in altri sistemi operativiL'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 PosizioneA 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.0Il registro, in questa sua prima versione, è semplicemente un'astrazione delle sezioni Windows 3.1xIn queste versioni di Windows, il registro risiede fisicamente nel file REG.DAT, ubicato nella cartella d'installazione di Windows (tipicamente Windows 9xIn Windows 95 e Windows 98 il registro è memorizzato nei file USER.DAT e SYSTEM.DAT, posizionati nella cartella d'installazione di Windows (tipicamente Windows MeLa collocazione del registro in Windows Me è identica ai suoi predecessori Windows 9x, con l'aggiunta del file CLASSES.DAT. Windows NT/2000/XPIn Windows NT e nei sistemi operativi da esso derivati (2000, XP e Server 2003, il registro è composto da alcuni file posizionati in
Inoltre, nella cartella di ogni profilo utente, è memorizzata una versione personalizzata di questi file:
StrutturaIl 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à). Le chiavi di primo livello (chiavi radice, root keys) hanno il nome interamente in maiuscolo con "HKEY" come prefisso, dall'abbreviazione di handle to a key (che ha origine dalla API di Windows), traducibile come riferimento alla chiave; i loro nomi sono solitamente abbreviati in una sigla di tre o quattro lettere, con prefisso "HK". Il percorso di una chiave viene indicato con una sintassi simile ai percorsi di file in Windows, utilizzando quindi il carattere "\" (barra rovesciata) come separatore; per esempio, Analogamente, un valore viene identificato dal percorso unito al nome del valore stesso, come in Un valore può consistere in:
Sono definiti anche alcuni altri tipi di valore, ma sono impiegati solo in contesti particolari, come per esempio per memorizzare la configurazione di un driver Plug and Play (vari nomi tecnici, fra cui REG_RESOURCE_REQUIREMENTS_LIST). Chiave HKEY_CLASSES_ROOTIn HKEY_CLASSES_ROOT (abbreviato in HKCR) sono memorizzate informazioni circa le applicazioni registrate, come le associazioni dei tipi di file e le classi OLE. A partire da Windows 2000, HKCR è una fusione (dinamica) di Chiave HKEY_CURRENT_USERIn HKEY_CURRENT_USER (abbreviato in HKCU) sono memorizzate informazioni circa i dati relativi al profilo dell'utente attivo. HKCU è un collegamento simbolico alla chiave relativa all'utente contenuta in HKEY_USERS. "User"=hex(0):73,6c,74,61,6e,37,35,00 Chiave HKEY_LOCAL_MACHINEIn HKEY_LOCAL_MACHINE (abbreviato HKLM) sono memorizzate informazioni circa le impostazioni comuni a tutti gli utenti del sistema. Nella sua sottochiave Chiave HKEY_USERSIn HKEY_USERS (abbreviato HKU) sono memorizzate informazioni circa le chiavi HKEY_CURRENT_USER di tutti gli utenti connessi al sistema. Chiave HKEY_CURRENT_CONFIGIn HKEY_CURRENT_CONFIG (abbreviato HKCC) sono memorizzate informazioni volatili sulla sessione. Questa chiave radice è presente solo nel registro delle versioni di Windows derivate da Windows NT. Chiave HKEY_DYN_DATAIn HKEY_DYN_DATA (abbreviato HKDD) sono memorizzate informazioni circa le statistiche sulle prestazioni che possono essere visualizzate con il monitor di sistema ( ModificaInterfaccia graficaPer modificare il registro manualmente, Microsoft fornisce con i suoi sistemi operativi Windows un'applicazione apposita, REGEDIT.EXE o REGEDT32.EXE (a seconda della versione del sistema). La disponibilità di un applicativo per modificare il registro, comunque, non implica che questa sia un'operazione per tutti: una disattenzione durante la modifica del registro può portare a rendere il sistema inutilizzabile; proprio a causa della delicatezza di questa operazione, molti produttori di software offrono applicazioni specializzate nella modifica del registro con un'interfaccia grafica più simile al Pannello di controllo, e quindi più familiare all'utente medio; alcune società producono anche programmi per la pulizia automatica del registro, operazione anch'essa potenzialmente pericolosa. Anche Microsoft stessa mette a disposizione gratuitamente un piccolo programma di nome TweakUI, che permette di modificare molti parametri dell'interfaccia grafica di Windows e di apportarle alcune piccole ottimizzazioni. Storia di REGEDIT (e REGEDT32)Un primordiale strumento per la modifica del registro fece la sua comparsa con Windows 3.1, con il nome di Editor delle informazioni di registrazione (Registration info editor, nella versione in lingua inglese), REGEDIT.EXE; lo scopo principale di questo programma era di modificare le associazioni di file e le registrazioni dei componenti OLE. Con l'introduzione di Windows NT, la neonata API Win32 introdusse il concetto di permessi d'accesso anche per le chiavi del registro; per gestirle correttamente assieme alle altre nuove funzionalità del registro, fu creato appositamente un nuovo programma, REGEDT32.EXE, decisamente più completo del suo predecessore a 16 bit REGEDIT.EXE. Qualche anno più tardi, con l'avvento di Windows 95, REGEDIT.EXE fu ribattezzato come l'attuale Editor del Registro di sistema e fu portato a 32 bit. Questo tuttavia non implementava la sezione riguardante la sicurezza di Win32, così rimase un prodotto a sé stante, con un percorso produttivo disgiunto da quello di REGEDT32.EXE. Questa situazione rimase invariata anche con l'introduzione di Windows 98, dal momento che esso era solo una modesta evoluzione di Windows 95, almeno dal punto di vista della sicurezza. Il nuovo REGEDIT.EXE aveva un'interfaccia utente più funzionale e più accattivante del suo analogo per Windows NT; tuttavia era in grado di manipolare solo un sottoinsieme dei tipi di dato previsti da Win32 e, come detto sopra, non permetteva la modifica dei permessi d'accesso alle chiavi (che erano, di fatto, assenti). Successivamente, prima con Windows NT 4.0 e poi con Windows 2000, furono distribuiti ambedue gli strumenti. Questo lasciava agli utenti la scelta fra un programma più rozzo, ma efficace, o un programma con un'interfaccia utente più familiare e pratica (simile in tutto e per tutto a Esplora risorse), ma che non permetteva di sfruttare tutte le possibilità del sistema operativo. In particolare, essendo REGEDIT.EXE incapace di gestire molti dei tipi di dato del potente registro di Windows NT e dei suoi discendenti, la modifica di un valore di un tipo di dato sconosciuto a REGEDIT.EXE poteva portare alla corruzione del valore, con pesanti implicazioni sulla stabilità del sistema. Finalmente, con Windows XP, i due programmi sono stati fusi in un discendente unico, fondamentalmente applicando la comoda interfaccia utente di REGEDIT.EXE al più sofisticato REGEDT32.EXE. Il risultato è chiamato REGEDIT.EXE, ed è presente un mini-programma di nome REGEDT32.EXE che rimanda sempre a REGEDIT.EXE. Riga di comandoPer i sistemi basati su Windows NT esiste uno strumento che permette di operare sul registro di sistema da riga di comando. È incluso in Windows XP con il nome di REG.EXE, ed è disponibile separatamente per le versioni precedenti del sistema operativo di Microsoft. Il comando può essere invocato con questa sintassi: REG.EXE [QUERY|ADD|DELETE|COPY|SAVE|LOAD|UNLOAD|RESTORE|COMPARE|EXPORT|IMPORT] [elenco parametri] Inoltre, anche l'applicazione ad interfaccia grafica REGEDIT.EXE permette di operare via riga di comando, limitatamente all'importazione di file.REG (porzioni di registro memorizzate in formato testuale): REGEDIT.EXE /s file L'opzione /s indica di operare in modalità silenziosa, senza interazione con l'utente; se omesso, il programma chiederà all'utente di confermare l'operazione. In Windows 95 e Windows 98 l'opzione /s veniva eseguita correttamente anche in presenza di un eventuale blocco amministrativo del programma. A differenza di REG.EXE, REGEDIT.EXE non restituisce un codice d'errore (ERRORLEVEL) appropriato quando usato per importare un file, il che complica la gestione degli errori negli script automatizzati; un modo per stabilire il successo di un'operazione di importazione è di controllare successivamente se è possibile esportare la chiave che si era provato ad importare: regedit /s Import.reg
regedit /e TestExport.reg "Chiave da importare"
if not exist TestExport.reg goto ImportError
del TestExport.reg
goto Exit
:ImportError
echo Errore durante l'importazione nel registro di sistema.
:Exit
L'operazione predefinita associata al tipo di file.REG, a partire da Windows 98, corrisponde all'importazione con richiesta di conferma da parte dell'utente; in Windows 95 l'associazione era la medesima, con la differenza che non veniva posta nessuna domanda, ed era quindi una potenziale causa d'errori. Voci correlate
Altri progetti
Collegamenti esterni
|