Kde vlastne register je, ako pracuje a čo s ním treba robiť? Poodhaľte s nami závoj tajomstva nad touto zvláštnou súčasťou operačného systému, z ktorej väčšine používateľov behá mráz po chrbte.

Systémový register Windows na oko pôsobí neprívetivo. Väčšina používateľov ani netuší, ako vlastne funguje a na čo vôbec slúži. Koniec koncov, bežný človek si ani nemusí byť vedomý, že niečo také v jeho systéme existuje.

Prvýkrát bol použitý už vo Windows 3.1 v roku 1992 a odvtedy je s fungovaním operačného systému Microsoftu úzko spätý. Ide o hierarchickú databázu, v ktorej sú uložené jednotlivé hodnoty nastavenia systému a nainštalovaných programov.

Ak nie ste v súvislosti s používaním počítača úplný nováčik a snažíte sa nejaké problémy s nefunkčnosťou vášho systému riešiť sami, skôr či neskôr sa dostanete k nejakej rade, ktorá odporúča zmeniť údaje v niektorých jeho vetvách.

S pomocou programu Regedit, ktorý je súčasť systému Windows, si túto databázu môžete prezrieť a editovať. Pamätajte však na to, že ide o esenciálnu časť systému a preto neupravujte ani neodstraňujte hodnoty, pri ktorých so 100 % istotou neviete, na čo slúžia. Výsledkom môže byť nefungujúci systém alebo programy.

ČO VLASTNE REGISTER NAOZAJ JE A K ČOMU SLÚŽI

To, že systémový register Windows je hierarchická databáza vám nemusí hovoriť nič konkrétne. Hovorme teda jasnou rečou, dostupnou pre každého a vysvetlime si jeho podobu a účel pekne po lopate.

Registre si môžeme v základe predstaviť ako textový konfiguračný súbor, do ktorého si operačný systém a programy zapisujú svoje nastavenia.

Ak vykonáte v rámci nastavení Windows nejakú zmenu, napríklad úpravu citlivosti myši, nastavenie siete, alebo výmenu tapety pracovnej plochy, táto zmena je v ňom zaznamenaná a následne pri každom štarte systému alebo programu prečítaná.

V základe si teda predstavte text, v ktorom nájdete vety ako:

  • Pohyb kolieska myši posúva toľkoto riadkov naraz: „3“
  • Toto pripojenie k Wi-Fi je teraz vybraté: „DOMA1“
  • Táto tapeta je momentálne zvolená: „Pláž.jpg“

Ak dané nastavenie v rámci systémového rozhrania zmeníte, či už v sekcii Nastavení alebo v Ovládacom panely, to čo sa stane je, že v texte registrov sa tá fialová položka v úvodzovkách prepíše inou, vami vybratou hodnotou. Ide teda v základe o zápisník, vďaka ktorému si systém vaše nastavenia pamätá.

V dávnej minulosti toto zapamätávanie robil operačný systém formou zástupu samostatných konfiguračných súborov, s príponou INI. Skutočne šlo o obyčajné textové súbory, uložené na rôznych miestach disku, pričom systém mal svoje a rôzne programy zas svoje.

Vytvorenie spoločného systémového registru, ktorý sa začal výraznejšie používať s nástupom Windows 95, celú situáciu značne unifikovalo a zlepšilo.

V základe si to možno predstaviť ako koniec éry, v ktorej si každý program a systémová časť udržovala vlastný záznam a namiesto toho začala byť k dispozícii spoločná záznamová knižka, kde si každý mohol vytvoriť svoju vlastnú kapitolu a zároveň sa presvedčiť, či už podobný záznam nevykonáva niekto iný.

Dôležitou zmenou oproti pôvodnému stavu je, že tento záznam má hierarchiu, teda určitú postupnosť a delenie. Pre ilustráciu si predstavte, že ste program. V procese svojej inštalácie prídete na registračný úrad s tým, že chcete v systéme Windows zaznamenať úplne novú príponu súboru, s koncovkou MRK.

Pán na registračnom úrade vám povie, že to nie je problém a pošle vás na tretie poschodie, ktoré je venované programovým záznamom, konkrétne do dverí venujúcej sa príponám. Vy tam zájdete, otvoríte skriňu so záznamami a podľa abecedy prejdete existujúce kartičky s príponami a medzi MP4 a MKV zasuniete tú svoju nazvanú MRK. Hotovo.

Po novom už systém bude poznať o jednu príponu viac, pričom budú zoradené ako … MP3, MP4, MRK, MKV… atď. Výhoda je, že vás ako návštevníka registračného úradu vôbec nezaujíma, že úrad ako taký má milióny záznamov rôzneho druhu. Podľa toho čo ste chceli zaznamenať ste totiž ľahko našli miesto kde to patrí a záznam tam bez problémov vložili.

Ten istý princíp platí aj pri čítaní týchto záznamov. Určite ste si všimli, že ak kliknete v systéme Windows na rôzne typy súborov pravým tlačidlom myši, kontextové menu ktoré sa vysunie môže mať odlišné položky.

Kým rôzne skomprimované súbory ponúkajú rozbalenie, obrázky zas naopak otvorenie v prehliadači alebo editore obrázkov. Je to vďaka tomu, že ich prípony majú v registroch rozdielne záznamy, ktoré systém v reálnom čase číta.

  • Sekcia prostredia Windows
    • Prípony súborov
      • RAR
        • Možnosť rozbaliť v programe WinRAR
        • Možnosť otvoriť v programe WinRAR
        • Možnosť odoslať e-mailom
      • PDF
        • Možnosť editovať v programe Adobe Acrobat
        • Možnosť otvorenia v balíku Office

Keďže ale záznamy vyzerajú napr. tak, ako vidíte vyššie, všimnite si, že pri práci so súbormi PDF nemusia byť čítané veci o iných príponách, nech ich je hoc aj tisíc. Systém len skočí do sekcie prípon a preberie hodnoty pre príponu PDF, ktoré v kontextovom menu zobrazí.

Všetko pravdaže podlieha zmene, takže ak napríklad nainštalujete nový program, ktorý s danou príponou dokáže robiť niečo iné, napríklad odoslať ju niekam preč, svoj záznam si tu vytvorí a systém ho teda už bude ponúkať.

Okrem hierarchie a postupnosti sa systémový register líši oproti obyčajným textovým konfiguračným súborom aj tým, že záznamy v ňom nie sú uložené ako obyčajný text, ale v binárnej forme.

Hex náhľad vetvy registru, konkrétne SOFTWARE z HKEY_LOCAL_MACHINE

Vďaka tomu je strojové čítanie a spracovávanie tejto informácie výrazne efektívnejšie a výrazne rýchlejšie. Navyše, tým že ide o databázu, je možné riešiť omnoho spoľahlivejšie integritu všetkých záznamov a takisto obsluhu ich zápisu.

Typická vlastnosť je napríklad tzv. atomická aktualizácia hodnôt. Ak sa dva rôzne programy pokúsia meniť nejaké viaceré záznamy registrov v rovnakú dobu, obsluha registrov zabezpečí, že pri tom nedôjde k nekonzistentnosti.

Prepisy rovnakých položiek vykoná jeden program a následne druhý, pričom budú zodpovedať najprv jednému a následne druhému, nikdy sa nestane, že by došlo k zmixovaniu hodnôt, ktoré by bolo bezcenné pre oba programy.

Systémový register používa Windows predovšetkým sám pre seba na svoje záznamy. Ostatným programom je k dispozícii a tie ho môžu a obvykle aj používajú. Nie je to však povinnosť.

Mnoho programov si svoje nastavenia stále ukladá aj do vlastných konfiguračných súborov. Obvykle už ale nie vo forme INI, ale v podobe novších XML či iných formátov.

Svoje konfigurácie si takisto držia pri sebe aj tzv. prenosné (portable) programy, ktoré sú navrhnuté tak, aby fungovali bez inštalácie a mohli ste ich prenášať medzi rôznymi počítačmi. Zákonite si teda nemôžu ukladať svoje záznamy do registrov systému, pretože po prenose by ich iný systém uložené nemal.

AKO REGISTER VYZERÁ A ČO HO FYZICKY A ŠTRUKTURÁLNE TVORÍ

Registre sa pri behu systému nachádzajú v operačnej pamäti, avšak pri štarte sa databáza načítava z niekoľkých súborov, ktoré sa označujú ako hives (včelie úle). Ide o reálne fyzické súbory, pričom väčšina z nich sa nachádza v priečinku C:WindowsSystem32config.

Tieto súbory Windows automaticky zálohuje a to napríklad vždy predtým, ako sa inštalujú aktualizácie, alebo nejaké nové programy. Proces ich obnovy do predošlého stavu je integrovaný do nástroja Obnovovanie systému, konkrétne do jeho automaticky alebo manuálne vytváraných bodov obnovenia. Vytvárajú sa v skrytom koreňovom priečinku System Volume Information, kde sa staršie kópie súborov registra držia.

Živé včelie úle (hives) systémových registrov, umiestnené v priečinku Windows/System32/Config

Súborom ako takým nemusíte venovať pozornosť. Ako sme uviedli v predošlej pasáži, dáta v nich sú uložené v binárnej forme a ich obsah teda štandardne nie je pre človeka čitateľný. V systéme však existuje program, nazvaný ako Registry Editor, či skrátene Regedit, ktorý túto binárnu databázu môže načítať a zobraziť v čitateľnej forme.

Regedit môžete otvoriť zadaním jeho mena do vyhľadávania v menu Štart. Po otvorení okamžite otvára a sprístupňuje aktuálnu podobu systémovej databázy, pričom s ňom môžete ihneď pracovať.

Žiadne obmedzenia neexistujú. Všetky hodnoty systémového registru vidíte, môžete si ich zobrazovať, čítať ich, prepisovať a takisto ich môžete podľa ľubovôle do databázy v reálnom čase aj na novo vkladať.

Celá databáza je rozdelená na päť základných vetiev, pripomínajúcich priečinky. Ide o:

  • HKEY_CLASSES_ROOT
  • HKEY_CURRENT_USER
  • HKEY_LOCAL_MACHINE
  • HKEY_USERS
  • HKEY_CURRENT_CONFIG

Keďže je to dosť dlhé značenie, v bežnej reči a popisoch ich obvykle skracujeme do podoby ich prvotných písmen, teda na HKCR, HKCU, HKLM, HKU a HKCC.

Ich rozklikávaním sa postupne štruktúra rozvetvuje, čím sa odhaľujú jednotlivé podvetvy, ktorými vchádzate do hierarchickej štruktúry stále nižšie. Vetvy sa označujú aj pojmom kľúče (z anglického označenia Keys), pričom každá môže, ale nemusí obsahovať ďalšie podvetvy/podkľúče.

Každá vetva takisto môže, ale nemusí obsahovať vlastné hodnoty, ktoré sa v editore Regedit zobrazujú na pravej strane okna. Každú hodnotu môžete rozkliknúť a editovať, prípadne môžete do jednotlivých vetiev pridávať nové hodnoty.

Prvá hlavná vetva HKEY_CLASSES_ROOT obsahuje informácie o registrovaných aplikáciách a asociáciách. Nájdete tu uložené najmä informácie a asociáciách jednotlivých prípon súborov. Ide teda o informáciu, aký program má otvoriť napríklad súbor JPG a kde sa tento program nachádza nainštalovaný (kde je jeho spúšťači súbor). Táto vetva sa na tieto účely používala už v starších verziách Windows, ale v dnešných už jej úlohu obvykle preberajú detailnejšie podvetvy HKEY_LOCAL_MACHINE. Táto prvá vetva registra z nej ale kvôli kompatibilite stále hodnoty automaticky preberá/duplikuje.

Druhá hlavná vetva v poradí je HKEY_CURRENT_USER, v ktorej sú umiestnené nastavenia súvisiace s aktuálne prihláseným používateľským účtom. Tieto dáta sa načítavajú pri štarte systému zo súborov NTUSER.DAT a USRCLASS.DAT, ktoré sa nachádzajú v priečinku používateľského účtu. Rovnako k tomu dochádza aj pri odhlasovaní a prihlasovaní.

Tretia vetva v poradí, HKEY_LOCAL_MACHINE je prakticky najvýznamnejšia časť registru. Pozostáva z esenciálnych podvetiev SYSTEM, SOFTWARE, SECURITY, SAM, ktoré sa načítajú do pamäte pri štarte systému z priečinku Windows/ System32/config.

Okrem nich sa tu nachádzajú aj vetvy HARDWARE a BCD súvisiace s aktuálne pripojeným hardvérom a diskovými partíciami. Obe sú vytvárané od nuly pri štarte systému, podľa aktuálne prepojených zariadení. Vetvy SAM (Security Accounts Manager) a SECURITY sú obvykle prázdne a zaplňujú sa len v prípade, že ide o účet správcu domény.

Vetva SYSTEM obsahuje predovšetkým nastavenia ovládačov a služieb, zatiaľ čo vetva SOFTWARE drží nastavenia programov. Nielen pri tom tých vlastných (v podvetve Microsoft), ale aj všetkých ostatných, ktoré máte na počítači nainštalované a ktoré registre používajú (na 64 bitových systémoch sú dáta hlavne v jej podvetve Wow6432Node).

Štvrtá hlavná vetva HKEY_USERS obsahuje nastavenia súvisiace so všetkými používateľskými účtami prítomnými na danom systéme a pokiaľ je aktívne prihlásených viacero účtov súčasne, sú tu načítané aj ich hive súbory NTUSER.DAT a USRCLASS.DAT.

HKEY_CURRENT_CONFIG je nepermanentná vetva, ktorá je tvorená informáciami vytvorenými v rámci aktuálne bežiaceho systému. Vytvorí sa pri štarte od nuly na základe aktuálne pripojeného hardvéru a jej informácie zanikajú pri vypnutí.

AKO SA S REGISTROM V PRÍPADE POTREBY PRACUJE

Za bežných podmienok a okolností sa registru nemusíte vôbec dotýkať. Avšak existuje mnoho situácii, kedy je potrebné alebo vhodné najatú hodnotou vytvoriť či upraviť.

Typickým príkladom je, že potrebujete vykonať nejaké špeciálne nastavenie na Windows Home edícii systému, pre ktoré existuje používateľské rozhranie iba na Profesionálnej verzii. V prípade Windows Pro môžu administrátori používať napríklad Editor nastavení lokálnej skupiny (gpedit.msc), v rámci ktorého je možné vykonávať napr. detailnejšiu konfiguráciu mechanizmov aktualizácii.

Toto nastavenie vytvára vetvy v registroch, na základe ktorých potom Windows reaguje, takže aj keď v Home edícii tento nástroj nie je integrovaný, stále môžete potrebné vetvy do registru vložiť manuálne a systém na ne správne zareaguje.

Od systému nemôžete očakávať akciu na akýkoľvek zásah do registra. Ak napríklad kliknete pravým tlačidlom myši na dôležitú systémovú vetvu v podobe HKEY_LOCAL_MACHINE/SYSTEM, a vytvoríte si v nej novú vetvu nazvanú „JOZEF“ kliknutím na (New/Key), nič zvláštne sa nestane. Skrátka sa v nej objaví.

Túto „JOZEF“ vetvu, respektíve kľúč potom môžete otvoriť, tým že na ňu v rozbaľovacom strome vľavo kliknete a v pravej časti okna si môžete do nej navkladať aj hodnoty (New/DWORD).

Je jedno či si ich nazvete ako „Výbuch počítača“, alebo „Neviem čo robím“. Vkladáte totiž nezmysly do nezmyselnej vetvy, pričom neexistuje program či systémový mechanizmus, ktorý túto vašu položku hľadá a číta.

Ak chcete v registroch robiť niečo zmysluplné, musíte vedieť kde to robiť a čo presne robiť.

Kliknite napríklad pravým tlačidlom myši na Pracovnú plochu a všimnite si, aké položky obsahuje menu, ktoré sa vysunie. Skúsme ho upraviť tak, aby vám ponúkalo aj spustenie Editora registru.

Otvorte vetvu HKEY_CLASSES_ROOTDirectoryBackgroundshell, tým že ju rozbalíte v strome vľavo a kliknete na ňu (je nižšie než čakáte, pretože na začiatku sú zoradené prípony s bodkou).

Na „shell“ kliknite pravým tlačidlom myši a zvoľte New/Key, pričom názov zadajte napríklad ako „Editor Registrov“. Následne kliknite pravým tlačidlom už na ňu a vytvorte nový podkľúč (New/Key) nazvaný „command“. V jej vnútri sa automaticky nachádza  hodnota (Default). Ak ju dvojklikom otvoríte a vložíte si do nej adresu „C:WINDOWSRegedit.exe“ (alebo iného programu, ktorý chcete), bude sa následne okamžite ponúkať pri kliknutí pravého tlačidla myši na plochu. Môžete to vyskúšať.

Existuje totiž mechanizmus, ktorý vložené hodnoty a príkazy pri tomto kroku číta. A ak do neho hodnotu vložíte, prečíta sa a vykoná. Rovnako existuje aj mechanizmus, ktorý hľadá pre novú položku v menu ikonu.

Ak ju chcete zvoliť, kliknite pravým tlačidlom myši na svoju vetvu „Editor Registrov“ a vytvorte v nej novú hodnotu v podobe reťazca (New/String Value). Nazvite ju ako „icon“ a zadajte do nej adresu ikony, čo je obvykle samotný EXE súbor programu. V našom prípade je teda hodnota znova „C:WINDOWSRegedit.exe“. Ikona sa v menu ihneď začne zobrazovať.

Každú položku môžete pravdaže dodatočne dvojklikom upraviť a vymeniť adresu programu za inú, rovnako ako môžete zmeniť názov celého kľúča (Rename).

Na tomto mieste sa možno spýtate, že či niekde teda existuje nejaký kompletný výpis toho, čo všetko sa dá s registrom takto robiť a ktorá hodnota čo robí a aké názvy potrebujeme. Odpoveď je v základe taká, že neexistuje (mimo Microsoftu).

Naše znalosti toho, čo kde ktorá systémová položka robí a ako na ňu systém reaguje sa obvykle odvíjajú od toho, že si všímame, ako sú robené existujúce hodnoty a volania. Týchto informácii existuje obrovské množstvo, ale nečakajte, že automaticky nájdete odpoveď na čokoľvek, čo vás napadne.

Ak pre vás nejaká položka registra stratí význam a nebude potrebná, hodnotu, alebo celý kľúč môžete zmazať. Stačí na kľúč v podobe „priečinka“ respektíve vety kliknúť pravým tlačidlom myši a vymazať ju (Delete).

Zmazanie hodnoty alebo vetvy je okamžité a nevratné. Žiadny „kôš“ v registroch neexistuje.

Rovnako neexistuje ani možnosť použitia klávesovej skratky CTRL+Z či nejakej šípky vzad. Editor registrov očakáva, že viete čo robíte a hodnota skrátka zmizne. Ak ju chcete späť, musíte ju vytvoriť znovu.

V tejto súvislosti je preto v niektorých prípadoch vhodné si hodnoty zálohovať, čo vám umožní rýchlo ich vložiť späť. Ak sa chystáte nejakú vetvu alebo hodnotu registru prepísať/zmazať, pričom si svojim zásahom nie ste celkom istý, môžete si jej existujúci stav manuálne uložiť/zálohovať do samostatného súboru.

Export jednej alebo viacerých hodnôt je jednoduchý. Skrátka na chcenú vetvu kliknite pravým tlačidlom myši a vo vysunutom kontextovom menu kliknite na Export (ak vetva obsahuje podvetvy, exportujú sa automaticky aj tie). Ponúkne sa vám uloženie registračného súboru s príponou REG.

Exportovanie dát samotný register nijako neovplyvní. Dáta z neho neodoberáte, ale kopírujete do iného súboru.

Uložený súbor REG má formát jednoduchého textu a bez problémov si ho môžete pozrieť a takisto upravovať. Stačí naň kliknúť pravým tlačidlom myši a zvoliť položku Upraviť. Uvidíte, že jeho štruktúra je veľmi jednoduchá a pozostáva z názvov vetiev v lomených zátvorkách a samotných hodnôt.

Klasickým otvorením, teda dvojklikom na súbor hodnoty odošlete do registru. Systém si vyžiada potvrdenie, či to chcete naozaj urobiť. Ak kliknete na áno, naoko sa nič nestane, avšak dáta zo súboru sa v skutočnosti odošlú. V prípade, že v registri neboli, vytvoria sa. Ak dané vetvy v registroch už boli, ale mali iné hodnoty, hodnoty sa zmenia.

Odoslanie ako také nie je možné vziať späť. Vytvorené vetvy a hodnoty môžete síce dodatočne zmazať, ale pokiaľ nešlo o ich vytváranie, ale prepis, nikde sa nedozviete, aké boli pôvodné hodnoty. Ak si teda na svoj počítač stiahnete REG súbor, ktorý nepoznáte, vždy si dobre rozmyslite odkiaľ je a či všetkým hodnotám, ktoré obsahuje, rozumiete.

Exportovať do súboru je možné aj kompletne celý register (klikom na najvyššiu vetvu – Computer). V bežných situáciách je ale omnoho vhodnejšie zálohu registru vykonať vytvorením Bodu obnovy (napíšte „Vytvoriť bod obnovenia“ do vyhľadávania v menu Štart).

Je to vhodnejšie preto, že Bod obnovy môžete použiť aj v prípade, že systém je nefunkčný a odmietne sa spustiť. Starší bod obnovy je tak možné spustiť pred jeho štartom, z nástroja na Obnovu, čím sa Registre obnovia takisto.

JE POTREBNÉ REGISTRE NEJAKO UDRŽOVAŤ V ČISTOTE?

Registre sa z používateľskej stránky vôbec nečistia a ani neudržujú. Žiadne ich upratovanie nemusíte vykonávať „po pár rokoch“ či nedajbože dokonca pravidelne. S registrom skrátka nie je nutné robiť absolútne nič.

Ak ste sa vo svojom živote registrov nikdy nedotkli a ani ste do nich nenazreli, je to stav, aký bol pre ne zamýšľaný.

Aj keď je pravdou, že postupom času v registroch zostávajú rôzne „mŕtvoly“, teda vetvy, ktoré zostali po dávno nepoužívaných programoch, ktoré mali lajdácky proces odinštalácie, tieto zabudnuté záznamy systém nijako nespomaľujú.

Po čistom nainštalovaní systému majú záznamy v registri zhruba 1,7 milióna riadkov a to, že sa po rokoch rozšíria na 1,8 milióna, pričom je medzi nimi pár stoviek či tisíc kľúčov zbytočne, nehrá z hľadiska systému rolu.

https://www.youtube.com/watch?v=yRwVr8gFxnI

Na našom videu vyššie môžete vidieť, že systém sa nespomalí ani keď obsah registrov umelo zdvojnásobíme, tak aby počet ich hodnôt, respektíve riadkov presahoval 3 milióny.

Systém pravdaže môžeme spomaliť inak, napríklad nevhodným, alebo zlým nastavením, teda aj nevhodnou editáciou registru, avšak opustená vetva alebo vetvy programov, ktoré už v systéme nie sú, nič také nerobia.

Vetvy totiž už nič nečíta. Zrýchlenie počítača ich detegovaním a vymazaním je obchodovanie s „hadím olejom“. Tento podvod sa vám snažia predať rôzne pochybné programy, ako napríklad CCleaner, ktorých používanie neodporúčame.

To, že mŕtve, respektíve opustenými vetvy systém nespomaľujú pravdaže neznamená, že v niektorých prípadoch zmazanie niektorej nebude vhodné.

Existujú prípady, kedy napríklad v kontextovom menu systému zostanú položky neexistujúcich programov, alebo ich funkcií. Nič zlé síce nerobia, ale každopádne zavadzajú. Samotné menu totiž na niektorých príponách nafukujú „funkciami“, ktoré nikam nevedú a nefungujú.

Typicky sa takýto stav dosiahne tak, že používate nejakú nie príliš dobre navrhnutú „portable“ edíciu programu, ktorou vykonáte permanentný zásah (integráciu) do systému a program ako taký následne zmažete. Keďže ale proces odinštalácie neexistoval, zmeny v kontextových ponukách či nastavení zostali a stále na daný program smerujú.

Vtedy je vhodné program klasicky nainštalovať a regulárne odinštalovať, čo problém vyrieši, alebo ak nie je inej možnosti, nevhodné hodnoty v registroch podľa názvu nájsť (napr. pomocou integrovaného vyhľadávania v Regedit aplikácii) a zmazať ich z registrov ručne.

Značky:

František Urban

František Urban
Zameriavam sa najmä na prehľadové a analytické články z oblasti najrôznejších technológií a ich vývoja. Nájdete ma takisto pri diagnostike HW a SW problémov.