Администраторы систем встречаются со множеством проблем при управлении аппаратными средствами, операционными системами и приложениями на персональных компьютерах. Использование базы данных Registry, называемой также реестром, значительно снижает трудоемкость организации надежного и унифицированного хранения данных о конфигурации системы в иерархическом виде.
Системный реестр Windows представляет собой централизованную базу данных параметров настройки системы и работающих в ней приложений. Реестр пришел на смену всевозможным INI-файлам – файлам конфигурации Windows, для снятия неудобств и ограничений, связанных с их использованием.
Практически любой процесс, работающий в ОС Windows, использует системный реестр в своих целях. Реестр можно представить как банк данных, в котором хранится всевозможная информация, необходимая для программ, служб, драйверов. Высокоуровневые службы, обеспечивающие работоспособность ОС, используют реестр с самого начала загрузки Windows и до завершения работы. Системный реестр также используется и драйверами устройств для загрузки и инициализации.
Реестр становится необходимым уже на самых ранних этапах загрузки ОС. Большинство проблем с загрузкой Windows, как правило, является следствием неправильной эксплуатации системного реестра. При этом в проблеме может быть виноват как пользователь, который своими некорректными действиями нарушил работоспособность реестра, так и приложение, которое внесло в реестр неверные данные, в результате чего система не может нормально функционировать.
Основу реестра Windows составляют корневые разделы. Каждый корневой раздел содержит вложенные подразделы и параметры – элементы данных реестра.
Все имена корневых разделов начинаются со строки HKEY_, что указывает разработчикам ПО на то, что это – дескриптор, который можно использоваться программой. Дескриптор – это значение, используемое для уникального описания ресурса, к которому программа может получить доступ.
Реестр структурирован как набор четырех поддеревьев ключей, которые содержат данные о компьютере и пользователях (рисунок 3.1). Информация о компьютере включает сведения об аппаратных средствах и программном обеспечении, установленном на компьютере.
Поддерево HKEY_LOCAL_MACHINE содержит информацию относительно локальной компьютерной системы, включая аппаратные средства и данные операционной системы, такие как тип шины, системная память, драйверы, устройства и данные управления запуском.
Поддерево HKEY_CLASSIS_ROOT содержит данные о связи и внедрении объектов (OLE), данные ассоциации файловых классов.
Поддерево HKEY_CURRENT_USER содержит профиль пользователя для текущего зарегистрированного пользователя, включая системные переменные, персональные группы программ, установки рабочего стола (desktop), сетевые соединения, принтеры и приложения.
Поддерево HKEY_USERS - содержит профили всех пользователей компьютера, а также профиль по умолчанию. Пользователи, обращающиеся к серверу дистанционно, в этом ключе на сервере не имеют профилей, их профили загружаются в реестр на их собственных компьютерах.
Рис. 3.1. Структура реестра
Каждый индивидуальный ключ в реестре Windows NT может содержать элементы данных, называемые значимыми элементами (value entries) и дополнительные подключи (subkeys). В структуре реестра ключи аналогичны каталогам, а значимые элементы - файлам. Значимый элемент имеет три части: имя значения, тип данных и собственно значение. В этом порядке части значимого элемента и отображаются на экране, например:
Реестр разделен на части, называемые ульями (hive), названные так разработчиками по аналогии с ячеистой структурой пчелиного улья. Улей является дискретным набором ключей, под-ключей и значений, которые находятся на верхнем уровне иерархии реестра. Улей хранится в файле с именем без расширения и файле с тем же именем, но с расширением .LOG, которые находятся в каталоге %SystemRoot%\sys-tem32\config.
Данные реестра, как уже было сказано, хранятся в виде параметров, расположенных в соответствующих разделах реестра. Каждый параметр характеризуется: именем, типом данных и значением. Различают следующие основные типы данных в реестре Windows 2000:
Тип данных
Описание
REG_BINARY
Необработанные двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате.
REG_DWORD
Данные представлены в виде значения, длина которого составляет 4 байта (32-разрядное целое). Этот тип данных используется для хранения параметров драйверов устройств и служб. Значение отображается в окне редактора реестра в двоичном, шестнадцатеричном или десятичном формате.
REG_EXPAND_SZ
Строка данных переменной длины. Этот тип данных включает переменные, обрабатываемые при использовании данных программой или службой.
REG_MULTI_SZ
Многострочный текст. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами.