Il Registro di Sistema visto da vicino

In questa seconda lezione vedremo da vicino e meglio ilRegistro di Sistema.

Premessa: adottare massima cautela,così come scritto nella lezione n° 1, nell'adoperare questa parte del Sistema Operativo.
da START >> ESEGUI >> digitare REGEDIT nellatext-box;
ecco cosa apparirà:

Schermata del registro di sistema

a sinistra c'è una struttura che possiamodefinire ad albero, composta da 5 cartelle; tutte hanno unprefisso che comincia per HKEY (Handle to aKey); è in realtà un termine di programmazioneche indica una voce a cui lo sviluppatore può accederedall' applicazione. Esse possono espandersi fino amostrare altre sottochiavi.

La struttura di Win XP Pro, ne conta 5.

Registro di Ssitema espanso
 

Passiamo ad esaminare adesso le singole chiavi; (il Reg. diSistema preso in esame è queloo di Win XP Pro).
HKEY_CLASSES_ROOT: contiene informazioniutilizzate da diverse tecnologie OLE e i datisull'associazione di classi di file che corrispondono alregistro di sistema di Win x MS-DOS. Per esempio, una chiaveo un valore particolare si trova inHKEY_CLASSES_ROOT se la chiave o il valorecorrispondente si trova anche inHKEY_LOCAL_MACHINESOFTWAREClasses o inHKEY_CURRENT_USERSOFTWAREClasses. Se unachiave o un valore si trova in entrambe le posizioni, quellache viene visualizzata in HKEY_CLASSES_ROOTè la stessa versione contenuta inHKEY_CURRENT_USER.

HKEY_CURRENT_USER: contiene il profiloutente dell' operatore in quel momento connesso al pc inmodalità interattiva, incluse variabili di ambiente,impostazioni del desktop, connessioni di rete, stampanti epreferenze di programma. Il termine USER, infatti, siriferisce proprio all' utente.

HKEY_LOCAL_MACHINE: contiene informazionisul computer locale; dati relativi all' hardware, al SO,memoria di sistema, driver di periferica, dati per ilcontrollo all' avvio.

HKEY_USERS: contiene informazioniriguardanti i profili utente e il profilo predefinitocaricati in quel momento, comprese le informazioni presentiin HKEY_CURRENT_USER.

HKEY_CURRENT_CONFIG: contiene informazionisul profilo dell' hardware utilizzato dal sistema del pcall' avvio. Tali informazioni vengono utilizzate perconfigurare determinate impostazioni quali: driver diperiferica da caricare, risoluzioni dello schermo ecc.

Hive e file del Registro

Il termine hive indica un insiemedi dati simili; in questo caso chiavi, sottochiavi e valoriche ha origine nel livello superiore del Reg. di Sistema. Unhive è salvato in un solo file e in un file".log" in Winsystem32config e WinDocuments andSettings omeutente. Per impostazione predefinita la maggiorparte degli hive DEFAULT, SAM, SECURITY, SOFTWARE eSYSTEM, è memorizzata nella cartellaWinsystem32config. In Win XP Pro, la posizione delleinformazioni del profilo utente relative ad ogni utente delcomputer, inclusi i files Ntuser.dat eNtuser.dat.log, sono memorizzati nella cartellaWinDocuments and Settings nomeutente.

Voci di valore nelle chiavi del Registro di Sistema

Ogni chiave e sottochiave del Registro di Sistema puòcontenere dati che sono definiti: Voci di valore.
I dati memorizzati in alcune voci di valore riguardano isingoli utenti mentre altre riguardano tutti gli utenti cheaccedono ad un computer. Una voce di valore si compone di treparti:
nome del valore, il tipo di dati e il valorestesso.
Ecco uno schema con il quale si presenta una voce di valore:

Nome: REG_MULTI_SZ: Valore

Il tipo di dati indica il formato. I tipi di dati compresitra 0 e 0x7FFFFFFF sono riservati alle definizioni delsistema. Sarebbe meglio che i programmi usino questo tipo didati, ma ad essi sono anche riservati dati compresi tra:0x80000000 e 0x7FFFFFFF.
Diamo uno sguardo ai tipi di dati utilizzati dalsistema.

REG_BINARY: (Binari) Questi tipi di valoricontengono un valore binario visualizzato in bytes usando unformato esadecimale. Si possono creare stringhe binarie diqualsiasi lunghezza, che possono contenere ogni tipo di dato.I valori binari di solito contengono dati che il computer nonpuò rappresentare in forma di stringhe o come DWOR,come, ad esempio, un' immagine.

REG_DWORD: (DWORD) Questi tipi di valoricontengono voci in double-word, che corrisponde ad un numerocompreso tra 0 e 4.294.967.295. In genere un valore DWORDviene usato per un valore numerico molto preciso. Peresempio, un' applicazione può permettere diconfigurare il numero degli ultimi file usati nel MenuFile.

REG_EXPAND_SZ: (Stringa espandibile) Questitipi di valori contengono stringhe che includono un valore diespansione. Per esempio si può vedere il valore diespansione di "%ProgramFiles%" che equivale allaposizione della cartella Programmi della propriamacchina.

REG_MULTI_SZ: (Multi -Stringa) Questo tipodi valori contengono stringhe multiple in formato leggibileda un essere umano. Lo sviluppatore separa ognuna di questestringhe con un carattere null; inoltre usa questo tipo distringhe per le voci di un menu a discesa.

REG_SZ: (Stringhe) Stringa di testo alunghezza fissa. La stringa deve finire con uno 0 (null)attaccato. La parte SZ del tipo sta per "StringZero". Il Registro usa questo valore per tutto; ilpercorso dei files, configurazioni utente fino aiGlobally Unique Identifiers (GUID), usati per icomponenti ed altri riferimenti.

Dimensione del Registro di Sistema

I dati del Registro di Sistema vengono memorizzati in unaparte della memoria, chiamata pool di paginazione, e scrittisul disco fisso, quando questi non è in uso. Ladimensione del Reg. di Sistema non è altro che unvalore il quale impedisce ai programmi di esaurirecompletamente il pool di paginazione con i dati del Reg. diSistema. Per impostazione predefinita, la dimensione massimadel Reg. di Sistema è pari al 33% del pool dipaginazione. E' ammessa una dimensione massima pariall' 80% del pool di paginazione. La dimensione minimadel Reg. di Sistema è di 16MB. Qual'ora siinterviene a settare un valore inferiore a 16MB, questosarà impostato automaticamente di nuovo su 16. Si deveintervenire per cambiare la dimensione del Reg. di Sistemasolo quando un messaggio avverte che il valore èinsufficente. Se si vuole impostare una dimensione massima,il sistema non utilizzerà tutto lo spazio adisposizione se non è effettivamente necessario.