Windows XP - Справочник
Главная > Установка Win XP > Введение в реестр > Что такое реестр Windows XP ?

Что такое реестр Windows XP ?

Для начала определимся с терминологией. Эта важная часть нужна нам для того, чтобы лучше понимать друг друга. Реестр - это прежде всего основа операционной системы, огромная база данных настроек, хранящихся в папках %SystemRoot%\System32\Config и папке пользовательских профилей (Ntuser.dat). Без реестра Windows XP была бы просто набором программ, неспособных выполнить даже простейшие функции ОС. Все - даже мельчайшие детали конфигурационных данных - упаковано в реестре. Разобраться в реестре - задание не из легких, но это необходимо, если Вы желаете узнать ОС полностью, в большинстве случаев мало кто даже подозревает о существовании реестра. Итак, реестр или системный реестр - это база данных для хранения сведений о конфигурации компьютера и настроек операционной системы. Реестр содержит данные, к которым Windows XP постоянно обращается во время загрузки, работы и её завершения, а именно:

  • профили всех пользователей, то есть их настройки;
  • конфигурация оборудования, установленного в операционной системе. Я не пишу "установленного в компьютере", поскольку "железо" может быть, как говорится, "на борту", но не быть установленным в ОС, например, из-за устаревших драйверов.
  • данные об установленных программах и типах документов, создаваемых каждой программой;
  • свойства папок и значков программ;
  • данные об используемых портах.

Реестр имеет иерархическую древовидную структуру, состоящую из разделов, подразделов и ключей (параметров). Для работы с реестром используется простая и понятная утилита Regedit.
Запретить запуск Regedit В разделе HKCU\SOFTWARE\Microsoft\ Windows\CurrentVerson\Policies\System  добавить ключ DisableRegistryTools :dword= 0х00000001. Запуск редактора реестра будет запрещен, однако останется возможность вносить изменения с помощью программного обеспечения сторонних разработчиков и с помощью REG-файла.
Разделы и подразделы - это, грубо говоря, папки в левом окне regedit'а.
Ключ реестра или параметр - это некая переменная, которой присвоено определённое значение, проще говоря - это то, что мы видим в правом окне regedit'а.
Куст (основной раздел, стандартный раздел, в английской документации - улей , от англ. "hive") - это раздел реестра, отображаемый как файл на жестком диске. Куст является набором разделов, подчиненных разделов и параметров и имеет корни на верхнем уровне иерархии реестра. По умолчанию большинство файлов кустов (Default, SAM, Security и System) сохраняются в папке %SystemRoot%\System32\Config.
Папка %SystemRoot%\Profiles содержит профили (настройки) для каждого пользователя компьютера. Поскольку куст представляет собой файл, его можно перемещать из одной системы в другую. Для редактирования этого файла необходимо использовать редактор реестра. Важное замечание : Windows XP в отличие от своих предшественниц не имеет ограничения по размеру реестра.
Реестр Windows XP состоит из следующих основных разделов :

Раздел реестра
Краткое описание
HKEY_CLASSES_ROOT

Это ссылка на раздел HKLM\Software\Classes. Хранящиеся здесь сведения обеспечивают запуск необходимой программы при открытии файла с помощью проводника. Этот раздел содержит связи между приложениями и типами файлов, а также информацию об OLE.

HKEY_CURRENT_USER Это ссылка на определённый подраздел HKEY_USERS. Настройки соответствуют текущему, активному пользователю, выполнившему вход в систему.
HKEY_LOCAL_MACHINE

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

HKEY_USERS Этот раздел содержит настройки для всех пользователей компьютера.
HKEY_CURRENT_CONFIG

Это ссылка на: HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current. Раздел содержит сведения о настройках оборудования, используемом локальным компьютером при запуске системы, т.е. содержит информацию о текущей конфигурации.

Вышеуказанные основные стандартные разделы вы не сможете удалить или переименовать. Некоторые разделы реестра являются энергозависимыми (volatile) и не хранятся в каком-либо файле. Операционная система создает и управляет этими разделами полностью в памяти, поэтому они являются временными по своей природе. Система создает энергозависимые разделы каждый раз при начальной загрузке. Например, HKLM \HARDWARE - раздел реестра, который хранит информацию по физическим устройствам и назначенным им ресурсам. Назначение ресурса и аппаратное обнаружение происходят каждый раз при загрузке системы, поэтому логично, что эти данные не записываются на диск. Сердце системного реестра - это раздел HKLM \SYSTEM. Наибольший интерес для нас представляют ветви HKCU и HKLM, именно там хранятся настройки, изменения которых способно облагородить нашу операционную систему. Часто для обозначения основных разделов реестра пользуются сокращениями:

Раздел реестра

Аббревиатура

HKEY_CLASSES_ROOT

HKCR

HKEY_CURRENT_USER

HKCU

HKEY_LOCAL_MACHINE

HKLM

HKEY_USERS

HKU

HKEY_CURRENT_CONFIG

HKCC

Раздел HKEY_USERS содержит все активные загруженные параметры пользователя. Он имеет не менее трёх ключей:

  • подраздел DEFAULT, где хранится используемая конфигурация, когда ни один из пользователей ещё не вошёл в компьютер. То есть мы ещё видим приглашение на вход в систему.
  • дополнительный подраздел, который имеет имя в соответствии с security ID> текущего пользователя (описание SID см. ниже). Этот подключ реестра содержит конфигурацию текущего пользователя. Если пользователь вошёл удалённо, данные для конфигурации пользователя сохраняются в системном реестре местного компьютера. Данные из HKEY_USERS\%SID% также появляются в HKCU.
  • дополнительный подраздел, который имеет имя в соответствии с SID текущего пользователя с суффиксом Classes. Этот раздел содержит классы текущего пользователя. Данные в HKEY_USERS\%SID%_Classes также содержатся в HKCR.

В Windows XP конфигурация пользователя по умолчанию (default user profile) не хранится в системном реестре. Она находится на системном диске в файле \Documents and Settings\Default User\Ntuser.dat. Отметим, и это важно, что куст HKCU является ссылкой, линком на определённый подраздел куста HKEY_USERS. Это значит, что все изменения в разделах, подразделах и ключах куста HKCU автоматически тут же отображаются в определённом подразделе HKEY_USERS соответствующем активному пользователю. То есть пользователю, выполнившему процедуру входа.
В каком же именно разделе HKEY_USERS проводятся изменения? Для этого вы должны узнать свой SID. Тогда искомый раздел будет именоваться, например, так : HKEY_USERS\S-1-5-21-117609710-1606980848-839522115-500. Где цифровая часть, вместе с буквой "S", и есть SID.
Идентификатор безопасности (SID, security ID) - структура данных переменной длины, которая идентифицирует пользователя, группу или компьютер. Каждая учётная запись в сети имеет уникальный SID. Внутренние процессы в Windows обращаются к SID для получения учётной записи пользователя или имени группы. Откройте реестр HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList. Выберите SID и посмотрите ProfileImagePath. В конце строки найдете имя пользователя. Увидеть все SID, относящиеся к пользователям компьютера, вы можете раскрыв раздел HKEY_USERS. Но, в большинстве случаев, знать SID не обязательно. Отметим также, что HKLM\SYSTEM\CurrentControlSet это тоже ссылка, линк на один из пронумерованных подразделов с именами HKLM\SYSTEM\ControlSet00n, где n - номер. Подразделы ControlSet00n представляют собой наборы настроек для операционной системы Windows XP. Большинство систем имеет два пронумерованных управляющих набора, оригинал и резервную копию, которая использовалась при последнем успешном старте системы.
Операционная система Windows XP может обслуживать несколько таких наборов. Windows XP обслуживает резервные копии так, чтобы вы могли отменить изменения конфигурации, которые в противном случае могли бы препятствовать загрузке операционной системы. Windows XP хранит последний набор настроек, который был использован успешно, и настройки по умолчанию. Эти значения сохранены в подключе >Select. Имена параметров ключа Select соответственно: Current - текущие настройки и Default - настройки по умолчанию. Также обратите внимание на параметр LastKnownGood расположенный там же. При загрузке Windows XP вы можете выбрать пункт меню "Загрузка последней удачной конфигурации", а действительный номер набора загружаемых настроек будет определён именно этим параметром реестра. Все значения ключей реестра относятся к определённому типу.
Следующая таблица содержит типы данных, используемых в реестре Windows XP:

Тип данных
Краткое описание
REG_BINARY Двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате.
REG_DWORD Целые числа размером в 4 байта. Многие параметры служб и драйверов устройств имеют этот тип и отображаются в двоичном, шестнадцатеричном или десятичном форматах.
REG_EXPAND_SZ Строка данных переменной длины.
REG_MULTI_SZ Многострочный текст. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами.
REG_SZ Текстовая строка фиксированной длины.
REG_FULL_
RESOURCE_DESCRIPTOR
Последовательность вложенных массивов, разработанная для хранения списка ресурсов железа или драйверов.

Хранение реестра.
Элементы реестра хранятся в виде атомарной структуры. Реестр разделяется на составные части, называемые ульями (hives), или кустами. Ульи хранятся на диске в виде файлов. Некоторые ульи, такие, как HKLM\HARDWARE, не сохраняются в файлах, а создаются при каждой загрузке, то есть являются изменяемыми (vola-tile). При запуске системы реестр собирается из ульев в единую древовидную структуру с корневыми разделами. Перечислим ульи реестра и их местоположение на диске (для NT старше версии 4.0).

Улей

Расположение

HKLM\SYSTEM

%SystemRoot%\system32\config\system

HKLM\SAM

%SystemRoot%\system32\config\SAM

HKLM\SECURITY

%SystemRoot%\system32\config\SECURITY

HKLM\SOFTWARE

%SystemRoot%\system32\config\software

HKLM\HARDWARE

Изменяемый улей

HKLM\SYSTEM\Clone

Изменяемый улей

HKU\<SID_пользователя>

%USERPROFILE%\ntuser.dat

HKU\<SID пользователя>Classes

%USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat

HKU\.DEFAULT

%SystemRoot%\system32\config\default

Кроме этих файлов, есть ряд вспомогательных, со следующими расширениями:
• LOG — журнал транзакций, в котором регистрируются все изменения реестра.
• SAV — копии ульев в том виде, в котором они были после завершения текстовой фазы установки. Реестр является настоящей базой данных, поэтому в нем используется технология восстановления, похожая как в NTFS. Уже упомянутые LOG-файлы содержат журнал транзакций, который хранит все изменения. Благодаря этому реализуется атомарность реестра — то есть в данный момент времени в реестре могут быть либо старые значения, либо новые, даже после сбоя. Как видим, в отличие от NTFS, здесь обеспечивается сохранность не только структуры реестра, но и данных. К тому же, реестр поддерживает такие параметры NTFS, как управление избирательным доступом и аудит событий — система безопасности пронизывает всю NT.

ОС Windows XP и приложения помещают информацию в реестр ОС, что хорошо и плохо одновременно. Хорошо - потому что реестр представляет собой общую память для эффективного хранения информации. Плохо - потому что размеры реестра увеличиваются по мере того, как приложения и система сохраняют в системе все новую информацию. По мере этого процесса в реестре появляется огромное количество мусора, который необходимо и нелегко удалить.