Архітектура системного реєстру. Частина 1

Реєстр грає основну роль в конфігурації і управлінні операційних систем, і є таким собі сховищем загальносистемних і призначених для користувача параметрів. Параметри системного реєстру розташовані в пам`яті комп`ютера і підтримуються виконавчою системою, а також ядром самої операційної системи. Про цей момент, як і про багатьох інших, ви дізнаєтеся з контексту даної статті.

Отже, реєстром Windows є ієрархічна база даних, яка зберігає конфігураційну інформацію операційної системи, додатків, а також інформації про користувачів і обладнанні. Структура даних для зручності використання надана в деревовидному форматі. Більшу частину параметрів, що містяться в реєстрі ви можете отконфигурировать вручну за допомогою призначеного для користувача інтерфейсу (наприклад, в розділі HKEY_CURRENT_USER Software Policies Microsoft Windows Explorer ви можете виконувати настройки в меню «Пуск», що також можете зробити з діалогового вікна «Налаштування меню «Пуск» », що викликається по натисканні на кнопку« Налаштувати »у властивостях панелі задач і меню« Пуск »), однак, для зміни деяких додаткових параметрів ніякого графічного призначеного для користувача інтерфейсу (GUI) не передбачено (наприклад, для настройки діа ога перемикання між вікнами ви можете скористатися параметрами з розділу HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Explorer AltTab).

Для настройки таких параметрів найзручніше використовувати ряд утиліт, призначених для модифікації реєстру. Операційна система Windows надає такі штатні засоби для роботи з реєстром, як утиліта «Редактор реєстру» (Regedit.exe), яка має зручний для роботи графічний інтерфейс, а також утиліти командного рядка Reg. За допомогою цих обох утиліт ви можете переглядати, додавати, видаляти, порівнювати, а також копіювати, складати і відновлювати окремі копії елементів реєстру. При роботі з кожною з цих утиліт варто бути уважними і обережними, так як некоректне внесення змін до реєстру може мати серйозні наслідки, через які може навіть знадобитися заново операційну систему.

Зчитуватися конфігураційна інформація системного реєстру може в різні моменти роботи операційної системи, починаючи з модифікації будь-якого конкретного параметра або розділу і закінчуючи моніторингом конфігураційних параметрів специфічного програмного забезпечення. Але завжди конфігураційні дані системного реєстру зчитуються в наступних випадках:

  • Під час завантаження операційної системи зчитуються деякі параметри, які визначають, які драйвера для різних пристроїв необхідно завантажити;
  • Під час завантаження ядра операційної системи, також використовуються деякі параметри, які дозволяють налаштовувати поведінку операційної системи, такі як диспетчер пам`яті, диспетчер процесів та ін .;
  • При завантаженні графічної підсистеми і компонентів Windows, таких як Провідник Windows, Панель Управління та ін., З системного реєстру зчитуються конфігураційні налаштування і переваги поточного користувача. До цієї категорії можна віднести розташування ярликів на робочому столі, колірні схеми, різні надбудови і панелі управління веб-браузера Internet Explorer та інші;
  • Під час запуску будь-якої програми з реєстру зчитуються загальносистемні параметри, включаючи інформацію про ліцензування, настройки для даного користувача і інше.

Крім зчитування даних про розділи і параметрах системного реєстру, його дані також можуть модифікуватися. Далі надано список найбільш часто повторюваних ситуацій, пов`язаних з модифікацією параметрів і розділів реєстру:

  • Перш за все, вся структура системного реєстру, а також налаштування, встановлені за умовчанням, визначаються версією, що поставляється на дистрибутиві операційної системи, яка копіюється при установці нової системи;
  • Розділи і параметри в реєстрі створюються при установці драйвера Plug and Play, які визначають роботу самого драйвера, а також в якому разі слід запускати драйвер для пристрою;
  • Під час установки всіляких додатків, для їх налаштувань за замовчуванням створюються нові розділи з параметрами;
  • Під час зміни параметрів додатків або властивостей самої операційної системи посредствам призначеного для користувача інтерфейсу змінюються певні параметри реєстру.

структура реєстру

Всі перераховані вище конфігураційні установки можна знайти в розділах реєстру, які розміщені в кореневому розділі, контролюючому, як і коли будуть використовуватися вкладені розділи і параметри. У кожному розділі можуть бути створені записи, звані параметрами. Розділ може містити будь-яку кількість параметрів, значення яких можуть бути надані в будь-якій можливій формі. Кожен розділ має своє унікальне ім`я, що складається з одного або декількох символів, що не чутливих до регістру. Всі імена кореневих розділів представляють Windows-описатели (Handlers) розділів (HEY), в зв`язку з цим і було створено назву ключових розділів HKEY (HK). В наступній таблиці ви можете побачити назви розділів, їх абревіатур, а також короткий опис:

Відео: Ручна чистка системного реєстру Windows 7

Таблиця 1. Опис кореневих розділів системного реєстру Windows
Таблиця 1. Опис кореневих розділів системного реєстру Windows

У наступних підрозділах ви знайдете більш детальну інформацію про кожного кореневому розділі реєстру.

HKEY_USERS

У кореневому розділі HKEY_USERS (HKU) системного реєстру ви можете знайти підрозділи для кожного профілю користувача, а також реєстраційну базу даних класів і підрозділ HKU .DEFAULT, який пов`язаний з профілем, призначеним для процесів, які виконуються під локальної системної обліковим записом. Крім цього, даний профіль використовується службою Winlogon, скажімо, для зміни параметрів фону робочого столу на екрані входу в систему. Також, багато системних служб запускається від імені облікового запису Local System, де застосовується профіль за замовчуванням. Для цього розділу недоступна інформація, яка зберігається в профілі користувачів, зіставлених з іншими обліковими записами. Інформація по кожному профілю операційної системи поміщається в підрозділ, ім`я якого відповідає ідентифікатору (SID) облікового запису. Самі конфігураційні дані, які знаходяться в таких підрозділах, включають в себе час останнього завантаження даного профілю, двійкове подання цього ідентифікатора, а також шлях до куща профілю на жорсткому диску.

Ще деякі служби використовують обліковий запис, якій необхідно аутентифицироваться на інших комп`ютерах, розташованих в локальній мережі, але не потрібно членство в адміністративних групах або привілеїв, які призначаються обліковим записом Local System. Реєстраційний запис називається Network Service і процеси, що виконуються під цим обліковим записом, використовують її профіль, який розташований в розділі HKU S-1-5-20 та його файли розташовані в папці% SystemRoot% ServiceProfiles NetworkService.




Ще є обліковий запис Local Service, яка за своїми особливостями дуже схожа на Network Service, але до основного її відмінності можна віднести те, що ця обліковий запис звертається тільки до тих мережевих ресурсів, які дозволяють анонімний доступ. Такий профіль завантажується в розділі HKU S-1-5-19 та фізично зберігається в папці% SystemRoot% ServiceProfiles LocalService.
HKEY_CURRENT_USER

У кореневому розділі HKEY_CURRENT_USER (HKCU) ви знайдете конфігураційні параметри програмного забезпечення і призначені для користувача дані, зареєстровані для поточного локального користувача. Завжди підрозділи HKCU і їх параметри будуть посилатися тільки на профіль поточного користувача, який на жорсткому диску можна знайти в файлі c: Users % username% Ntuser.dat. І кожен раз, при завантаженні профілю користувача, на підрозділ в HKEY_USERS створюється посилання, що відповідає поточному ввійшов в систему користувачеві. У вкладених підрозділах цього кореневого розділу системного реєстру ви можете налаштовувати:

  • Зіставлення звукових сигналів, згідно різним подіям (підрозділ AppEvent);
  • Параметри зовнішнього вигляду вікна командного рядка (підрозділ Console);
  • Конфігураційні параметри для налаштувань панелі управління поточного користувача (підрозділ Control Panel, в якому ви можете налаштувати додаткові параметри існуючих екранних заставок, оформлення вашого робочого столу, налаштування спеціальних можливостей, компонента «Годинник, мова та регіон», а також параметри клавіатури і миші);
  • Вказати шляхи змінних оточень для поточного користувача (підрозділ Environment);
  • Інформація про знаках EUDC для кінцевого користувача (підрозділ EUDC);
  • Конфігураційні параметри для облікового запису Windows Mail (підрозділ Identities);
  • Змінити параметри розкладки клавіатури (підрозділ Keyboard Layout);
  • Вказувати імена і всілякі параметри підключених до цього активного користувача мережевих дисків (підрозділ Network);
  • Змінювати параметри підключених принтерів (підрозділ Printers);
  • Керувати налаштуваннями віддаленого використання даного комп`ютера (підрозділ RemoteAccess);
  • Встановлювати всілякі налаштування для штатного програмного забезпечення, а також додатків, розроблених третіми сторонами (підрозділ Software);
  • Змінювати деякі системні параметри (підрозділ System);
  • Вказувати змінні оточення, що відповідають за ім`я користувача, розташування папки AppData та інше (підрозділ Volatile Environment);
  • Налаштовувати групи головного меню, які є специфічними для кожного користувача.

Відео: Архітектура Windows. Програмування в ядрі Windows

HKEY_LOCAL_MACHINE

Кореневий розділ HKEY_LOCAL_MACHINE (HKLM) містить свої підрозділи з параметрами конфігурації, які стосуються загальносистемної конфігурації поточного комп`ютера, тобто конфігураційних даних, які не настроюються для всіх користувачів. Варто звернути увагу на те, що системний реєстр 64-розрядних версій операційних систем Windows складається з 32- і 64-бітних розділів реєстру, де у більшості 32-розрядних розділів реєстру назви розділів ідентичні тим, які вказані в 64-розрядному розділі, і навпаки . За замовчуванням, 64-розрядної версії редактора реєстру (утиліта Regedit.exe), яка входить до складу 64-розрядних операційних систем Windows відображає як 64, так і 32-розрядні розділи. У 64-розрядної версії утиліти «Редактор реєстру», 32-розрядні розділи розташовані тут: HKEY_LOCAL_MACHINE Software WOW6432Node. Розділ HKLM містить наступні основні підрозділи:

Відео: Очищення Windows. Частина 1. Чистимо диск С засобами Windows

BCD. Даний підрозділ містить інформацію про конфигурационной базі даних завантаження (Boot Configuration Database BCD). Ця база даних замінює файл Boot.ini, який використовувався в операційних системах, які вийшли до Windows Vista, і надає більше можливостей для конфігурації даних про завантаження ОС. Кожен запис в поточному підрозділі, яка була зроблена під час установки операційної системи або під час зміни параметрів завантаження засобами командного рядка, зберігається в дочірньому підрозділі Objects або в якості самого об`єкта, на який посилається завантажувальний запис у вигляді GUID, або в підрозділах з назвами в вигляді цифр. Значення, пов`язані з кожним параметром підрозділів відповідають параметрам утиліти bcdedit.exe командного рядка.

COMPONENTS. У поточному підрозділі міститься інформація, яка відноситься до компоненту на підставі обслуговування стека (Component Based Servicing CBS). Даний стек включає в себе всілякі файли і ресурси, які є частиною образу установника Windows. Параметри CBS API, які розташовані в даному розділі, призначені для визначення встановлених компонентів і їх конфігурації. Використовується ж вся ця інформація кожен раз, коли компоненти встановлюються, оновлюються або видаляються в індивідуальному, або в пакетному режимах.




HARDWARE. Цей підрозділ включає в себе опис апаратного забезпечення для локальної системи, а також всі зіставлення драйверів з фізичними пристроями. Тут ви можете знайти конфігураційні параметри для всіх пристроїв, які присутні в «Диспетчері пристроїв». У розділі HARDWARE можна відзначити чотири основні підрозділи. Підрозділ ACPI містить інформацію про конкретні можливості ACPI на цьому комп`ютері. Підрозділ Descriptions містить опису центральних процесорів, процесорів для операцій з плаваючою точкою, а також багатофункціональних пристроїв комп`ютера. Підрозділ DeviceMap зіставляє пристрої драйверам. У підрозділі ResourceMap є три основні підрозділи. Перший призначений для рівня апаратних абстракцій, таких як HAL, застосовуваний при відстеженні знайдених пристроїв. Другий - для Plug-and-Play Manager, тобто для запису пристроїв, про які відомо. А третій - для відображення обсягу оперативної пам`яті. Залежно від апаратної конфігурації даний розділ може містити додаткові підрозділи.

SAM. Підрозділ SAM (Security Accounts Manager) розділу HKLM включає в себе таку інформацію про локальні користувачів і групи, як зіставлення з доменом Active Directory, визначення груп, а також паролі. Незважаючи на те, що на контролерах домену Active Directory в базі даних зберігаються загальнодоступні параметри і відомості про користувачів, комп`ютерах і доменних групах, SAM-файл є базою облікових записів користувачів, що містить відомості про рівні користувача привілеїв, паролів і т.п., дескриптор захисту якої налаштований так, що до нього не має доступ навіть адміністратор. Тому за замовчуванням вся гілка підрозділу SAM закрита від перегляду. Допоміжними файлами для даного розділу є файли Sam, Sam.log і Sam.sav.

SECURITY. З даними підрозділом пов`язані дані, які мають відношення до загальносистемних політикам безпеки. Крім цього, підрозділи SAM і SECURITY пов`язані спеціально для зберігання інформації про права, призначених користувачам в підрозділі HKLM SECURITY SAM. Перегляд даного розділу багато чого не дасть (за замовчуванням дескриптор захисту встановлений так, що доступ до цього розділу є тільки у облікового запису System), так як дані, які в ньому містяться, не задокументовані, а всі паролі ретельно зашифровані. Допоміжними файлами для даного розділу є файли Security, Security.log і Security.sav.

SOFTWARE. Поточний підрозділ можна назвати в якійсь мірі коренем всієї структури підрозділів HKLM, так як це саме те місце, де операційна система Windows зберігає загальносистемну конфігураційну інформацію додатків і компонентів, які не беруть участі в завантаженні самої системи. Крім того, при установці програмного забезпечення саме в цьому розділі створюються підрозділи, призначені для збереження своїх загальносистемних налаштувань. Більша частина даних про налаштування призначеного для користувача інтерфейсу зберігається в підрозділі HKLM Software Microsoft Windows CurrentVersion. Тут також ви можете з легкістю знайти підрозділи, призначені для відновлення системи, що шифрує файлової системи, служби терміналів і багато іншого. Допоміжними файлами для даного розділу є файли Software, Software.log і Software.sav.

SYSTEM. У цьому, останньому, розділі HKLM знаходиться загальносистемна конфігураційна інформація, яка виконується в останню чергу після завершення завантаження операційної системи. До таких даних можна віднести керуючі настройки, список драйверів і служб, що запускаються, які застосовуються при останньої вдалої завантаженні, також званої останньої конфігурацією, так як для запуску операційної системи вона критична і Windows завжди робить її копію. Одним з основних підрозділів HKLM SYSTEM є підрозділ CurrentControlSet, який вказує на набір керуючих параметрів, використовуваних на даний момент операційною системою. Допоміжними файлами для даного розділу є файли System, System.alt, System.log і System.sav.
HKEY_CLASSES_ROOT

Цей кореневий розділ, в якійсь мірі, можна назвати підрозділом HKEY_LOCAL_MACHINE Software Classes, що містить параметри за замовчуванням, які застосовуються до всіх користувачів локального комп`ютера. Він включає в себе зіставлення розширень файлів, а також ідентифікаційні дані COM-класів. Тут для кожного зареєстрованого типу файлів, у відповідних підрозділах, вказані відомості, що забезпечують виконання необхідної програми при відкритті файлу. У свою чергу, в підрозділі HKEY_CURRENT_USER Software Classes, параметри визначають реєстраційні дані класів розширень файлів, які відносяться тільки до активного користувача і фізично розташовані в файлі c: Users % ім`я_користувача% AppData Local Microsoft Windows UsrClass. dat. Дані цього джерела також включені в розділ HKCR, але дані, які були додані або змінені безпосередньо з цього розділу будуть збережені операційною системою в розділі HKEY_LOCAL_MACHINE Software Classes. Варто також звернути увагу на те, що для кожного користувача локального комп`ютера такі дані є специфічними, що не дозволяє звичайним користувачем змінювати або видаляти розділи в HKCR, а також вказувати специфічні налаштування для певних типів файлів конкретним користувачам.

Відео: Як Видалити Програму з Комп`ютера Вручну - з Очищенням Системного "реєстру"

HKEY_CURRENT_CONFIG

Якщо кореневий розділ HKEY_CLASSES_ROOT можна назвати посиланням на розділи HKEY_LOCAL_MACHINE Software Classes і HKEY_CURRENT_USER Software Classes, то даний розділ є звичайною посиланням на поточний профіль обладнання, розташований в розділі HKEY_LOCAL_MACHINE System CurrentControlSet Hardware Profile Current. Саме за допомогою цього розділу реєстру ви можете управляти можливими настройками системних драйверів для існуючих апаратних пристроїв. Незважаючи на те, що можна вказати профіль, який буде активний при наступному завантаженні операційної системи, налаштування HKCC будуть завжди застосовуватися для активного профілю.

HKEY_PERFORMANCE_DATA

Відомо, що при виявленні можливих проблем з апаратною конфігурацією і всієї продуктивністю системи в цілому, рекомендується використовувати оснастку «Системний монітор» з відповідними лічильниками продуктивності. В операційних системах Windows системний реєстр також відноситься до механізму, що забезпечує доступ до всіх значень лічильників продуктивності, які використовуються для моніторингу системи. Основною перевагою у використанні лічильників продуктивності засобами реєстру є можливість моніторингу віддалених комп`ютерів без особливих витрат, так як API-функції реєстру дозволяють отримати швидкий доступ до віддаленого реєстру. У зв`язку з тим, що в даному розділі зберігаються не конфігураційні параметри, а тільки посилання на відповідні джерела даних лічильників продуктивності, доступ до розділу HKPD засобами утиліти «Редактор реєстру» заборонений. Інформацію з даного розділу реєстру ви можете отримати за допомогою функції PDH (Performance Data Helper), яка надається бібліотекою Pdh.dll (Performance Data Helper API), компоненти якої ви можете побачити на наступній ілюстрації:

Архітектура доступу до лічильників продуктивності
Мал. 1. Архітектура доступу до лічильників продуктивності

Значення параметрів реєстру Windows

Як ви вже зрозуміли, розділи системного реєстру можна назвати контейнерами, які містять конфігураційну інформацію. Інформація такого роду міститься в параметрах, які цілком можна порівняти з файлами, розташованими в папках на диску, звідки, власне, і запозичене угоду про їх іменуванні. Відповідно, ви можете дати однакові назви багатьма параметрами, але тільки в тому випадку, якщо ці параметри розташовані в різних розділах або підрозділах.

Кожен параметр реєстру складається з таких складових, як ім`я параметра, тип даних, а також самого значення. З дотриманням правильних типів даних додаються вами параметрів потрібно бути вкрай уважними і обережними. Використовуйте саме той тип даних, який вказаний в джерелі самого Твіка, так як в противному випадку наслідки можуть бути досить істотними. Починаючи з версії операційної системи Windows XP, максимальна довжина імені параметра не повинна перевищувати 16383 символів.

В цілому налічується 15 типів даних, але в більшості випадків використовуються тільки параметри типу REG_DWORD, REG_BINARY, а також REG_SZ. Всі типи даних параметрів реєстру описані в наступній таблиці:

Типи даних параметрів реєстру
Таблиця 2. Типи даних параметрів реєстру

Також варто наголосити на тому, що для підвищення ефективності використання системного реєстру, зберігаються в реєстрі зовнішнього файлу, де зберігаються значення, що перевищують розмір 2048 байт. Загальний розмір всіх параметрів розділу не повинен перевищувати 64 КВ.


Поділися в соц. мережах:

По темі: