Системный реестр Windows представляет собой централизованную базу данных параметров настройки системы и работающих в ней приложений. Реестр пришел на смену всевозможным INI-файлам – файлам конфигурации Windows, для снятия неудобств и ограничений, связанных с их использованием.
5-е издание словаря Microsoft Computer Dictionary определяет реестр следующим образом:
Иерархически построенная, централизованная база данных в составе операционных систем Microsoft Windows 9x, Windows CE, Windows NT, Windows 2000 и Windows XP, содержащая сведения, которые используются для конфигурации операционной системы для работы с пользователями, программными продуктами и устройствами.
В реестре хранятся данные, которые необходимы для правильного функционирования Windows. К ним относятся профили всех пользователей, сведения об установленном программном обеспечении и типах документов, которые могут быть созданы каждой программой, информация о свойствах папок и значках приложений, а также установленном оборудовании и используемых портах.
Системный реестр заменяет собой большинство текстовых INI-файлов, которые использовались в Windows 3.x, а также файлы конфигурации MS-DOS (например, Autoexec.bat и Config.sys). Версии реестра для разных версий операционных систем семейства Windows имеют определенные различия.
Практически любой процесс, работающий в ОС Windows, использует системный реестр в своих целях. Реестр можно представить как банк данных, в котором хранится всевозможная информация, необходимая для программ, служб, драйверов. Высокоуровневые службы, обеспечивающие работоспособность ОС, используют реестр с самого начала загрузки Windows и до завершения работы. Системный реестр также используется и драйверами устройств для загрузки и инициализации.
Реестр становится необходимым уже на самых ранних этапах загрузки ОС. Большинство проблем с загрузкой Windows, как правило, является следствием неправильной эксплуатации системного реестра. При этом в проблеме может быть виноват как пользователь, который своими некорректными действиями нарушил работоспособность реестра, так и приложение, которое внесло в реестр неверные данные, в результате чего система не может нормально функционировать.
Основу реестра Windows составляют корневые разделы. Каждый корневой раздел содержит вложенные подразделы и параметры – элементы данных реестра.
Все имена корневых разделов начинаются со строки HKEY_, что указывает разработчикам ПО на то, что это – дескриптор, который можно использоваться программой. Дескриптор – это значение, используемое для уникального описания ресурса, к которому программа может получить доступ.
Хотя реестр в системах Windows 9x и Windows 2000 выполняет схожие функции и имеет аналогичную структуру в виде разделов и параметров, он реализован в каждой из систем по разному.
Данные реестра, как уже было сказано, хранятся в виде параметров, расположенных в соответствующих разделах реестра. Каждый параметр характеризуется: именем, типом данных и значением. Различают следующие основные типы данных в реестре Windows 2000:
Тип данных |
Описание |
REG_BINARY |
Необработанные двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате. |
REG_DWORD |
Данные представлены в виде значения, длина которого составляет 4 байта (32-разрядное целое). Этот тип данных используется для хранения параметров драйверов устройств и служб. Значение отображается в окне редактора реестра в двоичном, шестнадцатеричном или десятичном формате. |
REG_EXPAND_SZ |
Строка данных переменной длины. Этот тип данных включает переменные, обрабатываемые при использовании данных программой или службой. |
REG_MULTI_SZ |
Многострочный текст. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами. |
REG_SZ |
Текстовая строка фиксированной длины. |
Системный реестр Windows подразделяется на составные части, которые называются кустами или ульями (hives). Куст представляет собой файл, который содержит корневой раздел, его подразделы и параметры. Отличие кустов от других групп разделов состоит в том, что они являются постоянными компонентами реестра. Кусты не создаются динамически при загрузке ОС и не удаляются при ее остановке. В Windows 2000 файлы всех кустов реестра, кроме HKEY_CURRENT_USER, находятся в папке Systemroot\System32\Config. Вспомогательные файлы куста HKEY_CURRENT_USER хранятся в папке Systemroot\Profiles\Username. Расширения имен этих файлов (или их отсутствие) указывают на тип содержащихся в них данных.
Как уже было упомянуто, каждый куст реестра Windows 2000 ассоциирован с соответствующим файлом. Кусту могут соответствовать и дополнительные файлы. В следующей таблице перечислены стандартные кусты реестра Windows 2000 и поддерживающие их файлы.
Ветвь реестра |
Имена файлов |
HKEY_LOCAL_MACHINE\SAM |
Sam, Sam.log, Sam.sav |
HKEY_LOCAL_MACHINE\Security |
Security, Security.log, Security.sav |
HKEY_LOCAL_MACHINE\Software |
Software, Software.log, Software.sav |
HKEY_LOCAL_MACHINE\System |
System, System.alt, System.log, System.sav |
HKEY_CURRENT_CONFIG |
System, System.alt, System.log, System.sav |
HKEY_USERS\.Default |
Default Default.log Default.sav |
Файлы, не ассоциированные с разделами |
Userdiff, Userdiff.log |
HKEY_CURRENT_USER |
Ntuser.dat, Ntuser.dat.log |
В файле Ntuser.dat хранятся пользовательские профили. Файл Ntuser.dat.log отслеживает изменения, которые вносились в файл Ntuser.dat.
Файлы Ntuser и Userdiff были впервые введены в Windows NT 4.0 и выполняют следующие функции:
- Ntuser.dat – в файле хранится профиль пользователя;
- файлы Userdiff служат для обновления существующих профилей пользователя, использовавшихся в более ранних версиях Windows NT, таким образом, чтобы эти профили могли применяться в Windows NT 4.0 и последующих версиях Windows.
С кустами ассоциируются файлы четырех типов.
Тип файла |
Описание |
Без расширения |
Содержит копию куста |
Alt |
Содержит копию жизненно важного куста HKEY_LOCAL_MACHINE\System. Только раздел System имеет соответствующий файл с расширением alt |
Log |
Содержит журнал транзакций, в котором регистрируются все изменения, внесенные в разделы и значимые элементы куста. |
Sav |
Содержит копии файлов куста в том виде, который они имели на момент завершения текстовой фазы процесса установки. |