Rejestr systemu
Windows 98
źródło: Microsoft Windows 98 Rejestr; Microsoft Press
Rejestr jest centralną, hierarchiczną bazą danych systemu Windows 98, w której przechowywane są informacje o konfiguracji.
Dlaczego zrezygnowano z plików INI?
Każda część pliku INI rozpoczyna się od słowa kluczowego otoczonego nawiasami kwadratowymi (takiego jak [windows] w pliku WIN.INI), po którym następuje szereg linii opisujących poszczególne ustawienia. Mimo że we wcześniejszych, mniej skomplikowanych wersjach Windows takie podejście było wystarczające, w wersjach późniejszych - Windows 3.1 i Windows 3.11 stwarzało już pewne problemy. Wady plików INI:
Pliki INI są plikami tekstowymi, ich rozmiar nie może przekraczać 64 KB. W miarę jak w systemie Windows instalowane są nowe programy, plik WIN.INI rośnie, zbliżając się do granicznej wartości 64 KB - tym samym ograniczona jest liczba programów, które można zainstalować. Ponadto niektóre programy mają kłopoty z poprawnym odczytaniem wartości poza pierwszymi 32 KB. Tak więc, bez względu na systemowe ograniczenie 64 KB, nie należy tworzyć plików INI większych niż 32 KB, gdyż ma to wpływ na poprawne działanie programów.
Informacje zawarte w pliku INI nie tworzą hierarchii - plik składa się z nagłówków sekcji i dodatkowych linii tekstu, przez co dostęp do długich plików INI jest powolny. Aby zapobiec czytaniu długiego pliku INI, a tym samym przyspieszyć działanie aplikacji, programiści zaczęli dla każdego programu tworzyć oddzielne pliki INI. W rezultacie, każda testowana aplikacja pozostawia w katalogu Windows niepotrzebny plik INI. W systemie plików powstaje przez to bałagan.
Każdy plik INI inicjuje szereg ustawień dotyczących całego systemu, tak więc nie można w prosty sposób umieścić informacji specyficznych dla różnych użytkowników. Ponadto niemożliwy jest zdalny dostęp do plików INI lokalnej maszyny (nie jest on także możliwy z poziomu API).
Pliki INI w Windows 98
Przeglądając katalog \Windows podczas pracy z Windows 98, można nadal odnaleźć pliki WIN.INI i SYSTEM.INI, a także inne pliki INI. System Windows 98, podobnie jak Windows 95, obsługuje pliki WIN.INI i SYSTEM.INI, ze względu na zgodność ze starszymi wersjami systemu. Zawarte w nich ustawienia są wykorzystywane przez aplikacje Win16. Program instalacyjny aplikacji Win16 nie modyfikuje zawartości Rejestru, lecz tworzy odpowiedni plik INI. Dzieje się tak dlatego, że aplikacje szesnastobitowe są projektowane tak, by zachować zgodność z wcześniejszymi wersjami Windows nie posiadającymi Rejestru
Zadania stawiane przed Rejestrem
Wszystkie dane konfiguracyjne (dotyczące zarówno użytkownika, jak i systemu) powinny być przechowywane w pojedynczym źródle (logicznym).
W bazie danych można przechowywać dane konfiguracyjne wielu użytkowników.
W tej samej bazie danych można przechowywać zarówno konfigurację sprzętu, jak i systemu operacyjnego.
Baza danych jest odtwarzana po awarii.
Rozmiar bazy danych nie jest ograniczony do 64 KB.
Administrator może konfigurować bazę danych korzystając z narządzi Panelu sterowania lub narzędzi zewnętrznych.
Zbiór niezależnych od sieci funkcji umożliwia zdalny dostęp do Rejestru (za pośrednictwem sieci).
Programiści mogą uzyskiwać dostęp do Rejestru z poziomu API.
Architektura Rejestru
Informacje przechowywane w hierarchicznej bazie danych - Rejestrze - są zgrupowane w klucze, każdy klucz zawiera jeden lub kilka podkluczy, które z kolei przechowują wartości, chyba że danemu podkluczowi nie przypisano żadnej wartości, tak jak poniżej:
klucz
podklucz l | wartość
podklucz 2
podklucz 3 | wartość
Użycie wielu podkluczy pozwala grupować opcje. W rezultacie powstaje hierarchiczne drzewo, które można zobaczyć, wykorzystując edytor Rejestru (rys. 1). Gałęzie reprezentują informacje o użytkowniku, sprzęcie, aplikacji itd.
Rys. 1 Przykładowa gałąź rejestru
Rejestr systemu Windows 98 składa się z sześciu głównych kluczy. Każdy z nich reprezentuje jeden aspekt danych konfiguracyjnych (tzn. dane użytkownika oraz ustawienia związane ze sprzętem). Każdy klucz, którego nazwa rozpoczyna się od HKEY_ jest kluczem głównym, zawierającym szereg podkluczy. Klucze główne pokazano na rys. 2.
Rys. 2 Sześć głównych kluczy rejestru
Pliki przechowujące rejestr
Aby zabezpieczyć ustawienia ogólne przed ingerencją końcowych użytkowników, a także by umożliwić definiowanie pewnych globalnych ustawień, dotyczących wszystkich użytkowników, w Windows 98 utworzono dwa typy danych Rejestru, przechowywane w dwóch oddzielnych plikach: SYSTEM.DAT i USER.DAT.
SYSTEM.DAT zawiera konfigurację systemu oraz ogólne ustawienia (na przy
kład ustawienia dla Pług & Play czy dla aplikacji). Ustawienia te są niezbędne
podczas startu systemu - na ich podstawie ładowane są sterowniki i określany
jest zainstalowany sprzęt. Plik SYSTEM.DAT znajduje się na lokalnej maszynie,
w katalogu, w którym zainstalowano Windows 98.
USER.DAT zawiera dane związane z konkretnymi użytkownikami (na przy
kład, nazwę użytkownika, ustawienia pulpitu, ustawienia menu Start itp.). W
trakcie konfigurowania systemu Windows, plik USER.DAT jest umieszczany
automatycznie w katalogu \Windows, lecz nie pozostaje tam na stałe. Gdy
włączone są profile użytkowników, ustawienia dotyczące poszczególnych
osób są przechowywane w podkatalogu \Windows\Profiles, zawierającym
kopię pliku USER.DAT dla każdego użytkownika. W środowisku sieciowym plik
ten może być przechowywany na centralnym serwerze i ładowany w razie
potrzeby.
Narzędzia służące modyfikacji rejestru
„Bezpieczne”
Panel sterowania: Większość ustawień systemowych.
Arkusz właściwości ekranu: Tło, wygląd elementów ekranu, karta graficzna, parametry wygaszacza ekranu.
System Policy Editor: Dostęp użytkownika do ustawień, niektóre ustawienia systemowe.
Narzędzia firm trzecich: Ustawienia charakterystyczne dla aplikacji, myszy, menu i wiele innych.
„Niebezpieczne”
Zawartość Rejestru można modyfikować także za pomocą Edytora Rejestru, który jest narzędziem o szerokich możliwościach (co jednocześnie czyni go niebezpiecznym). Edytor Rejestru należy wykorzystywać w ostateczności, tylko wtedy, gdy inne metody nie pozwalają osiągnąć pożądanego rezultatu.
Bez względu na wybraną metodę pracy, przed przystąpieniem do modyfikowania Rejestru należy koniecznie wykonać jego kopię zapasową.
Tworzenie kopii zapasowej oraz przywracanie Rejestru
Ręczne wykonywanie kopii zapasowej
Załóżmy, że chcemy utworzyć kopię bieżącej zawartości Rejestru do późniejszego wykorzystania. Najprostsze rozwiązanie problemu polega na ręcznym wykonaniu kopii Rejestru -wystarczy otworzyć Eksplorator Windows i skopiować na dyskietkę systemową (bądź do katalogu na dysku twardym) pliki SYSTEM.DAT i USER.DAT.
Jeżeli Rejestr zostanie uszkodzony, można odtworzyć go z kopii zapasowej posługując się DOS-owym poleceniem copy (należy pamiętać, że po uszkodzeniu Rejestru system Windows nie uruchamia się poprawnie). Pliki SYSTEM.DAT i USERS.DAT są przechowywane z atrybutami: tylko do odczytu, ukryty i systemowy. Po zakończeniu kopiowania należy przywrócić im poprawne atrybuty. Można tego dokonać następująco:
c:
cd \Windows
attrib -h -r -s system.dat
attrib -h -r -s user.dat
copy a:\user.dat
copy a:\system.dat
attrib +h +r +s system.dat
attrib +h +r +s user.dat
Po skopiowaniu na dysk twardy plików USER.DAT i SYSTEM.DAT można ponownie uruchomić komputer lub wywołać Windows bezpośrednio z linii poleceń DOS-a wydając polecenie WIN.
Istnieje jednak niebezpieczeństwo odtworzenia niepoprawnych danych. Plik SYSTEM.DAT jest przechowywany zawsze w folderze Windows wraz z kopią pliku USER.DAT. Niestety, system Windows przechowuje kilka kopii pliku USER.DAT -każdą w innym miejscu. Gdy aktywne są profile użytkowników, dla każdej z osób tworzona jest oddzielna kopia pliku USER.DAT. Podczas logowania system Windows określa, z której kopii korzystać. Odpowiednia kopia znajduje się w folderze Windows, w podfolderze \Profiles\nazwa_użytkownika. Pliki USER.DAT należy kopiować bardzo starannie, tak aby znalazły się w odpowiednim miejscu.
Kontroler Rejestru
W Windows 98 znajdują się dwie wersje tego programu:
SCANREG.EXE - wersja przeznaczona dla MS-DOS-a, używana do przywracania Rejestru.
SCANREGW.EXE - wersja dla Windows 98.
Podczas każdego uruchomienia systemu Windows 98, program SCANREGW.EXE sprawdza spójność struktur Rejestru. Jeśli nie zostaną znalezione żadne błędy, Kontroler Rejestru wykonuje kopię zapasową Rejestru. W razie wystąpienia problemów, system jest uruchamiany ponownie w trybie rzeczywistym, uruchamiany jest program SCANREG.EXE, który odtwarza Rejestr z najświeższej kopii. Jeśli odnalezienie kopii nie jest możliwe, Kontroler podejmuje próbę naprawienia Rejestru.
Aby za jego pomocą utworzyć kopię zapasową, należy otworzyć Eksplorator Windows, odszukać folder Windows i kliknąć dwukrotnie ikonę SCANREGW.EXE. Program sprawdzi, czy Rejestr nie został uszkodzony oraz czy nie wymaga optymalizacji rozmiaru. Jeśli nie wykryje żadnych problemów, na ekranie pojawi się okno dialogowe, z żądaniem potwierdzenia wykonania kopii zapasowej (rys. 3).
Rys. 3 Rezultat działania programu ScanRegW
Aby wymusić odtwarzanie Rejestru:
Uruchom komputer w trybie MS-DOS.
W linii poleceń MS-DOS wpisz ScanReg /RESTORE.
Zaznacz ostatnią, poprawną kopię zapasową.
Polecenie ScanReg /RESTORE odtwarza dane ze wskazanej kopii zapasowej. Kopie zapasowe są tworzone każdorazowo podczas uruchamiania komputera oraz przy każdym uruchomieniu programu SCANREGW.EXE.
Rejestracja rozszerzeń nazw plików
Plik jest otwierany przez odpowiedni program dzięki temu, że jego rozszerzenie jest przechowywane w Rejestrze w powiązaniu ze wskazaną aplikacją.
Struktura HKEY_CLASSES_ROOT
Rozszerzenia plików oraz ich powiązania ze wskazanymi aplikacjami są umieszczane w Rejestrze podczas instalacji nowego oprogramowania. Program instalacyjny rejestruje rozszerzenie nazwy oraz jego typ (ID_nazwy). Nazwa ta jest następnie wykorzystywana w drugim kluczu do definiowania poleceń związanych z określonym typem pliku. Do rejestrowania typów plików wykorzystywany jest fragment Rejestru o następującej strukturze: HKEY_CLASSES_ROOT
.ext = "ID_nazwy"
ID_nazwy = <"0pis">
shell
podklucz = <tekst pozycji menu>
polecenie = ciąg polecenia
…
Jako przykład niech posłużą pliki wsadowe z rozszerzeniem *.bat:
Pytania i zadania
Opisz zawartość sześciu podstawowych gałęzi rejestru.
Rejestr systemu Windows 98 przechowywany jest w dwóch plikach: SYSTEM.DAT i USER.DAT. W ilu plikach przechowywany jest rejestr systemu Windows XP, podaj ich nazwy.
Opisz opcje polecenia scanreg.
W jaki sposób Kontroler Rejestru tworzy kopie zapasowe i zarządza nimi?
Wykonać kopię zapasową rejestru.
Opisać procedurę
Przywrócić rejestr do wcześniejszego stanu wykorzystując uprzednio wykonaną kopię rejestru.
Opisać procedurę
Dla wymyślonego rozszerzenia pliku przypisać domyślny program otwierający i drukujący pliki z takim rozszerzeniem.
Dodać drugi program otwierający pliki z rozszerzeniem z p. 7.
Zdefiniować akcję domyślną podejmowaną po kliknięciu pliku z rozszerzeniem z p.7.
W jaki sposób (najprostszy) powiązać wiele rozszerzeń plików z jedną aplikacją.
Wykonać punkty 7 i 8 korzystając z zakładki Typy plików okna Opcje Folderów.
Po wykonaniu ćwiczeń proszę przywrócić rejestr do wcześniejszego stanu wykorzystując kopię wykonaną w p. 5.
Opisz zawartość sześciu podstawowych gałęzi rejestru.
HKEY_LOCAL_MACHINE (HKLM) -- komputer. Konfiguracja sprzętowa oraz zainstalowanych aplikacji i samego systemu operacyjnego. Są one przechowywane w pliku SYSTEM.DAT.
HKEY_USERS (HKU) -- użytkownicy. Profile konfiguracyjne użytkowników, ustawienia niektórych aplikacji, indywidualne opcje drukowania i sieci. Przechowywane w pliku USER.DAT, który może być przechowywany na lokalnym dysku systemowym lub serwerze sieci.
HKEY_CLASSES_ROOT (HKCR) w rzeczywistości jest wskaźnikem do HKEY_LOCAL_MACHINE\Software\Classes,
HKEY_CURRENT_CONFIG (HKCC) jest kopią HKEY_LOCAL_MACHINE\Config\numer wykrytej konfiguracji,
HKEY_CURRENT_USER (HKCU) jest kopią HKEY_USERS\nazwa zalogowanego użytkownika,
Rejestr systemu Windows 98 przechowywany jest w dwóch plikach: SYSTEM.DAT i USER.DAT. W ilu plikach przechowywany jest rejestr systemu Windows XP, podaj ich nazwy.
Rejestr przechowywany jest w 6 plikach o nazwach:
userdiff,
system,
software,
security,
sam,
default,
Znajduja sie one w katalogu: /windows/system32/config
Opisz opcje polecenia scanreg.
Scanreg umożliwia odtworzenie z kopii archiwalnej rejestr systemu windows, umożliwia kontrole i naprawę struktury danych rejestru,
W jaki sposób Kontroler Rejestru tworzy kopie zapasowe i zarządza nimi?
Przy każdym zamykaniu systemu, windows wykonuje archiwizacje aktualnej zwartości rejestru. Po ponownym uruchomieniu komputera, gdy system operacyjny wykryje uszkodzenie plików rejestru to wtedy będziemy mogli naprawić plik rejestru używają wykonanej wcześniej kopii archiwalnej rejestru.
Wykonać kopię zapasową rejestru.
Aby wykonać kopię rejestru systemu windows należy użyć programu Scanregw.exe
Po uruchomieniu, program zapyta czy chcemy wykonac kopie zapasowa rejestru, naciskamy tak. Po wyświetleniu komunikatu „Zakończono wykonywanie kopii zapasowej” naciskamy klawisz OK., i mamy wykonaną kopie zapasową.
Przywrócić rejestr do wcześniejszego stanu wykorzystując uprzednio wykonaną kopię rejestru.
Dla wymyślonego rozszerzenia pliku przypisać domyślny program otwierający i drukujący pliki z takim rozszerzeniem.
Dodać drugi program otwierający pliki z rozszerzeniem z p. 7.
Zdefiniować akcję domyślną podejmowaną po kliknięciu pliku z rozszerzeniem z p.7.
W jaki sposób (najprostszy) powiązać wiele rozszerzeń plików z jedną aplikacją.
Wykonać punkty 7 i 8 korzystając z zakładki Typy plików okna Opcje Folderów.