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


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


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


Реестр 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. И многое другое. Ну, а на сегодня наш маленький ликбез окончен.

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

 

Интересное

Применение терминала сбора...
Терминал сбора данных - функциональное устройство, предназначенное для управления товарооборотом. К потребителю он попадает вместе со встроенным сканером, позволяющим распознавать многочисленные...
Подробнее...
Служба Доменных Имен
Служба Доменных Имен предназначена для того, чтобы машины, работающие в Internet, могли по доменному имени узнать IP-адрес нужной им машины, а также некоторую другую информацию; а по IP-номеру...
Подробнее...
10 способов...
Некоторые люди утверждают, что хорошо работают в высоко-стрессовом окружении. Я не один из них. Когда я расслаблен, моя производительность наиболее высока. Если передо мной стоят задачи, которые...
Подробнее...
Звук в Linux
Под звуковой подсистемой понимается инфраструктура операционной системы, отвечающая за работу установленных в компьютере устройств для обработки звуки, а именно звуковых карт, а также различных...
Подробнее...
Windows нужно поучиться у...
С каждым новым выпуском Windows, в систему добавляются новые возможности, новые фрагменты кода и увеличивается её размер. Это следствие, вытекающее из закона Мура, которое использует Гейтс при...
Подробнее...
Примеры подключения...
Данный материал содержит примеры создания строк ado connection для различных типов часто используемых Баз Данных, например: odbc dsn, odbc dsn-less, ole db provider, ms remote, oracle, excel,...
Подробнее...
Загрузка FreeBSD 5.0 на...
Введение За последние годы порт FreeBSD-sparc64 привлек значительное внимание разработчиков. За годы было сделано многое; тем не менее, еще много предстоит сделать в области поддержки устройств и...
Подробнее...
Раскрутка это еще и заработок
Странно. Но многие вебмастера разделяют понятия раскрутка и заработок. Т.е. все понимают, что если ресурс будет раскручен, с него можно будет и деньги получить.Но вот, к сожалению, почему-то почти...
Подробнее...
Управление правами на...
Управление правами на доступ к данным (Information Rights Management,IRM) представляет собой стойкую технологию защиты информации на уровнефайлов. Она помогает защищать представленную в цифровом...
Подробнее...
chmod - изменение режима...
Все чаще обнаруживается, что некоторые начинающие сайтостроители, увлеченные скриптованием (на perl/cgi, php и т.д.) не знают, что такое chmod и как его использовать. В этом кратком руководстве вы...
Подробнее...