СТРУКТУРА РЕЕСТРА
Системный реестр – регистрационная база данных, хранящая различные настройки ОС и приложений. В более ранних версиях Windows все настройки (настройки конфигурации) сохранялись в информационных файлах (INI-файлах), точно так же как и в большинстве Windows-приложений. Однако Windows изменилась и теперь эти файлы не используются операционной системой, т.к. существует реестр, который представляет всю иерархию, необходимую для управления такой сложной операционной системой (рис.1).
Рис.1. Реестр использует многие компоненты Windows
Изначально реестр был предназначен только для хранения сведений об объектах OLE (Object Linking and Embedding — связь и внедрение объектов) и сопоставлений приложений расширениям имен файлов, однако позже его структура и границы использования расширились.
Достоинства реестра.
1. Системный реестр обеспечивает также работу в сети и дает отдельным пользователям возможность сохранять выбранные ими глобальные параметры, благодаря чему в приложениях появляется возможность специальной настройки пользовательского интерфейса для конкретного пользователя. Данные системного реестра могут храниться централизовано и импортироваться в системный реестр рабочей станции во время регистрации пользователя в системе. Совершенно аналогично, системный администратор имеет удаленный доступ к системным реестрам рабочих станций для разрешения возникших конфликтов.
2. Используя системный реестр, можно связать определенные действия командного процессора (в частности, open и print) с соответствующими типами документов. А когда пользователь выполняет щелчок правой кнопкой мыши на пиктограмме документа в проводнике Windows Explorer, то в этом случае появляется контекстное меню, в котором перечислены определенные программные действия.
3. Возможность OLE-регистрации, поддержки локализованных версий приложений, применение сетевых протоколов и связывания, а также поддержка автоматической настройки приложений.
Формат отображения данных в системном реестре весьма похож на то, как папки и документы отображаются в проводнике Windows Explorer. Отчасти это связано с тем, что структура системного реестра подобна структуре каталогов (рис.2).
Реестр хранится в бинарном (двоичном) виде, поэтому для ручной работы с ним необходима специальная программа — редактор системного реестра (regedit). Один из способов исследования содержимого системного реестра связан с применением программы REGEDIT, утилиты компании Microsoft, которая обеспечивает возможность изменения содержимого системного реестра, а также соединения с системными реестрами других компьютеров.
|
Рис.2. Структура реестра |
Если прибегнуть к терминологии, используемой в системном реестре, то ЭКВИВАЛЕНТОМ ПАПКИ ИЛИ КАТАЛОГА здесь является КЛЮЧ или РАЗДЕЛ (KEY), а ДОКУМЕНТУ ИЛИ ФАЙЛУ соответствуют ПАРАМЕТР (VALUE). Разделы могут содержать как вложенные разделы (sub keys), так и параметры (рис.3). На верхнем уровне этой иерархии находятся корневые разделы (root keys).
|
Рис.3 Подразделы и параметры подобны папкам и файлам |
Каждый ключ может содержать как ключи более низкого уровня, так и конечные элементы данных. При необходимости приложение открывает ключ и использует данные, сохраненные в нем. Ключи, которые содержатся в других ключах, называются подключами данного ключа.
На рис.4 показана взаимосвязь между ключами и значениями в системном реестре.
На рис.5 показан верхний уровень системного реестра Windows, а в табл.1 перечислены корневые ветви системного реестра, а также приведено их назначение и взаимосвязь с другими ветвями.
Таблица 1 Корневые разделы системного реестра
№ п/п | Раздел (аббревиатуры) | Описание |
HKEY_CLASSES_ROOT (HKCR) | Этот раздел содержит определения типов документов, связей с файлами и интерфейса командного процессора.В Windows NT/9x этот ключ является составной частью ключа HKLM.В Windows XP информация о регистрации класса хранится в обоих ключах HKEY_LOCAL_MACHINE и HKCU. При этом ключ HKCR объединяет содержимое указанных ключей в единой папке | |
HKEY_CURRENT_USER (HKCU) | С помощью этого ключа осуществляется доступ к пользовательским конфигурациям, программному обеспечению. Устанавливает связь с ключом HKEY_USERS, который соответствует параметрам настройки текущего пользователя. Для стандартных пользователей, у которых отсутсвуют особые параметры настройки используются параметры настройки пользователя типа .Default. | |
HKEY_LOCAL_MACHINE (HKLM) | Хранит аппаратные конфигурации, сетевые протоколы и классы программного обеспечения | |
HKEY_USERS (HKU) | Используется для хранения выбранных пользователями глобальных параметров, а также параметров настройки рабочего стола. При этом выбранные пользователями глобальные параметры должны хранится в подключе Software подключа каждого пользователя, содержащегося в ключе HKEY_USERS. | |
HKEY_CURRENT_CONFIG (HKCC) | Этот ключ устанавливает связь с ключом отображения, входящим в состав подключа выбранной конфигурации config, содержащегося в ключе HKLM | |
HKEY_DYN_DATA (HKDD) | Используется только в Windows 9x. Здесь хранятся динамические данные о состоянии различных устройств, установленных на компьютере пользователя. | |
HKEY_PERFORMANCE_DATA (HKPD) | Используется только в Windows 2000. Аналогичен ключу HKEY_DYN_DATA, который используется в Windows 9x. |
Рассмотрим соответствующие разделы более детально.
1. HKEY_CLASSES_ROOT
Приложение Windows должно использовать системный реестр для хранения в разделе HKEY_CLASSES_ROOT данных следующих классов:
• Типы документов. Это различные типы документов, которыми манипулирует конкретное приложение.
• Идентификатор класс. OLE. Это класс OLE, который определяется конкретным приложением. В процессе установки данного приложения он должен быть зарегистрирован с помощью OLE.
• Имена команд OLE. Это протокол OLE. Каждое имя команды описывает действие, которое может выполнить объект. Например, MPLAYER позволяет воспроизводить звуковой файл формата .WAV.
• Протоколы командного процессора. Это действия, которые могут быть вызваны командным процессором. Возможные варианты выбора действий отображаются в контекстных меню, выводимых на экран при выполнении пользователем щелчка правой кнопкой мыши на пиктограмме документа.
• Пиктограмма, которая показывается для отображения документа. В этом случае должны быть предоставлены две пиктограммы — большая и малая. А использоваться будет та из них, которой пользователь отдаст наибольшее предпочтение.
При рассмотрении этой ветви следует особое внимание обратить на ключи командного процессора, содержащие три следующих подключа:
- open– содержит команду, используемую для открытия (или запуска) документа;
- print– содержит команду, которая отправляет документ на печать;
- printto – содержит специальный интерфейс, который обеспечивает возможность передачи документа на принтер путем перетаскивания.
У каждого из этих подключей имеется подключ под названием command. В качестве ключа командного процессора может быть зарегистрировано любое число имен команд. Эти имена команд отображаются в контекстом меню, которое появляется всякий раз, когда пользователь выполняет щелчок правой кнопкой мыши на пиктограмме документа.
2. HKEY_CURRENT_USER
Раздел HKEY_CURRENT_USER содержит множество настроек программного обеспечения, в которых хранится информация о конфигурации рабочего стола и клавиатуры. Кроме того, в этом разделе есть информация о параметрах меню Пуск. Здесь - все настройки, специфичные для пользователя.
Раздел HKEY_CURRENT_USER полностью посвящен настройкам текущего пользователя, т.е. того пользователя, который в настоящий момент зарегистрирован в системе. Это отличается от пользовательской конфигурационной информации, которая хранится в других разделах реестра. Информация в этом разделе является динамической; информация в других разделах, которая относится к пользовательским настройкам - статическая. Реестр копирует содержимое одного из подразделов из HKEY_USERS в данный раздел и по окончании работы обновляет раздел HKEY_USERS.
Этот корневой раздел является ссылкой на подраздел HKU\SID, где SID – идентификатор безопасности пользователя, вошедшего в систему, воспользовавшись диалоговым окном Вход в Windows (LogOntoWindows). Он никогда не связывается с любым подразделов раздела HKEY_USERS, созданных Windows для поддержания вторичного доступа. Необходимо не путать подраздел HKU\SID с подразделом HKU\SID_Classes, содержащий соответствия файлов и классы COM для определённого пользователя.
Ниже приведено краткое описание подразделов корневого раздела HKEY_CURRENT_USER (табл.2).
Таблица 2 Подразделы корневого раздела HKEY_CURRENT_USER
AppEvents | Назначает звуковое сопровождение различным событиям, таким как вход в систему, раскрытие меню или закрытие окна. Звуковое сопровождение выбирается пользователями с помощью аплета Звук и мультимедиа (Sound) окна Панель управления. |
Console | Содержит свойства окна консоли, например окна командной строки MS DOS. Пользователи настраивают эти свойства, выбирая команду Свойства (Properties) из контекстного меню окна. |
ControlPanel | Содержит параметры, изменяемые пользователями в окне Панель управления (Control Panel). В качестве примера можно привести параметры электропитания, оформления рабочего стола и специальных возможностей. Не все параметры этого подраздела настраиваются в окне Панель управления (Control Panel) и не все параметры окна Панель управления (Control Panel) содержатся в этом подразделе. |
Environment | Содержит переменные среды, настроенные пользователями с помощью аплета Система (System) окна Панель управления (Control Panel). |
Identities | Содержит подразделы для всех удостоверений пользователей, созданных в Microsoft Outlook Express. Удостоверения упрощают совместное использование одного почтового клиента, так как каждому из них могут назначаться отдельные папки для хранения почты, адресная книга и другие настройки. Пользователи могут изменять эти настройки, выбирая команду Удостоверения (Identifies) из меню Файл (File) Microsoft Outlook Express. |
KeyboardLayout | Определяет текущую раскладку клавиатуры. Пользователи изменяют параметры раскладки клавиатуры с помощью аплета Клавиатура (Keyboard) окна Панель управления (Control Panel). |
Network | Содержит подразделы для всех сетевых соединений. Таким образом, здесь присутствуют также и подключённые сетевые диски. Для создания сетевых соединений пользователи выбирают команду Подключить сетевой диск (Map Network Drive) из контекстного меню значка Мой компьютер (My Computer). |
Printers | Здесь содержатся ведения о принтерах, с которыми может работать пользователь. Пользователи настраивают эти параметры с помощью аплета Принтеры (Printers) окна Панель управления (Control Panel). |
RemoteAccess | Определяет параметры удалённого доступа к сети, которые настраиваются пользователями на вкладке Подключение (Connections) диалогового окна Свойства: Интернет (Internet Options), которое открывается в результате щелчка на значке Свойства обозревателя (Internet Options) в окне Панель управления (Control Panel). |
Software | Содержит пользовательские настройки для каждого приложения, включая собственно и Windows. За исключением нескольких приложений от Microsoft, не следующих собственным правилам этой компании, многие приложения сохраняют свои настройки в подразделе Vendor/Application, где Vendor – имя компании-производителя приложения, а Application – имя этого приложения. Эти производители также следуют такому правилу, как добавление дополнительного подраздела Version, что позволяет каждой версии приложения отдельно сохранять собственные настройки. |
UNICODEProgramGroups | Здесь содержатся настройки для групп программ, унаследованные от ранних версий Windows NT, использующих программу Диспетчер программ (Program Manager). При чистой установке Windows XP этот подраздел всегда пустой. |
VolatileEnvironment | Здесь содержатся переменные среды, используемые в процессе входа в систему. |
Windows 3.1MigrationStatus | Здесь представлены сведения о состоянии миграции программных групп и информационных файлов после обновления Windows 3.1. Этот ключ всегда присутствует, но не имеет важного значения, так как компания Microsoft не поддерживает обновление Windows 3.1 до Windows 2000. |
3. HKEY_LOCAL_MACHINE