Ошибка: Failed to parse the Currency Converter XML document.
$53 205.70


Ошибка: Failed to parse the Currency Converter XML document.
$52 141.13


Ошибка: Failed to parse the Currency Converter XML document.
$1 939.28


Реестр Windows

На смену ini-файлам, имеющим ряд концептуальных ограничений, еще в windows 3.1 было введено понятие реестра — регистрационной базы данных, хранящей различные настройки ОС и приложений. Изначально реестр был предназначен только для хранения сведений об объектах ole (object linking and embedding — связь и внедрение объектов) и сопоставлений приложений расширениям имен файлов, однако позже его структура и границы использования расширились. Реестры разных версий windows имеют различия; это нужно помнить при импорте reg-файлов. В windows 2000 и xp в архитектуру реестра были введены важные новшества, улучшающие функциональность данного компонента ОС. Реестр хранится в бинарном (двоичном) виде, поэтому для ручной работы с ним необходима специальная программа — редактор реестра. В xp это regedit.exe, в других версиях nt ими являются regedit.exe и regedt32.exe, имеющий дополнительные возможности работы с реестром (regedt32.exe есть и в xp, но на самом деле он всего лишь вызывает regedit.exe). Есть и другие программы, в том числе и консольные (reg.exe). Ручным модифицированием параметров реестра мы займемся чуть позже, а сейчас рассмотрим основные группы сведений, хранящихся в этой базе данных.



• Программы установки. Любая грамотно написанная программа под windows должна иметь свой инсталлятор-установщик. Это может быть встроенный в ОС microsoft installer либо любой другой. В любом случае инсталлятор использует реестр для хранения своих настроек, позволяя правильно устанавливать и удалять приложения, не трогая совместно используемые файлы.

• Распознаватель. При каждом запуске компьютера программа ntdetect.com и ядро windows распознает оборудование и сохраняет эту информацию в реестре.

• Ядро ОС. Хранит много сведений в реестре о своей конфигурации, в том числе и данные о порядке загрузки драйверов устройств.

• Диспетчер pnp (plug and play). Абсолютно необходимая вещь для большинства пользователей, которая избавляет их от мук по установке нового оборудования (не всегда, правда:)). Неудивительно, что он хранит свою информацию в реестре.

• Драйверы устройств. Хранят здесь свои параметры.

• Административные средства. Например, такие, как Панель управления, mmc (micro-soft management console) и др.

• Пользовательские профили. Это целая группа параметров, уникальная для каждого пользователя: настройки графической оболочки, сетевых соединений, программ и многое другое.

• Аппаратные профили. Позволяют создавать несколько конфигураций с различным оборудованием (помните мой пример про ноутбук с док-станцией в прошлой статье?).

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

Вот мы и разобрались с предназначением реестра. Теперь обратим свое внимание на логическую структуру реестра. Для лучшего понимания материала рекомендуется запустить regedit.exe, только ничего пока не трогайте:).

Структура реестра
Первая аналогия, которая приходит в голову при взгляде на реестр в regedit.exe, — как похоже на файловую систему! И точно, налицо древовидная структура. Папкам здесь соответствуют ключи (keys) или разделы (ветви), а файлам — параметры ( values). Разделы могут содержать как вложенные разделы (sub keys), так и параметры. На верхнем уровне этой иерархии находятся корневые разделы (root keys). Они перечислены в таблице 1.

Таблица 1. Корневые разделыТип данных Описание
reg_binary Двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате
reg_dword Данные, представленные целым числом (4 байта). Многие параметры служб и драйверов устройств имеют этот тип и отображаются в двоичном, шестнадцатеричном или десятичном форматах
reg_expand_sz Строка unicode переменной длины. Этот тип данных включает переменные, обрабатываемые программой или службой
reg_multi_sz Многострочный текст unicode. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами
reg_sz Текстовая unicode строка фиксированной длины
reg_dword_little_ endian 32-разрядное число в формате “остроконечников” — младший байт хранится первым в памяти. Эквивалент reg_dword
reg_dword_big_ endian 32-разрядное число в формате “тупоконечников” — старший байт хранится первым в памяти
reg_link Символическая ссылка unicode. Только для внутреннего использования (некоторые корневые разделы являются такой ссылкой на другие подразделы)
reg_none Параметр не имеет определенного типа данных
reg_qword 64-разрядное число
reg_qword_little_ endian 64-разрядное число в формате “остроконечников”. Эквивалент reg_qword
reg_resource_list Список аппаратных ресурсов. Используется только в разделе hklmhardware
reg_full_resource_de scriptor Дескриптор (описатель) аппаратного ресурса. Применяется только в hklmhardware.
reg_resource_requirements_list Список необходимых аппаратных ресурсов. Используется только в hklmhardware.

Типы данных
Все параметры реестра имеют фиксированный тип. В таблице 2 я приведу полный список используемых типов. Не все из них используются в разных версиях nt — reg_qword явно предназначен для 64-битной версии xp. Следует учесть, что ряд типов используется только системой в некоторых разделах, и создать свой параметр такого типа с помощью редактора реестра не получится.

Таблица 2. Типы параметров
Тип данных
Описание

reg_binary
Двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате

reg_dword
Данные, представленные целым числом (4 байта). Многие параметры служб и драйверов устройств имеют этот тип и отображаются в двоичном, шестнадцатеричном или десятичном форматах

reg_expand_sz
Строка unicode переменной длины. Этот тип данных включает переменные, обрабатываемые программой или службой

reg_multi_sz
Многострочный текст unicode. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами

reg_sz
Текстовая unicode строка фиксированной длины

reg_dword_little_ endian
32-разрядное число в формате “остроконечников” — младший байт хранится первым в памяти. Эквивалент reg_dword

reg_dword_big_ endian
32-разрядное число в формате “тупоконечников” — старший байт хранится первым в памяти

reg_link
Символическая ссылка unicode. Только для внутреннего использования (некоторые корневые разделы являются такой ссылкой на другие подразделы)

reg_none
Параметр не имеет определенного типа данных

reg_qword
64-разрядное число

reg_qword_little_ endian
64-разрядное число в формате “остроконечников”. Эквивалент reg_qword

reg_resource_list
Список аппаратных ресурсов. Используется только в разделе hklmhardware

reg_full_resource_de scriptor
Дескриптор (описатель) аппаратного ресурса. Применяется только в hklmhardware.

reg_resource_requirements_list
Список необходимых аппаратных ресурсов. Используется только в hklmhardware.

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

Таблица 3. Ульи реестра
Улей
Расположение

hklmsystem
%systemroot%system32configsystem

hklmsam
%systemroot%system32configsam

hklmsecurity
%systemroot%system32configsecurity

hklmsoftware
%systemroot%system32configsoftware

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

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

hku
%userprofile%tuser.dat

hku _classes
%userprofile%local settingsapplication datamicrosoftwindowsusrclass.dat

hku.default
%systemroot%system32configdefault

Кроме этих файлов, есть ряд вспомогательных, со следующими расширениями:

• alt — резервная копия улья hklmsystem (отсутствует в xp).
• log — журнал транзакций, в котором регистрируются все изменения реестра.
• sav — копии ульев в том виде, в котором они были после завершения текстовой фазы установки.

Дополнительные сведения
Реестр является настоящей базой данных, поэтому в нем используется технология восстановления, похожая на оную в ntfs. Уже упомянутые log-файлы содержат журнал транзакций, который хранит все изменения. Благодаря этому реализуется атомарность реестра — то есть в данный момент времени в реестре могут быть либо старые значения, либо новые, даже после сбоя. Как видим, в отличие от ntfs, здесь обеспечивается сохранность не только структуры реестра, но и данных. К тому же, реестр поддерживает такие фишки ntfs, как управление избирательным доступом и аудит событий — система безопасности пронизывает всю nt снизу доверху. Да, эти функции доступны только из regedt32.exe или regedit.exe для xp. А еще весь реестр или его отдельные части можно экспортировать в текстовые reg-файлы (unicode для windows 2000 и старше), редактировать их в блокноте, а затем экспортировать обратно. Во многих редакторах реестра можно подключать любые доступные ульи реестра, в том числе и на удаленных машинах (при соответствующих полномочиях). Есть возможность делать резервные копии с помощью программы ntbackup. И многое другое. Ну, а на сегодня наш маленький ликбез окончен.

До новых встреч!

 

Интересное

Дата по русски
Скрипт, который мы сейчас рассмотрим, позволяет вывести на экранпосетителя дату в формате русского языка. Сразу предупреждаю,что реализация алгоритма этой задачи не самая лучшая.Но –...
Подробнее...
Войны браузеров
Браузер – это, пожалуй, наиболее часто используемая программа на домашнем ПК – не считая, разумеется, операционной системы. Неудивительно поэтому, что рынок браузеров весьма динамичен. Сегодня из...
Подробнее...
Удаление неиспользуемых...
Известно ли вам, что до тех пор, пока не удалить драйвер в Windows XP, он будет впустую расходовать системные ресурсы? Ниже дана пошаговая инструкция, которая поможет увидеть и удалить ненужные...
Подробнее...
Почему не нужно чистить реестр
Давным-давно, в незапамятные времена (еще до изобретения операционной системы Microsoft Windows 95), компьютеры Windows и программы, разработанные для них, включали в свой состав файлы...
Подробнее...
Чистка Windows
Причин подобного поведения «форточек» можно привести массу — от всевозможного программного мусора, забивающегося в укромные уголки Windows и сжирающего немало ресурсов компьютера, до инфицирования...
Подробнее...
Dr.Web защищает от опасных...
Как известно, уже в течение длительного периода происходит спам-рассылка известного «штормового червя», маскирующегося под поздравительную открытку и детектируемого антивирусом Dr.Web как...
Подробнее...
Поэтапная оптимизация сайта
Термин «оптимизация сайтов» в последнее время на слуху у многих компаний, предоставляющих те или иные услуги в глобальной сети. Но это и не удивительно, учитывая огромную выгоду, которую можно...
Подробнее...
Четыре правила...
Правило первое Научить дизайну, вот так, путем написания нескольких заметок, нельзя. Если по HTML-верстке или азам проектирования веб-сайта еще можно написать пошаговую инструкцию, то с дизайном...
Подробнее...
Корпоративный интернет-счётчик
В данной статье рассказывается как создать интернет-счётчик для корпоративного порталаСчётчик должен вести подробную информацию о посетителях: адрес откуда пришёл посетитель, адрес страницы,...
Подробнее...
Кто и как выманивает...
Пару лет назад стандартный набор распространенных интернет-угроз пополнился еще одним видом криминала. В прессе все чаще стало мелькать слово «фишинг» (phishing), под которым поначалу...
Подробнее...