വിൻഡോസ് രജിസ്ട്രി

വിൻഡോസും ചില പ്രോഗ്രാമുകളും പ്രധാനപ്പെട്ട ക്രമീകരണങ്ങളും വിവരങ്ങളും സൂക്ഷിക്കുന്ന ഒരു കൺട്രോൾ സെന്ററാണ് **വിൻഡോസ് രജിസ്ട്രി**. ഹാർഡ്‌വെയർ, സോഫ്‌റ്റ്‌വെയർ, കമ്പ്യൂട്ടർ എങ്ങനെ പ്രവർത്തിക്കുന്നു തുടങ്ങിയ കാര്യങ്ങൾ നിയന്ത്രിക്കാൻ ഇത് സഹായിക്കുന്നു. ഡ്രൈവറുകൾ, സർവ്വീസുകൾ എന്നിവ നിയന്ത്രിക്കുന്നതിനും വിൻഡോസിന്റെ പ്രകടനം ട്രാക്ക് ചെയ്യുന്നതിനും സിസ്റ്റം ഈ "സ്റ്റോറേജ്" ഉപയോഗിക്കുന്നു. വിൻഡോസ് രജിസ്ട്രി ഒരു സോഫ്‌റ്റ്‌വെയർ പ്രോഗ്രാമല്ല; ഇത് വിൻഡോസ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ നിർമ്മിച്ച ഒരു ഡാറ്റാബേസ് പോലെയാണ്. വിൻഡോസും ചില പ്രോഗ്രാമുകളും ശരിയായി പ്രവർത്തിക്കാൻ ഉപയോഗിക്കുന്ന എല്ലാ ക്രമീകരണങ്ങളും കോൺഫിഗറേഷനുകളും ഇത് സംഭരിക്കുന്നു. നിങ്ങളുടെ കമ്പ്യൂട്ടറിനുള്ള പ്രധാനപ്പെട്ട നിർദ്ദേശങ്ങളുടെ ഒരു ശേഖരമാണ്. കേർണൽ, ഡിവൈസ് ഡ്രൈവറുകൾ, സർവ്വീസുകൾ, സെക്യൂരിറ്റി അക്കൗണ്ട്സ് മാനേജർ, ഉപയോക്തൃ ഇന്റർഫേസ് എന്നിവയ്‌ക്കെല്ലാം രജിസ്ട്രി ഉപയോഗിക്കാൻ കഴിയും.

നിങ്ങളുടെ കമ്പ്യൂട്ടർ ഉപയോഗിക്കുന്ന പ്രധാനപ്പെട്ട വിവരങ്ങൾക്കായി വിൻഡോസ് രജിസ്ട്രിക്ക് ഒരു വലിയ സ്റ്റോറേജ് ഉണ്ട്. ഈ വിവരങ്ങളിൽ നിങ്ങളുടെ കമ്പ്യൂട്ടറിലുള്ള പ്രോഗ്രാമുകളെക്കുറിച്ചും അവ എങ്ങനെ പ്രവർത്തിക്കണം എന്നതിനെക്കുറിച്ചും വിശദാംശങ്ങൾ ഉൾപ്പെടുന്നു. നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ഒരു ഗെയിം അല്ലെങ്കിൽ ആപ്ലിക്കേഷൻ പോലെ ഒരു പുതിയ പ്രോഗ്രാം ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, വിൻഡോസ് രജിസ്ട്രി അത് ട്രാക്ക് ചെയ്യുന്നു. പ്രോഗ്രാം എവിടെയാണ് സംഭരിച്ചിരിക്കുന്നത്, ഏത് പതിപ്പാണ്, അത് എങ്ങനെ ആരംഭിക്കണം എന്നതിന്റെ ഒരു കുറിപ്പ്  ഉണ്ടാക്കുന്നു. ഈ രീതിയിൽ, നിങ്ങൾക്ക് ആ പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കണമെങ്കിൽ, അത് എവിടെ കണ്ടെത്താമെന്നും അത് എങ്ങനെ ആരംഭിക്കണമെന്നും വിൻഡോസിന് കൃത്യമായി അറിയാം. അതിനാൽ, നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ എല്ലാ സോഫ്‌റ്റ്‌വെയറുകളും ഹാർഡ്‌വെയറുകളും നിയന്ത്രിക്കാനും എല്ലാം സുഗമമായി പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കാനും വിൻഡോസിനെ സഹായിക്കുന്ന ഒരു തരം "ഡിജിറ്റൽ കാറ്റലോഗ്" ആണ് വിൻഡോസ് രജിസ്ട്രി.

വിൻഡോസ് 3.1 അവതരിപ്പിക്കുമ്പോൾ തന്നെ, വിൻഡോസ് രജിസ്ട്രി പ്രാഥമികമായി കോം(COM) അടിസ്ഥാനമാക്കിയുള്ള കംപോണന്റുകൾക്കായി കോൺഫിഗറേഷൻ വിവരങ്ങൾ സംഭരിച്ചുവെച്ചിട്ടുണ്ട്. നിരവധി ഐഎൻഐ(INI) ഫയലുകളിൽ മുമ്പ് ചിതറിക്കിടക്കുന്ന കോൺഫിഗറേഷൻ വിവരങ്ങൾ ലളിതമാക്കുന്നതിനും കേന്ദ്രീകൃതമാക്കുന്നതിനും വിൻഡോസ് 95 ഉം വിൻഡോസ് എൻടിയും അതിന്റെതായ പങ്ക് വഹിച്ചു.വിൻഡോസ് ആപ്ലിക്കേഷനുകൾ വിൻഡോസ് രജിസ്ട്രി ഉപയോഗിക്കേണ്ട ആവശ്യമില്ല. ഉദാഹരണത്തിന്, .നെറ്റ് ഫ്രെയിംവർക്ക്  ആപ്ലിക്കേഷനുകൾ അവരുടെ സെറ്റിങ്ങുകൾ സൂക്ഷിക്കാൻ എക്സ്എംഎൽ ഫയലുകൾ ഉപയോഗിക്കുന്നു. പോർട്ടബിൾ ആപ്ലിക്കേഷനുകൾ അവരുടെ പ്രോഗ്രാം ഫയലുകൾക്കുള്ളിൽ തന്നെ സെറ്റിങ്ങുകൾ സൂക്ഷിക്കാറുണ്ട്.
## യുക്തി
വിൻഡോസ് രജിസ്‌ട്രിക്ക് മുമ്പ്, പ്രോഗ്രാം ക്രമീകരണങ്ങൾ .INI ഫയലുകളിൽ സൂക്ഷിച്ചിരുന്നു, അവ ലളിതമായ ടെക്‌സ്‌റ്റോ അല്ലെങ്കിൽ ബൈനറി ഫയലുകളോ ആയിരുന്നു. അതായത് ഒരേ കമ്പ്യൂട്ടറിലുള്ള എല്ലാവർക്കും ഒരേ ക്രമീകരണങ്ങൾ ഉപയോഗിക്കണം. വിൻഡോസ് രജിസ്ട്രിയുടെ വരവോടെ ഒരു  സ്ഥലത്ത് തന്നെ ക്രമീകരണങ്ങൾ ഒരുക്കി, തന്മൂലം ഓരോ ഉപയോക്താവിനും അവരുടേതായ മുൻഗണനകൾ ചേർക്കുവാൻ അനുവദിക്കുകയും സിസ്റ്റം കൂടുതൽ കാര്യക്ഷമവും സ്ഥിരതയുള്ളതുമാക്കുകയും ചെയ്തു.`regedit.exe`പോലുള്ള ടൂളുകൾ മുഖേന നിയന്ത്രിക്കുന്ന വിൻഡോസ് രജിസ്ട്രി, ബൈനറി ഫോർമാറ്റ് ഉപയോഗിക്കുന്നതിനാൽ, ടെക്സ്റ്റ് അധിഷ്‌ഠിത .ഐഎൻഐ ഫയലുകളേക്കാൾ കാര്യക്ഷമമായി കമ്പ്യൂട്ടറുകൾക്ക് കൈകാര്യം ചെയ്യാൻ കഴിയുന്നതിനാൽ അത് മൂലം വേഗത്തിൽ എഴുതുവാനും വായിക്കുവാനും സാധിക്കുന്നു. കൂടാതെ, `regedit.exe`മുഖേനയുള്ള രജിസ്ട്രിക്ക് നിർദ്ദിഷ്ട ഡാറ്റാ തരങ്ങൾ ഉപയോഗിച്ച് ഡാറ്റ സംഭരിക്കാൻ കഴിയും, ഇത് പ്രധാനമായും ടെക്സ്റ്റ് ഉപയോഗിക്കുന്ന .ഐഎൻഐ ഫയലുകളുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ വിവരങ്ങൾ കൈകാര്യം ചെയ്യുന്നത് മികച്ചതാക്കുന്നു. ഡാറ്റ കൈകാര്യം ചെയ്യുന്നതിൽ കൃത്യതയും സ്ഥിരതയും ഉറപ്പാക്കുന്നതിനാൽ, ഇന്റേണൽ വിൻഡോസ് രജിസ്ട്രി എഡിറ്ററായ `regedit.exe`(ബിൽറ്റ്-ഇൻ എഡിറ്റർ) ഉപയോഗിക്കുമ്പോൾ, നിങ്ങൾക്ക് ഈ ക്രമീകരണങ്ങൾ എളുപ്പത്തിൽ മാറ്റാനാകും, കാരണം അവ ഒരു യൂസർ-സ്പെസിഫിക്(യൂസർ-സ്പെസിഫിക് എന്നതിന്റെ അർത്ഥം ഒരേ കമ്പ്യൂട്ടർ ഉപയോഗിക്കുന്ന ഓരോ വ്യക്തിക്കും അവരുടേതായ ക്രമീകരണങ്ങൾ ഉണ്ടായിരിക്കാം എന്നാണ്. ഉദാഹരണത്തിന്, നിങ്ങളും മറ്റൊരാളും ഒരേ കമ്പ്യൂട്ടർ ഉപയോഗിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ഓരോരുത്തർക്കും നിങ്ങളുടെ സ്വന്തം വാൾപേപ്പർ, പ്രോഗ്രാം ക്രമീകരണങ്ങൾ, മുൻഗണനകൾ എന്നിവ ഉണ്ടായിരിക്കാം, ഓരോ വ്യക്തിക്കും വേണ്ടിയുള്ള ക്രമീകരണങ്ങൾ കമ്പ്യൂട്ടർ പ്രത്യേകം സ്റ്റോർ ചെയ്ത് വയ്ക്കും.) ലൊക്കേഷനിൽ സംഭരിച്ചിരിക്കുന്നു. പ്രശ്‌നങ്ങളില്ലാതെ പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് പ്രത്യേകാവകാശമില്ലാത്ത ഉപയോക്താക്കളെ ഇത് സഹായിക്കുന്നു. ശരിയായ സേവനങ്ങളും ഫയർവാൾ ക്രമീകരണങ്ങളും ഓണാണെങ്കിൽ നെറ്റ്‌വർക്കിലൂടെ വിദൂരമായി രജിസ്ട്രി നിയന്ത്രിക്കാൻ കഴിയുന്നതിനാൽ, ക്രമീകരണങ്ങൾ ബാക്കപ്പുചെയ്യുന്നതും പുനഃസ്ഥാപിക്കുന്നതും എളുപ്പമാണ്.

മാറ്റങ്ങൾ വരുത്തുമ്പോൾ വിൻഡോസ് രജിസ്ട്രിയിലെ തിങ്ക്സുകൾ(things) ഓർഗനൈസുചെയ്‌ത് സുരക്ഷിതമായി സൂക്ഷിക്കുന്നു. ഒരേ സമയം രണ്ട് പ്രോഗ്രാമുകൾ ഒരേ ക്രമീകരണം തന്നെ മാറ്റാൻ ശ്രമിക്കുകയാണെങ്കിൽ, അത് മൂലമുണ്ടാകുന്ന പിശകുകൾ സംഭവിക്കുന്നത് ഒഴിവാക്കാൻ രജിസ്ട്രിയിലെ ഒരു മാറ്റം മറ്റൊന്നിന് മുമ്പ് നടക്കുമെന്ന് ഉറപ്പാക്കുന്നു. പഴയ .INI ഫയലുകളിൽ, ഇത് ഡാറ്റയെ കുഴപ്പത്തിലാക്കാം. വിൻഡോസ് വിസ്റ്റയിൽ നിന്ന് ആരംഭിച്ച്, ഫയലുകൾ സംരക്ഷിക്കുമ്പോൾ ഫയൽ സിസ്റ്റങ്ങൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നതുപോലെ, എല്ലാ മാറ്റങ്ങളും സംരക്ഷിക്കാനോ അല്ലെങ്കിൽ അവ റദ്ദാക്കാനോ നിങ്ങളെ അനുവദിക്കുന്ന ഗ്രൂപ്പുകളിലെ മാറ്റങ്ങൾ രജിസ്ട്രിക്ക് കൈകാര്യം ചെയ്യാൻ കഴിയും. എല്ലാം സ്ഥിരവും വിശ്വസനീയവുമാണെന്ന് ഇത് ഉറപ്പാക്കുന്നു.

## ഘടന
### കീകളും അതിന്റെ മൂല്ല്യങ്ങളും
രജിസ്ട്രിയിൽ രണ്ട് അടിസ്ഥാന ഘടകങ്ങൾ അടങ്ങിയിരിക്കുന്നു: കീകളും മൂല്യങ്ങളും. ഫോൾഡറുകൾക്ക് സമാനമായ കണ്ടെയ്നർ ഒബ്ജക്റ്റുകളാണ് രജിസ്ട്രി കീകൾ. ഫയലുകൾക്ക് സമാനമായ നോൺ-കണ്ടെയ്നർ ഒബ്ജക്റ്റുകളാണ് രജിസ്ട്രി മൂല്യങ്ങൾ. കീകളിൽ മൂല്യങ്ങളും ഉപകീകളും അടങ്ങിയിരിക്കാം. ശ്രേണിയുടെ ലെവലുകൾ സൂചിപ്പിക്കാൻ ബാക്ക്‌സ്ലാഷുകൾ(‌‌‌‌‌‌\) ഉപയോഗിച്ച് വിൻഡോസിൻ്റെ പാത്ത് നെയിമുകൾക്ക് സമാനമായ ഒരു വാക്യഘടന ഉപയോഗിച്ചാണ് കീകൾ പരാമർശിക്കുന്നത്. കീകൾക്ക് ബാക്ക്‌സ്ലാഷുകളില്ലാത്ത ഒരു കേസ് സെൻസിറ്റീവ്(കേസ് സെൻസിറ്റീവ് എന്നാൽ വലിയക്ഷരങ്ങളും ചെറിയക്ഷരങ്ങളും വ്യത്യസ്തമായി പരിഗണിക്കപ്പെടുന്നു, ഉദാഹരണത്തിന് "Apple", "apple" എന്നിവ രണ്ട് വ്യത്യസ്ത പദങ്ങളായി കാണക്കാക്കുന്നു.) പേര് ഉണ്ടായിരിക്കണം. രജിസ്ട്രി കീകളുടെ ശ്രേണി അറിയപ്പെടുന്ന റൂട്ട് കീ ഹാൻഡിൽ നിന്ന് മാത്രമേ ആക്‌സസ് ചെയ്യാൻ കഴിയൂ (ഇത് അജ്ഞാതമാണ്, എന്നാൽ അതിന്റെ ഫലപ്രദമായ മൂല്യം സ്ഥിരമായ ന്യൂമെറിക് ഹാൻഡിൽ ആണ്), ഇത് സംഭരിച്ച "ഹൈവിൽ"(വിൻഡോസ് രജിസ്ട്രിയിൽ, പ്രധാനപ്പെട്ട ക്രമീകരണങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു വലിയ ഫോൾഡർ പോലെയാണ്  ഹൈവ്(hive). ഇത് സിസ്റ്റത്തിൻ്റെ വിവിധ ഭാഗങ്ങളിലേക്കോ ഉപയോക്തൃ പ്രൊഫൈലുകളിലേക്കോ ഉള്ള എല്ലാ വിവരങ്ങളും പ്രത്യേക ഫയലുകളിൽ സംഭരിക്കുന്നു.) നിന്ന് കേർണൽ പ്രീലോഡുചെയ്ത ഒരു രജിസ്ട്രി കീയുടെ ഉള്ളടക്കത്തിലേക്ക് മാപ്പുചെയ്യുന്നു, അല്ലെങ്കിൽ മറ്റൊരു റൂട്ട് കീയിലെ ഒരു സബ്കീയുടെ ഉള്ളടക്കത്തിലേക്ക് മാപ്പ് ചെയ്യുന്നു, അതല്ലെങ്കിൽ രജിസ്റ്റർ ചെയ്ത സർവ്വീസിലേക്കോ അല്ലെങ്കിൽ അതിൽ അടങ്ങിയിരിക്കുന്ന സബ്കീകളിലേക്കും മൂല്യങ്ങളിലേക്കും ആക്സസ് നൽകുന്ന ഡി‌എൽ‌എല്ലിലേക്ക് മാപ്പുചെയ്യുന്നു.

നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ ഒരു ഫോൾഡർ സിസ്റ്റം പോലെ രജിസ്ട്രിയെക്കുറിച്ച് ചിന്തിക്കുക:

*കീ എന്നത് ഫയലുകൾ സൂക്ഷിക്കുന്ന ഫോൾഡറുകൾ പോലെയാണ്.
*മൂല്യങ്ങൾ എന്നത് വിവരങ്ങൾ സംഭരിക്കുന്ന ഫയലുകൾ പോലെയാണ്.

ഉദാഹരണത്തിന്:

`HKEY_LOCAL_MACHINE\Software\MyApp\Settings`

* ഇവിടെ, HKEY_LOCAL_MACHINE, സോഫ്റ്റ്‌വെയർ, MyApp എന്നിവ ഫോൾഡറുകൾ പോലെയാണ്.
* ഇവിടെ ക്രമീകരണങ്ങൾ (ഒരു ഫോൾഡർ പോലെ), "ഭാഷ = ഇംഗ്ലീഷ്" അല്ലെങ്കിൽ "തീം = ഡാർക്ക് മോഡ്" പോലുള്ള മൂല്യങ്ങൾ നിങ്ങൾക്ക് കാണാൻ സാധിക്കുന്നതാണ്.

നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ ഫോൾഡറുകളും ഫയലുകളും പോലെ, കീകൾ മൂല്യങ്ങൾ സൂക്ഷിക്കുന്നു, മൂല്യങ്ങൾ പ്രധാനപ്പെട്ട വിവരങ്ങൾ സംഭരിക്കുന്നു.

വിൻഡോസ് രജിസ്ട്രിയിൽ ഏഴ് പ്രധാന വിഭാഗങ്ങളുണ്ട്, അവയെ റൂട്ട് കീകൾ എന്ന് വിളിക്കുന്നു, അവ എല്ലാ ക്രമീകരണങ്ങൾക്കും സ്റ്റാർട്ടിംഗ് പോയിൻ്റുകൾ പോലെയാണ്. വിൻഡോസ് പ്രോഗ്രാമുകളിൽ അവ എങ്ങനെ ഉപയോഗിക്കുന്നു എന്നതിനെ അടിസ്ഥാനമാക്കി ഈ കീകൾക്ക് പ്രത്യേക പേരുകളുണ്ട്.
വിൻഡോസ് രജിസ്ട്രിയിലെ ഏഴ് റൂട്ട് കീകൾ താഴെ പറയുന്നവയാണ്:
# HKEY_CLASSES_ROOT (HKCR) - ഫയൽ ടൈപ്പുകളെക്കുറിച്ചും പ്രോഗ്രാമുകൾ എങ്ങനെ തുറക്കുന്നു എന്നതിനെക്കുറിച്ചും ഉള്ള വിവരങ്ങൾ സംഭരിക്കുന്നു.
# HKEY_CURRENT_USER (HKCU) - ഡെസ്‌ക്‌ടോപ്പിൽ എന്തൊക്കെ മുൻഗണനകൾ നൽകണം എന്നതു പോലുള്ള നിലവിലെ ഉപയോക്താവിനുള്ള ക്രമീകരണങ്ങൾ അടങ്ങിയിരിക്കുന്നു.
# HKEY_LOCAL_MACHINE (HKLM) - മുഴുവൻ കമ്പ്യൂട്ടറിനും എല്ലാ ഉപയോക്താക്കൾക്കും ബാധകമായ ക്രമീകരണങ്ങൾ ഹോൾഡ് ചെയ്യുന്നു.
# HKEY_USERS (HKU) - ഒരു കമ്പ്യൂട്ടറിലെ എല്ലാ ഉപയോക്താക്കൾക്കുമുള്ള ക്രമീകരണങ്ങൾ സംഭരിക്കുന്നു. ഉദാഹരണത്തിന്, വാൾപേപ്പർ പോലെയുള്ള ഓരോ ഉപയോക്താവിൻ്റെയും ഡെസ്‌ക്‌ടോപ്പ് മുൻഗണനകൾ അവരുടെ തനതായ യൂസർ ഐഡിക്ക് കീഴിൽ സൂക്ഷിക്കുന്നു.
# HKEY_CURRENT_CONFIG (HKCC) – നിലവിലെ ഹാർഡ്‌വെയർ സജ്ജീകരണത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു.
# HKEY_PERFORMANCE_DATA- സിസ്റ്റത്തിന്റെ പ്രകടനത്തെക്കുറിച്ചുള്ള ഡാറ്റ സംഭരിക്കുന്നു (ഇത് വിൻഡോസ് എൻടിൽ നിലവിലുണ്ടെങ്കിലും വിൻഡോസ് രജിസ്ട്രി എഡിറ്ററിൽ കാണാൻ കഴിയില്ല.).
# HKEY_DYN_DATA- വിൻഡോസിൻ്റെ പഴയ പതിപ്പുകളിൽ ഡൈനാമിക് ഡാറ്റയ്ക്കായി ഉപയോഗിച്ചു (ആധുനിക സിസ്റ്റങ്ങളിൽ ഈ കീ ഉപയോഗിക്കുന്നില്ല).

## അവലംബം