Какой файл отвечает за хранение пользовательских настроек в реестре windows

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

Для начала определимся с терминологией.  Реестр — это прежде всего основа работы операционной системы, огромная база данных настроек, хранящихся в папках %SystemRoot%System32Config и файле пользовательских профилей (Ntuser.dat). Без реестра Windows была бы просто набором программ, неспособных выполнить даже простейшие функции ОС.

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

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

Системный реестр заменяет собой большинство текстовых ini-файлов, которые использовались в Windows 3.x, а также файлы конфигурации MS-DOS (например, Autoexec.bat и Config.sys).

Версии реестра для разных версий операционных систем семейства Windows имеют определенные различия.

Во время запуска операционной системы происходит до тысячи обращений к реестру, а во время работы на ПК в течение одного сеанса работы – до 10 тысяч!
Отдельные компоненты реестра хранятся в оперативной памяти ПК в течение всего сеанса работы.

Реестр имеет иерархическую древовидную структуру, состоящую из разделов, подразделов и ключей (параметров).

Разобраться в реестре — задание не из легких, но это необходимо, если Вы желаете узнать ОС полностью, в большинстве случаев мало кто даже подозревает о существовании реестра. Для работы с реестром в ОС Windows встроена простая и понятная утилита Regedit.exe. Для запуска утилиты Редактор реестра: нажмите Пуск –> Выполнить… –> в поле Открыть: введите regedit –> OK.

Разделы и подразделы — это папки в левом окне regedit. Ключ реестра или параметр — это переменная, которой присвоено определённое значение, это то, что мы видим в правом окне regedit.

Куст (основной раздел, стандартный раздел, в английской документации — улей, от англ. «hive») — это раздел реестра, отображаемый как файл на жестком диске. Куст является набором разделов, подчиненных разделов и параметров и имеет корни на верхнем уровне иерархии реестра. По умолчанию большинство файлов кустов (Default, SAM, Security и System) сохраняются в папке %SystemRoot%System32Config. Папка %SystemRoot%Profiles содержит профили (настройки) для каждого пользователя компьютера. Поскольку куст представляет собой файл, его можно перемещать из одной системы в другую. Для редактирования этого файла необходимо использовать редактор реестра.

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

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

  1. HKEY_CURRENT_USER (HKCU)
    Данный раздел является корневым для данных настройки пользователя, вошедшего в систему в настоящий момент. Здесь хранятся папки пользователя, цвета экрана и настройки панели управления. Эти данные называются профилем пользователя.
  2. HKEY_USERS (HKU)
    Данный раздел содержит все профили пользователей компьютера. HKEY_CURRENT_USER является подразделом HKEY_USERS. В него данные помещаются при каждом входе («логине») пользователя.
  3. HKEY_LOCAL_MACHINE (HKLM)
    Раздел содержит данные настройки, относящиеся к данному компьютеру (для всех пользователей).
  4. HKEY_CLASSES_ROOT (HKLM)
    Данный раздел является подразделом HKEY_LOCAL_MACHINESoftware. Хранящиеся здесь сведения обеспечивают открытие необходимой программы при открытии файла с помощью проводника. По сути, этот подраздел привязывает используемые программами расширения файлов, переменные, значения к самим программам за счет регистрации типов и классов.
  5. HKEY_CURRENT_CONFIG (HKCC)
    Данный раздел содержит сведения о профиле оборудования, используемом локальным компьютером при запуске системы

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

Три части параметра реестра всегда располагаются в определенном порядке: Имя, Тип данных, значение ([RegistrySizeLimit] [REG_DWORD] [0x8000000]).

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

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

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

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

REG_SZ 
Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных.

DESCRIPTOR 
Последовательность вложенных массивов, разработанная для хранения списка ресурсов аппаратного компонента или драйвера.

Хранение реестра

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

  • HKLMSYSTEM 
    %SystemRoot%system32configsystem
  • HKLMSAM 
    %SystemRoot%system32configSAM
  • HKLMSECURITY 
    %SystemRoot%system32configSECURITY
  • HKLMSOFTWARE 
    %SystemRoot%system32configsoftware
  • HKLMHARDWARE 
    Изменяемый улей
  • HKLMSYSTEMClone 
    Изменяемый улей
  • HKU<SID_пользователя> 
    %USERPROFILE%ntuser.dat
  • HKU<SID_пользователя>_Classes 
    %USERPROFILE%Local SettingsApplication DataMicrosoftWindowsUsrClass.dat
  • HKU.DEFAULT 
    %SystemRoot%system32configdefault

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

  • LOG — журнал транзакций, в котором регистрируются все изменения реестра.
  • SAV — копии ульев в том виде, в котором они были после завершения текстовой фазы установки.

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

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

Многие программы не только хранят данные о своих настройках в реестре, но и данные о их регистрации, особенно это касается пробных («триальных») версий, которые истечение пробного срока проверяют через реестр. При установке программ происходит создание соответствующих записей в реестре. При каждом запуске программ, прописанных в реестре, происходит обращение к соответствующим записям в реестре, проверка их значений. При работе с программами также появляются новые записи в реестре. Если же мы устанавливаем новое устройство, в реестре будет отмечено, где находится его драйвер и т.д. Как не сложно догадаться, со временем размер реестра все время растет, а время доступа к нему увеличивается. По мере этого процесса в реестре появляется огромное количество мусора, который необходимо и нелегко удалить.

При удалении многие программы оставляют за собой недействительные более ключи, неверные ссылки. От корректности данных реестра зависит эффективность работы как программного обеспечения (операционной системы и прикладных программ), так и аппаратной части ПК. С помощью реестра можно заставить ПК или работать с максимально возможным быстродействием, или «тормозить» и «глючить».

При серьезном повреждении реестра операционную систему загрузить невозможно. Поэтому вирусы зачастую стараются испортить реестр или заблокировать доступ к Реестру пользователя, чтобы затруднить обнаружение и удаление вируса из автозагрузки. Серьезные разрушения файлов реестра или вообще их потеря (при выходе из строя винчестера) вызовет при загрузке компьютера так называемый BSOD (Blue Screen Of Death или синий экран смерти), который указывает на то, что работа Windows далее невозможна и ошибка настолько серьезна, что Windows не может решить возникшую проблему своими средствами. В таких случаях реестр приходится восстанавливать из резервных копий, созданных либо Windows в процессе работы, либо вручную при резервном копировании. Если резервная копия реестра слишком стара, то восстановление такой копии приведет к неработоспособности многих программ, которые устанавливались после создания копии реестра, притом, что файлы самой программы будут присутствовать на жестком диске. Как правило, восстановление реестра при серьезном сбое даже из старой архивной копии сэкономит гораздо больше времени, чем переустановка Windows и всех программ при отсутствии резервной копии реестра вообще.

Утилиты для работы с реестром

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

Продолжение статьи

[Посещений: 916, из них сегодня: 1]

Реестр Windows (англ. Windows Registry), или системный реестр — иерархически построенная база данных параметров и настроек в большинстве операционных систем семейства Microsoft Windows [2].

В реестре хранятся данные, которые необходимы для правильного функционирования Windows. К ним относятся профили всех пользователей, сведения об установленном программном обеспечении и типах документов, которые могут быть созданы каждой программой, информация о свойствах папок и значках приложений, а также установленном оборудовании и используемых портах [1].

Открытие реестра¶

Поскольку файлов в реестре несколько, его нельзя открыть, например, в текстовом редакторе и внести какие-либо коррективы. Для работы с ним требуется специальная программа – редактор реестра, который является встроенным компонентом операционной системы Windows и вызывается путем ввода команды Regedit [4].

Существует несколько способов открыть редактор реестра.

Способ №1 – Открытие через утилиту «Выполнить»:

  1. Выбрать Пуск → Выполнить, либо нажать сочетание клавиш Win+R (Win — клавиша, между Ctrl и Alt в нижнем ряду клавиатуры, обычно на ней изображен значок Microsoft Windows win-key;
  2. В открывшимся окне ввести команду regedit;
  3. Нажать клавишу ОК.

Рис. 1 – Открытие через утилиту «Выполнить»

Рис. 1 – Открытие через утилиту «Выполнить»

Способ №2 – Открытие через поиск по меню «Пуск»:

  1. Открыть меню Пуск;
  2. Ввести в строке поиска regedit и запустить найденный файл, который отобразится в верхней части Пуска.

Рис. 2 – Открытие через поиск по меню «Пуск»

Рис. 2 – Открытие через поиск по меню «Пуск»

С другими способами можно ознакомиться в статье Три способа открыть редактор реестра Windows.

Структура реестра¶

Реестр имеет иерархическую структуру, которая напоминает файловую систему жесткого диска – с его каталогами, подкаталогами и файлами. Но называются элементы реестра по-другому: верхний уровень иерархии составляют разделы, каждый из которых может содержать вложенные подразделы, а также параметры. Именно в параметрах хранится основное содержимое реестра, разделы служат лишь для группировки схожих по назначению параметров [4].

Рис. 3 – Редактор реестра

Рис. 3 – Редактор реестра

Далее приведен краткий перечень и краткое описание стандартных разделов реестра. Максимальная длина имени раздела составляет 255 символов.

HKEY_CURRENT_USER

Данный раздел является корневым для данных конфигурации пользователя, вошедшего в систему в настоящий момент. Здесь хранятся папки пользователя, цвета экрана и параметры панели управления. Эти сведения сопоставлены с профилем пользователя. Вместо полного имени раздела иногда используется аббревиатура HKCU.

HKEY_USERS

Данный раздел содержит все активные загруженные профили пользователей компьютера. Раздел HKEY_CURRENT_USER является подразделом раздела HKEY_USERS. Вместо полного имени раздела иногда используется аббревиатура HKU.

HKEY_LOCAL_MACHINE

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

HKEY_CLASSES_ROOT

Является подразделом HKEY_LOCAL_MACHINESoftware. Хранящиеся здесь сведения обеспечивают выполнение необходимой программы при открытии файла с использованием проводника. Вместо полного имени раздела иногда используется аббревиатура HKCR. Начиная с Windows 2000, эти сведения хранятся как в HKEY_LOCAL_MACHINE, так и в HKEY_CURRENT_USER.

Раздел HKEY_LOCAL_MACHINESoftwareClasses содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USERSoftwareClasses, переопределяют принятые по умолчанию и относятся только к текущему пользователю.

Раздел HKEY_CLASSES_ROOT включает в себя данные из обоих источников. Кроме того, раздел HKEY_CLASSES_ROOT предоставляет эти объединенные данные программам, разработанным для более ранних версий Windows. Изменения настроек текущего пользователя выполняются в разделе HKEY_CURRENT_USERSoftwareClasses. Модификация параметров по умолчанию должна производиться в разделе HKEY_LOCAL_MACHINESoftwareClasses. Данные из разделов, добавленных в HKEY_CLASSES_ROOT, будут сохранены системой в разделе HKEY_LOCAL_MACHINESoftwareClasses. Если изменяется параметр в одном из подразделов раздела HKEY_CLASSES_ROOT и такой подраздел уже существует в HKEY_CURRENT_USERSoftwareClasses, то для хранения информации будет использован раздел HKEY_CURRENT_USERSoftwareClasses, а не HKEY_LOCAL_MACHINESoftwareClasses.

HKEY_CURRENT_CONFIG

Данный раздел содержит сведения о профиле оборудования, используемом локальным компьютером при запуске системы.

Примечание

Реестр 64-разрядных версий Windows подразделяется на 32- и 64-разрядные разделы. Большинство 32-разрядных разделов имеют те же имена, что и их аналоги в 64-разрядном разделе, и наоборот. По умолчанию редактор реестра 64-разрядных версий Windows отображает 32-разрядные разделы в следующем узле: HKEY_LOCAL_MACHINESoftwareWOW6432Node

Файлы реестра на жестком диске¶

Основные файлы, отвечающие за формирование реестра хранятся в папке %SystemRoot%System32Config. Обычно это C:WindowsSystem32Config и в зависимости от версии ОС их состав может несколько различаться.

Файл, хранящий личные настройки пользователя, «скрыт» в папке соответствующей учетной записи, например, в C:Documents and SettingsDmitry. Также файлы, отвечающие за пользовательские настройки, могут храниться в:

  • C:Documents and Settings%Username%(Ntuser.dat);
  • C:Documents and Settings%Username%Local SettingsApplication DataMicrosoftWindows (UsrClass.dat).

Еще есть резервные копии файлов реестра, созданные системой, хранятся они в

  • C:WindowsSystem32configRegBack – для Windows 7 и Server 2008;
  • C:Windowsrepair – для XP и Server 2003.

Примечание

По умолчанию операционная система делает резервные копии этих файлов раз в 10 дней с помощью планировщика задач.

Вспомогательные файлы для всех кустов за исключением HKEY_CURRENT_USER хранятся в системах Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003 и Windows Vista в папке %SystemRoot%System32Config.

Вспомогательные файлы для куста HKEY_CURRENT_USER хранятся в папке %SystemRoot%ProfilesИмя_пользователя. Расширения имен файлов в этих папках указывают на тип содержащихся в них данных. Отсутствие расширения также иногда может указывать на тип содержащихся в файле данных.

Примечание

Куст (дерево) реестра (англ. hive) — это группа разделов, подразделов и параметров реестра с набором вспомогательных файлов, содержащих резервные копии этих данных.

Таблица 1 — Соответствие кустов реестра и вспомогательных файлов

Куст реестра Вспомогательные файлы
HKEY_LOCAL_MACHINESAM Sam, Sam.log, Sam.sav
HKEY_LOCAL_MACHINESecurity Security, Security.log, Security.sav
HKEY_LOCAL_MACHINESoftware Software, Software.log, Software.sav
HKEY_LOCAL_MACHINESystem System, System.alt, System.log, System.sav
HKEY_CURRENT_CONFIG System, System.alt, System.log, System.sav, Ntuser.dat, Ntuser.dat.log
HKEY_USERSDEFAULT Default, Default.log, Default.sav

Примечание

Например, кусту HKEY_LOCAL_MACHINESoftware соответствует на жестком диске файл C:WindowsSystem32configSOFTWARE.

Рис. 4 – Файлы реестра на жестком диске

Рис. 4 – Файлы реестра на жестком диске

Реестр Windows (Windows Registry) – это центральная база данных настроек и параметров во всех операционных системах семейства Windows (начиная с Windows 3.1). В нем хранится вся информация об аппаратных средствах, операционной системе и установленных в ней приложениях, а также пользовательские данные и настройки. По аналогии с человеческой анатомией я бы назвал реестр центральной нервной системой компьютера, ведь от настроек реестра напрямую зависит поведение системы в той или иной ситуации.


Реестр не является единым целым, а представляет из себя составную структуру, динамически формирующуюся из различных данных следующим образом:

  • Сначала, при установке ОС, создаются файлы, хранящие данные о начальной конфигурации системы.
  • Затем, в процессе загрузки и входа пользователя в систему формируется некий виртуальный объект Registry. Данные для формирования он берет частично из тех самых файлов, частично из информации, собранной при загрузке Windows.

Этот объект и является тем самым реестром, с которым взаимодействует операционная система и который видим мы.

Основные файлы, отвечающие за формирование реестра

  • system
  • software
  • sam
  • security
  • default
  • components
  • bcd-template

Хранятся они в папке %SystemRoot%System32Config (обычно это C:WindowsSystem32Config) и в зависимости от версии ОС их состав может несколько различаться.

файлы реестра

Также файлы, отвечающие за пользовательские настройки, могут храниться в C:Documents and Settings%Username% (Ntuser.dat) и в C:Documents and Settings%Username%Local SettingsApplication DataMicrosoftWindows (UsrClass.dat).

Еще есть резервные копии файлов реестра, созданные системой, в зависимости от ОС они хранятся в:

C:Windowsrepair — для XP и Server 2003;
C:WindowsSystem32configRegBack — для  Windows 7 Server 2008 и более новых.

По умолчанию операционная система делает резервные копии этих файлов раз в 10 дней с помощью планировщика задач.

Взаимодействие реестра с операционной системой

• При запуске компьютера распознаватель аппаратных средств (hardware recognizer) помещает в реестр список обнаруженных им устройств. Обычно распознавание аппаратных средств осуществляется программой Ntdetect.com и ядром операционной системы Ntoskrnl.exe

• При старте системы ядро системы  извлекает из реестра сведения о загружаемых драйверах устройств и порядке их загрузки. Кроме того, программа Ntoskrnl.exe передает в реестр информацию о себе (напр. номер версии).

• В процессе загрузки системы драйверы устройств обмениваются с реестром параметрами загрузки и конфигурационными данными. Драйвер устройства сообщает об используемых им системных ресурсах, включая аппаратные прерывания (IRQ) и каналы доступа к памяти (DMA), чтобы система могла включить эти данные в реестр. Кстати, реестр позволяет создавать несколько аппаратных профилей. Аппаратный профиль (hardware profile) представляет собой набор инструкций, с помощью которого можно указать операционной системе, драйверы каких устройств должны загружаться при запуске компьютера. По умолчанию системой создается стандартный аппаратный профиль, который содержит информацию обо всех аппаратных средствах, обнаруженных на компьютере.

• При входе пользователя в систему загружаются пользовательские профили (user profiles). Вся информация, относящаяся к конкретному имени пользователя и связанными с ним правами хранится в реестре. Пользовательский профиль определяет индивидуальные параметры настройки системы (разрешение дисплея, параметры сетевых соединений, подключенные устройства и многое другое). Информация о пользовательских профилях также хранится в реестре.

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

• При администрировании системы. Когда пользователь вносит изменения в конфигурацию системы с помощью средств администрирования системы (напр. утилиты Панели управления или оснастки MMC), все изменения сразу отражаются в системном реестре. По сути средства администрирования представляют собой наиболее удобные и безопасные средства модификации реестра. Кстати, к средствам администрирования можно отнести и редактор реестра (regedit.exe), ведь все изменения в систему можно вносить непосредственно правкой реестра.

Структура реестра

Реестр имеет древовидную структуру и состоит из 5 основных разделов, их еще называют ветвями реестра (Registry hives):

HKEY_LOCAL_MACHINE (HKLM) — самый большой раздел реестра. В нем сосредоточены все основные настройки операционной системы, а также аппаратного и программного обеспечения компьютера. Информация, содержащаяся в этом разделе, применяется ко всем пользователям, регистрирующимся в системе.

HKEY_LOCAL_MACHINE

HKEY_ CLASSES_ ROOT (HKCR) — содержит ассоциации между приложениями и типами файлов (по расширениям файлов). Кроме того, в этом разделе находится информация о зарегистрированных типах файлов и объектах COM и ActiveX. Кроме HKEY_ CLASSES_ ROOT эти сведения хранятся также в разделах HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER. Раздел HKEY_LOCAL_MACHINESoftwareClasses содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USERSoftwareClasses, переопределяют принятые по умолчанию и относятся только к текущему пользователю. Раздел HKEY_CLASSES_ROOT включает в себя данные из обоих источников.

HKEY_ CLASSES_ ROOT

HKEY_USERS( HKU) — содержит настройки среды для каждого из загруженных пользовательских профилей, а также для профиля по умолчанию. В HKEY_USERS находится вложенный раздел Default, а также другие подразделы, определяемые идентификатором безопасности (Security ID, SID) каждого пользователя

HKEY_ USERS

HKEY_CURRENT USER (HKCU) — cодержит настройки среды для пользователя, на данный момент зарегистрировавшегося в системе (переменные окружения, настройки рабочего стола, параметры сети, приложений и подключенных устройств).
Этот раздел дублирует информацию в HKEY_USERSuser SID, где user SID — идентификатор безопасности пользователя, зарегистрировавшегося в системе на текущий момент (узнать SID текущего пользователя можно, набрав в командной строке whoami /user) .

HKEY_CURRENT_USER

HKEY_CURRENT_ CONFIG (HKCC) — cодержит настройки для текущего аппаратного профиля. Текущий аппаратный профиль включает в себя наборы изменений, внесенных в стандартную конфигурацию устройств, заданную в подразделах Software и System корневого раздела HKEY LOCAL_MACHINE. В HKEY_CURRENT_CONFIG отражаются только изменения. Кроме того, информация этого раздела находится в HKEY_LOCAL_MACHINESystem CurrentControlSetHardwareProfilesCurrent

HKEY_CURRENT_ CONFIG

Данные в реестре хранятся в виде параметров, расположенных в ключах реестра. Каждый параметр характеризуется именем, типом данных и значением.

Основные типы данных, применяемые в реестре

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

REG_DWORD

REG_SZ — Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных

REG_SZ

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

REG_EXPAND_SZ

REGJMULTI_SZ — Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют этот тип данных. Строки разделены символом NULL

REG_MULTI_SZ

REG_BINARY — Двоичные данные. Большинство аппаратных компонентов используют информацию, которая хранится в виде двоичных данных. Редакторы реестра отображают эту информацию в шестнадцатеричном формате

REG_BINARY

REG_RESOURCE_LIST — Список аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINEHARDWARE

REG_RESOURCE_LIST

Также иногда можно встретить такие типы данных реестра:

REG_RESOUECE_ REQUIREMENTS_LIST — Список необходимых аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINEHARDWARE

REG_FULL_RESOURCE_ DESCRIPTOR — Дескриптор (описатель) аппаратного ресурса. Применяется только в ветви HKEY_LOCAL_MACHINEHARDWARE

REG_LINK — Символическая ссылка Unicode. Этот тип данных интересен тем, что позволяет одному элементу реестра ссылаться на другой ключ или параметр.

REG_QWORD — 64-х разрядное число.

REG_DWORD_ LITTLE_ENDIAN — 32-разрядное число в формате «остроконечников» (little-endian), эквивалент REG_DWORD

REG_DWORD_BIG_ ENDIAN — 32-разрядное число в формате «тупоконечников» (big-endian)

REG_QWORD_LITTLE_ ENDIAN — 64-разрядное число в формате «остроконечников». Эквивалент REG_QWORD

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

Использование редактора реестра с умом

Использование редактора реестраВо многих статьях на сайте remontka.pro я рассказывал, как выполнить то или иное действие с помощью редактора реестра Windows — отключить автозапуск дисков, убрать баннер или программы в автозагрузке.

С помощью правки реестра можно изменить очень многие параметры, оптимизировать работу системы, отключить какие-либо ненужные функции системы и многое другое. В этой статье поговорим об использовании редактора реестра, не ограничиваясь стандартными инструкциями наподобие «найти такой-то раздел, изменить значение». Статья в равной степени подойдет для пользователей Windows 7, 8 и 8.1.

Что такое реестр

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

Главное окно редактора реестра

Реестр состоит из разделов (в редакторе выглядят как папки), параметров (или ключей) и их значений (показываются в правой части редактора реестра).

Запуск редактора реестра

Чтобы запустить редактор реестра, в любой версии Windows (от XP) вы можете нажать клавиши Windows + R и ввести regedit в окно «Выполнить».

Корневые разделы редактора реестра

Впервые запуская редактор в левой части вы увидите корневые разделы, в которых неплохо бы ориентироваться:

  • HKEY_CLASSES_ROOT — данный раздел используются для хранения и управления ассоциациями файлов. Фактически, данный раздел является ссылкой на HKEY_LOCAL_MACHINE/Software/Classes
  • HKEY_CURRENT_USER — содержит параметры для пользователя, под именем которого был осуществлен вход в систему. Здесь же хранятся большинство параметров установленных программ. Является ссылкой на раздел пользователя в HKEY_USERS.
  • HKEY_LOCAL_MACHINE — в данном разделе хранятся настройки ОС и программ в целом, для всех пользователей.
  • HKEY_USERS — хранит настройки для всех пользователей системы.
  • HKEY_CURRENT_CONFIG — содержит параметры всего установленного оборудования.

В инструкциях и руководствах имена разделов часто сокращаются до HK + первые буквы имени, например, вы можете увидеть такую запись: HKLM/Software, что соответствует HKEY_LOCAL_MACHINE/Software.

Где хранятся файлы реестра

Файлы реестра хранятся на системном диске в папке Windows/System32/Config — файлы SAM, SECURITY, SYTEM и SOFTWARE содержат информацию из соответствующих разделов в HKEY_LOCAL_MACHINE.

Файлы реестра Windows

Данные из HKEY_CURRENT_USER хранятся в скрытом файле NTUSER.DAT в папке «Users/Имя_пользователя» на компьютере.

Создание и изменение разделов и параметров реестра

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

Создание разделов

Ключи реестра могут иметь значения различных типов, но чаще всего при правке приходится иметь дело с двумя из них — это строковый параметр REG_SZ (для задания пути к программе, например) и параметр DWORD (например, для включения или отключения какой-либо функции системы).

Избранное в редакторе реестра

Избранное в редакторе реестра Windows

Даже среди тех, кто регулярно пользуется редактором реестра, почти нет тех, кто использует при этом пункт меню «Избранное» редактора. А зря — сюда можно добавить наиболее часто просматриваемые разделы. И в следующий раз, для перехода к ним не копаться в десятках имен разделов.

«Загрузить куст» или правка реестра на компьютере, который не загружается

С помощью пункта меню «Файл» — «Загрузить куст» в редакторе реестра вы можете выполнить загрузку разделов и ключей с другого компьютера или жесткого диска. Наиболее часто встречающийся вариант использования: загрузка с LiveCD на компьютере, который не загружается и исправление ошибок реестра на нем.

Загрузить куст

Примечание: пункт «Загрузить куст» активен только при выборе разделов реестра HKLM и HKEY_USERS.

Экспорт и импорт разделов реестра

Если необходимо, вы можете экспортировать любой раздел реестра, включая подразделы, для этого кликните по нему правой кнопкой мыши и выберите в контекстном меню «Экспортировать». Значения будут сохранены в файле с расширением .reg, который по сути является текстовым файлом и его можно редактировать с помощью любого текстового редактора.

Экспорт разделов реестра

Для импорта значений из такого файла, вы можете просто дважды кликнуть по нему или же выбрать в меню редактора реестра «Файл» — «Импорт». Импорт значений может понадобиться в различных случаях, например, для того, чтобы исправить ассоциации файлов Windows.

Очистка реестра

Многие сторонние программы в числе прочих функций предлагают произвести очистку реестра, что по описанию должно привести к ускорению работы компьютера. Я уже писал статью на эту тему и не рекомендую выполнять подобную очистку. Статья: Программы для очистки реестра — стоит ли их использовать.

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

Дополнительные сведения о редакторе реестра

Некоторые статьи на сайте, которые имеют отношение к редактированию реестра Windows:

  • Редактирование реестра запрещено администратором системы — что делать в этом случае
  • Как удалить программы из автозагрузки с помощью редактора реестра
  • Как убрать стрелки с ярлыков путем правки реестра

Как хранить настройки программ

Примечание. Все упоминаемые в статье модули, функции и т.п. относятся к Delphi.

Нижеприведенный текст являет собой вольное изложение отдельных статей
февральского выпуска Microsoft Platform SDK. Год 2001 от рождества Христова.
При проектировании способов хранения настроек своей программы следует
задаться тремя вопросами:

  • Что хранить?
  • Где хранить?
  • Как хранить?

Что хранить

Поскольку первая часть вопроса нам известна по определению, т.е. хранить мы
будем настройки программы, то перейдем ко второй части вопроса. Ваша
программа устанавливается на КОМПЬЮТЕР а пользуются ей ПОЛЬЗОВАТЕЛИ.
Соответственно все настройки разделяются на две части а то и на все три —
настройки которые относятся к компьютеру в целом, настройки которые
относятся ко всем локальным пользователям, настройки которые относятся к
конкретному пользовател. В зависимости от специфики программы первая и
вторая часть могут быть совмещены или разделены.
Поэтому важно сделать логическое разделение — какие настройки вашей
программы действительно специфичны для самого ПК, какие настройки должны
прилагаться ко всем пользователям, какие должны прилагаться к конкретному
пользователю. Кроме того Мокрософт рекомендует чтобы настройки учитывали
возможную мобильность пользователя, т.е. для пользователя находящегося в
разных местах, возможно потребуется иметь разные наборы настроек.

Где хранить

Вообще в голову приходят три вещи.

  • Хранить настройки в системном реестре.
  • Хранить настройки в каталоге куда установлена программа.
  • Хранить настройки в системном каталоге Windows.
  • Хранить настройка в домашнем каталоге пользователя.

В Windows имеется три места предназначенных для хранения настроек которыми и
следует пользоваться.

  • Системный реестр.
  • Домашний каталог пользователя (точнее один из его подкаталогов).
  • Общий каталог для пользователей.

Прочие мысли о местах хранения настроек должны быть выброшены из голов как
вредные и противоестественные, Microsoft уже за вас все придумала и нефиг
извращаться. Для тех кто не понимает почему, объясняю. На нормальной ОС
(W’NT, W’2K) программа обычно запускается от имени и с правами конкретного
пользователя. Обычно, если этот пользователь не является администратором, он
имеет право изменять содержимое следующих ресурсов:

  • часть реестра HKEY_CURRENT_USER*
  • содержимое своего домашнего каталога.
  • содержимое временного каталога (который как правило находится внутри домашнего).
  • содержимое некого каталога или каталогов специально выделенного для этого администратором.

При нормальном (читайте параноидальном) администрировании системы прочие
места либо доступны только в режиме чтения, либо вообще недоступны. В том
числе и папки Program Files и Windows. Посему любая попытка программы
изменять любые файловые ресурсы окромя вышеуказанных черевата тем что ее
(программу) и его (пользователя) пошлют подальше. Причем далеко не в самой
вежливой форме.
Пример. Adobe Photoshop и его разработчики наивно полагают что им должны быть выданы
эксклюзивные права мусорить своими scratch-файлами в корневых каталогах
дисков, кроме того они полагают что им должна быть выдана в пользование в
режиме полный доступ часть системного реестра.. Временных каталогов,
специально выделенных для подобоного рода занятий, их не устраивает. Как
результат — Photoshop имеет серьезные проблемы с работой под Windows
NT/2000.

Системный реестр

С точки зрения хранения настроек программы системный реестр разделен на две
части. Это ветви HKEY_CURRENT_USER для хранения настроек специфичных для
пользователя, и HKEY_LOCAL_MACHINE для хранения настроек специфичных для
всего ПК и соответственно всех пользователей, работающих с этим ПК.
Рекомендуемая структура ветвей для хранения настроек программы —
HKEY_CURRENT_USERSoftwareCompany NameApplication NameVersion и
соответственно HKEY_LOCAL_MACHINESoftwareCompany NameApplication
NameVersion. Параметры Company Name, Application Name, Version желательно
не хранить в виде hard-coded строк в коде программы а устанавливать в опциях
проекта (ProjectOptionsVersion Info) и доставать впоследствии из ресурса с
помощью той же библиотеки RxLib. Альтернативный путь выбирать данные о
версии программы из ресурсов — использование Windows API
(GetFileVersionInfo, GetFileVersionInfoSize, VerQueryValue).
Программе следует расчитывать на то что доступ к подключам
HKEY_LOCAL_MACHINE разрешен в режиме только для чтения, а доступ к подключам
HKEY_CURRENT_USER допускает чтение, изменение и создание новых подключей и
значений.
Программе следует расчитывать на то что нужных ей ключей может не оказаться
в реестре или значения лежащие в реестре имеют неверный формат или
недопустимые значения. В таком случае, вместо несуществующих или неверных
значений настройки, программа должна использовать значения по умолчанию
которые разработчик может «железно забить в код» или получить с помощью
различных системных функций.
Не следует использовать системный реестр для хранения больших кусков данных.
Вместо этого лучше хранить объемные данные в отдельном файле, а в реестре
запомнить имя этого файла.

Домашний каталог пользователя

Для хранения настроек слишком больших для того чтобы их размещать в реестре
существуют специально выделенные каталоги внутри домашнего каталога
пользователя. Эти каталоги обычно называются «специальными каталогами» и
имеют имена Application Data и Local Settings. Полный путь к ним можно
получить с помошью функций SHGetSpecialFolderPath или SHGetFolderPath.

Общий каталог пользователей

Обычно это каталог «Documents and SettingsAll users». Внутри него имеются
такие-же подкаталоги для хранения настроек и данных программ но относящихся
ко всем пользователям. Полный путь к ним можно также получить с помошью
функций SHGetSpecialFolderPath или SHGetFolderPath.

Как хранить

Системный реестр

Для работы с системным реестром можно использовать функции Registry API
общим числом около 40 штук, а можно использовать классы из Registry.pas —
TRegistry, TRegistryIniFile, TRegIniFile. Особенно следует обратить внимание
на TRegistryIniFile который предоставляет упрощенную модель доступа к
системному реестру очень схожую с моделью работы с INI-файлами.

INI-файлы

Это старый метод хранения настроек программ, но все еще применяющийся
программистами. Настройки хранятся в текстовом файле в виде:

[Section1]
Field1=Value1
Field2=Value2
...
FieldN=ValueN

[Section2]
Field1=Value1
Field2=Value2
...
FieldN=ValueN
...

[SectionN]
Field1=Value1
Field2=Value2
...
FieldN=ValueN

Для доступа к данным содержащимся в INI-файлах существуют классы из модуля
IniFiles — TIniFile, TMemIniFile.
Преимущество использования INI-файлов состоит в том что их можно легко
подредактировать с помощью текстового редактора. Они обычно легче
воспринимаются для прочтения нежели дерево ключей системного реестра.

Бинарные файлы настроек

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

  • Экономится место.
  • Настройку можно спрятать от пользователя (сделать нечитабельной).

Первое глупо потому что информация о настройке занимает обычно немного места
и экономия достигается мизерная. Второе глупо потому что невозможность
просмотра и редактирования настроечных данных простыми средствами
(текстовый редактор) или встроенными (редактор реестра) создает больше
проблем как пользователю так разработчику, нежели пользы (причем весьма
сомнительной) от того что кто-то не сможет прочитать что написано в файле.
Кроме того использование бинарного файла нельзя назвать защитой от
нежелательного просмотра, т.к. любой «продвинутый пользователь» все равно с
помощью редактора бинарных файлов сможет просмотреть и разобраться в
содержимом настройки.

Заключение

Почти вся эта информация была вычерпана из кладезя мудрости под названием
Platform SDK (Software Development Kit), поставляемого в составе сборника
документации MSDN (Microsoft Software Developer Network). Разработчикам
настоятельно рекомендуется приобрести Platform SDK, это снимает огромную
массу вопросов связанную с программированием под Windows.

В данной статье рассмотрены общие сведения о реестре операционной системы Windows.

Реестр Windows (Windows Registry, системный реестр) — это иерархическая (древовидная) база данных, содержащая записи, определяющие параметры и настройки операционных систем Microsoft Windows.

Реестр в том виде, как он выглядит при просмотре редактором реестра, формируется из данных, источниками которых являются файлы реестра и информация об оборудовании, собираемая в процессе загрузки. В описании файлов реестра на английском языке используется термин Hive. В документации от Microsoft этот термин переводится как Куст.

Содержание

  1. Основные файлы, отвечающие за формирование реестра
  2. Структура реестра
  3. Основные типы данных, применяемые в реестре
  4. Взаимодействие реестра с операционной системой

Основные файлы, отвечающие за формирование реестра

Файлы реестра создаются в процессе установки операционной системы и хранятся в папке:

%SystemRoot%\system32\config (обычно C:\windows\system32\config).

Для операционных систем Windows это файлы с именами:

  • system
  • software
  • sam
  • security
  • default
  • components
  • bcd-template

В операционных системах Windows Vista, Windows 7, Windows8, Windows 8.1, Windows 10, файлы реестра располагаются в каталоге \Windows\system32\config и имеют такие же имена, однако в этих операционных системах добавился новый раздел реестра для хранения данных конфигурации загрузки (Boot Configuration Data) с именем BCD00000000.

Файл с данными этого раздела имеет имя bcd и находится в скрытой папке Boot активного раздела (раздела, с которого выполняется загрузка системы).

Обычно, при стандартной установке Windows, создается активный раздел небольшого размера (от 100 до 500 мегабайт в зависимости от операционной системы), который скрыт от пользователя и содержит только служебные данные для загрузки системы – загрузочные записи, менеджер загрузки bootmgr, хранилище конфигурации загрузки BCD, файлы локализации и программы тестирования памяти

Расположение куста bcd зависит от того, как сконфигурирован загрузчик системы при ее установке, и может находиться на том же разделе, где и каталог Windows.

Место расположения файлов реестра в любой версии Windows можно просмотреть с помощью редактора реестра, в разделе:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist

В этом разделе хранится информация о всех кустах, включая пользовательские профили, со ссылками на их расположение в файловой системе Windows.

Структура реестра

Реестр Windows имеет древовидную структуру и состоит из 5 основных разделов реестра:

HKEY_LOCAL_MACHINE (HKLM) — самый большой раздел реестра. В нем сосредоточены все основные настройки операционной системы, а также аппаратного и программного обеспечения компьютера. Информация, содержащаяся в этом разделе, применяется ко всем пользователям, регистрирующимся в системе.

HKEY_ CLASSES_ ROOT (HKCR) — содержит ассоциации между приложениями и типами файлов (по расширениям файлов). Кроме того, в этом разделе находится информация о зарегистрированных типах файлов и объектах COM и ActiveX. Кроме HKEY_ CLASSES_ ROOT эти сведения хранятся также в разделах HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER.

Раздел HKEY_LOCAL_MACHINE\Software\Classes содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USER\Software\Classes, переопределяют принятые по умолчанию и относятся только к текущему пользователю. Раздел HKEY_CLASSES_ROOT включает в себя данные из обоих источников.

HKEY_USERS (HKU) — содержит настройки среды для каждого из загруженных пользовательских профилей, а также для профиля по умолчанию. В HKEY_USERS находится вложенный раздел \Default, а также другие подразделы, определяемые идентификатором безопасности (Security ID, SID) каждого пользователя.

HKEY_CURRENT USER (HKCU) — cодержит настройки среды для пользователя, на данный момент зарегистрировавшегося в системе (переменные окружения, настройки рабочего стола, параметры сети, приложений и подключенных устройств).

Этот раздел дублирует информацию в HKEY_USERS\user SID, где user SID — идентификатор безопасности пользователя, зарегистрировавшегося в системе на текущий момент (узнать SID текущего пользователя можно, набрав в командной строке whoami /user).

HKEY_CURRENT_ CONFIG (HKCC) — cодержит настройки для текущего аппаратного профиля. Текущий аппаратный профиль включает в себя наборы изменений, внесенных в стандартную конфигурацию устройств, заданную в подразделах Software и System корневого раздела HKEY LOCAL_MACHINE.

В HKEY_CURRENT_CONFIG отражаются только изменения. Кроме того, информация этого раздела находится в HKEY_LOCAL_MACHINE\System\CurrentControlSet\HardwareProfiles\Current.

Данные в реестре хранятся в виде параметров, расположенных в ключах реестра. Каждый параметр характеризуется именем, типом данных и значением.

Основные типы данных, применяемые в реестре

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

REG_SZ — Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных.

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

REG_MULTI_SZ — Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют этот тип данных. Строки разделены символом NULL.

REG_BINARY — Двоичные данные. Большинство аппаратных компонентов используют информацию, которая хранится в виде двоичных данных. Редакторы реестра отображают эту информацию в шестнадцатеричном формате.

REG_RESOURCE_LIST — Список аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE.

Также иногда можно встретить такие типы данных реестра:

  • REG_RESOURCE_ REQUIREMENTS_LIST — Список необходимых аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE.
  • REG_FULL_RESOURCE_ DESCRIPTOR — Дескриптор (описатель) аппаратного ресурса. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE.
  • REG_LINK — Символическая ссылка Unicode. Этот тип данных интересен тем, что позволяет одному элементу реестра ссылаться на другой ключ или параметр.
  • REG_QWORD — 64-х разрядное число.
  • REG_DWORD_ LITTLE_ENDIAN — 32-разрядное число в формате «остроконечников» (little-endian), эквивалент REG_DWORD.
  • REG_DWORD_BIG_ ENDIAN — 32-разрядное число в формате «тупоконечников» (big-endian).
  • REG_QWORD_LITTLE_ ENDIAN — 64-разрядное число в формате «остроконечников». Эквивалент REG_QWORD.
  • REG_NONE — Параметр не имеет определенного типа данных.

Взаимодействие реестра с операционной системой

При запуске компьютера распознаватель аппаратных средств (hardware recognizer) помещает в реестр список обнаруженных им устройств. Обычно распознавание аппаратных средств осуществляется программой Ntdetect.com и ядром операционной системы Ntoskrnl.exe.

При старте системы ядро системы извлекает из реестра сведения о загружаемых драйверах устройств и порядке их загрузки. Кроме того, программа Ntoskrnl.exe передает в реестр информацию о себе (напр. номер версии).

В процессе загрузки системы драйверы устройств обмениваются с реестром параметрами загрузки и конфигурационными данными. Драйвер устройства сообщает об используемых им системных ресурсах, включая аппаратные прерывания (IRQ) и каналы доступа к памяти (DMA), чтобы система могла включить эти данные в реестр.

Кстати, реестр позволяет создавать несколько аппаратных профилей. Аппаратный профиль (hardware profile) представляет собой набор инструкций, с помощью которого можно указать операционной системе, драйверы каких устройств должны загружаться при запуске компьютера. По умолчанию системой создается стандартный аппаратный профиль, который содержит информацию обо всех аппаратных средствах, обнаруженных на компьютере.

При входе пользователя в систему загружаются пользовательские профили (user profiles). Вся информация, относящаяся к конкретному имени пользователя и связанными с ним правами хранится в реестре. Пользовательский профиль определяет индивидуальные параметры настройки системы (разрешение дисплея, параметры сетевых соединений, подключенные устройства и многое другое). Информация о пользовательских профилях также хранится в реестре.

При установке приложений. Каждый раз при запуске программы установки происходит добавление в реестр новых конфигурационных данных. Начиная свою работу, все программы установки должны считывать информацию из реестра, чтобы определить, присутствуют ли в системе необходимые им компоненты. Кроме того, системный реестр позволяет приложениям совместно использовать конфигурационную информацию, что предоставляет им больше возможностей для взаимодействия. Приложение должно активно и правильно использовать реестр, а также иметь возможность корректного удаления, не затрагивая при этом компонентов, которые могут использоваться другими программами (библиотеки, программные модули и т. п.). Эта информация тоже хранится в реестре.

При администрировании системы. Когда пользователь вносит изменения в конфигурацию системы с помощью средств администрирования системы (например при помощиПанели управления или оснастки MMC), все изменения сразу отражаются в системном реестре. По сути средства администрирования представляют собой наиболее удобные и безопасные средства модификации реестра. Кстати, к средствам администрирования можно отнести и редактор реестра (regedit.exe), ведь все изменения в систему можно вносить непосредственно правкой реестра.

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

Нарушение целостности файлов реестра (нарушение структуры данных) или неверное значение отдельных критических параметров может привести к краху системы . Поэтому, прежде чем экспериментировать с реестром, позаботьтесь о возможности его сохранения и восстановления.

Каждой операционной системе и приложению нужно место для хранения настроек и предпочтений пользователя. Так как компьютеры становятся все более сложными, так и  методы хранения этих данных тоже усложняются.

Некоторые настройки, необходимые MS-DOS хранятся в простом текстовом файле CONFIG.SYS. DOS-программы должны сделать свои собственные механизмы для хранения пользовательских настроек.
ОС Windows первоначально использовала INI файлы — текстовые файлы организованные в простом формате, которые могут быть прочитаны и записаны с помощью специальных процедур доступных для Windows программ. В Windows есть конфигурационный файл, SYSTEM.INI, который используеться для всех внутренних настроек плюс еще файл, WIN.INI, для пользовательских настроек. Каждое приложение было  в INI-файле, и как правило, названо в честь себя.
Эта система работала очень хорошо, и до сих пор используется некоторыми программами для Windows, но оказалось, есть несколько недостатков. INI-файлы не спешили дать доступ и ограничивали по размеру до 64Kb. Существовал также только один INI-файл в программе для каждого компьютера, что делает его трудно доступным иметь разные настройки для каждого пользователя компьютера.
Так что ,начиная с Windows NT и Windows 95, Microsoft представила реестр. Вы можете думать о реестре как о базе данных для хранения и доступа к данным конфигурации. Как и все хорошие базы данных реестр может хранить различные типы данных. Он организован для быстрого и эффективного доступа. Данные хранятся в иерархической манере, как папки на жестком диске. Реестр данных, которые используются в настоящее время кэшируются в память, чтобы обеспечить лучшую производительность.
Преимущества реестра
Реестр имеет ряд преимуществ по сравнению с другими схемами для хранения конфигурационных данных. Все данные хранятся в едином логическом месте, что делает его легким при выполнии резервного копирования и восстановления. (На самом деле, реестр состоит из двух или более отдельных файлов, как мы увидим позже.) Физическое местоположение не имеет значения  , реестр прозрачен для пользователя: он может либо храниться локально, так и доступен по сети. Хранение реестра на удаленном сервере полезно в бизнес-среде, поскольку он позволяет людям войти, используя различные ПК, но по-прежнему имеет свои собственные персональные настройки пользователя.
Недостаток этого — все время в одном месте, и трудно создать резервную копию индивидуальных предпочтений программ таким образом, что они могут быть перенесены на новый компьютер после того,как программное обеспечение было переустановлено. Не рекомендуется, чтобы попытаться восстановить весь реестр на другом компьютере, потому что большая часть информации в нем зависит от системы.
Хотя реестр может считаться иерархией папок, термин «папка» не часто используется, когда речь идет о расположении данных. «Путь», который идентифицирует конкретную «папку» реестра более правильно называть «ключ». Тем не менее, этот термин больше подходит, если вы программист и понимаете способ доступа информационных программ в реестре.
Чтобы получить доступ к определенной папке программа открывает его, указав путь и тип доступа который требуется (например, только для чтения, или чтение / запись), и получает ключ. Этот ключ является своего рода маркером, который используется в последующих командах программы для чтения или записи данных значений, хранящихся в том ключе, и получить доступ к суб-ключу от него. Когда программа закончит обращение к реестру ,он закрывается и освобождает ключ. Этот механизм помогает получить эффективный доступ к реестру. Он также позволяет Windows, реализовать контроль доступа и предотвращения одного приложения от изменения данных реестра, а другой она закрывает. Другой особенностью реестра является то что,он имеет общую базу данных , и он не редактируется с помощью текстового редактора. Это двоичный файл и его можно только читать и изменять с помощью программ, разработанных специально для этого. Несколько человек попытались внести изменения в реестр с помощью таких инструментов, как Нортон DiskEdit , но результат будет почти всегда катастрофический. К сожалению, Windows не является совершенной системой . Дела идут не так, и единственный способ, чтобы исправить их может быть, чтобы сделать изменения в реестре вручную. К счастью, Microsoft предоставила инструмент, специально предназначенные для этой цели. И называется, он как ни странно, редактор реестра. Его имя файла REGEDIT.EXE под Windows XP .
Редактор реестра представляет собой графический Explorer — подобный вид на реестр. Он имеет две панели окна. Левая панель содержит складной вид дерева иерархии ключей. Когда выбран ключ в левой панели ,в  правой панели отображаются значения которые он содержит и любой суб-ключ. В ходе этой статьи , мы будем использовать редактор реестра, как наш основной инструмент исследования.
Значительная неудача редактора реестра, что вы всегда должны иметь в виду, что у него нет «отката» объекта и вы не можете отменить любые изменения которые вы можете сделать. Всё слишком легко и можно случайно изменить или удалить то, что может иметь фатальные последствия для ОС Windows или приложений. Так что всегда желательно, чтобы создать резервные копии файлов реестра, прежде чем использовать редактор. Категории данных
Данные, записанные в реестр попадают в две категории: информационные системы и пользовательская информация. Информация о системе это то, что имеет отношение только к самому компьютеру. Она включает в себя информацию об аппаратном обеспечении и периферийных устройствах, их драйверах и так далее. Она может также включать информацию, связанную с программным обеспечением, которое было установлено на машине.
Информация о пользователе — все настройки, которые относятся к пользователю компьютера, в том числе их личных предпочтений. Компьютер на Windows XP поддерживает несколько пользователей и настаивает, что бы при входе в систему использовать его. Windows XP также позволяет использовать профили пользователей. Помните также, требование, чтобы пользователь мог получить доступ к их личным настройкам при входе в систему с другого компьютера по сети. Для удовлетворения этого, системные и пользовательские данные хранятся в отдельных файлах в реестре и будут использовать другой файл информации о пользователе в зависимости от имени пользователя или профиля.
Под Windows XP, системная информация хранится в файле SYSTEM.DAT. Этот файл находится в папке Windows. Если вы хотите, чтобы создать резервные копии реестра, этот файл является одним из тех, который всегда должен быть прикреплён. Потому что в нём содержится информация конкретного компьютера,и она никогда не может быть восстановлена на другом компьютере .
Пользовательская информация хранится в файле USER.DAT. По умолчанию он также находится  в папке Windows, и содержит данные по умолчанию для вашей системы или только пользователя. Если профили пользователей были включены, также будет USER.DAT для каждого пользователя, хранящийся в папке C: Windows Profiles имя_пользователя. Когда новый профиль устанавливается по умолчанию USER.DAT используется в качестве отправной точки. При резервном копировании системы вручную, вы должны гарантировать, что всё  из папки  C: Windows Profiles поапло в  резервное копирование, если вы хотите сохранить персональные настройки для каждого пользователя. Опять же, не рекомендуется, чтобы попытаться восстановить этот файл заново при переустановке  системы.
Информация о системе хранится в нескольких различных файлах, большинство из которых доступны только системным администраторам по соображениям безопасности. Большинство из них хранятся в папке System32 Config. Пользовательская информация хранится в файлах с именами NTUSER.DAT, которые хранятся в профилях подпапок главной папки Windows. Чтобы создать резервную копию реестра вручную содержимое обоих Config и профили вложенных папок должны быть прикреплены. Рекомендуется использовать NTBACKUP.EXE или другие совместимые программы резервного копирования.
Как реестр хранит информацию , не представляет большого интереса, за исключением целей резервного копирования. Более полезно, чтобы понять логическое представление о нём, как видно его в Windows и приложениях, а так же как представлен вам редактор реестра. В оставшейся части этой статьи я объясню, что вы можете видеть и какую пользу Вы могли бы получить из этой информации.
Корневые ключи
Как вы можете видеть, когда вы начинаете редактировать реестр, реестр состоит из шести основных отраслей или «ключи корня.» Каждая ветвь используется для хранения различных классов информации.
Редактор реестра, показывает шесть основных ветвей или корневые ключи
HKEY_LOCAL_MACHINE это отрасль, которая содержит информацию, конкретно связанную с компьютером как такового. Примеры этого включают установленное оборудование и программное обеспечение, драйверы для оборудования и данные о конфигурации программного обеспечения. Содержание этой ветви хранится в файле SYSTEM.DAT в реестре Windows XP.
Среди связанных с программным обеспечением данных, хранящихся в этой отрасли является информация о типах файлов и действий (Open, печать и так далее), которые можно выполнять на них. Например, когда вы устанавливаете приложение для просмотра изображений, которое позволяет работать с файлами формата TIFF, информация, связывающая данный тип файлов (с расширением. TIF) с данным приложением, будет храниться здесь.
Также здесь хранится информация о программных компонентах, установленных в компьютере. Windows, поддерживает объектно-ориентированную архитектуру, которая позволяет программным компонентам использоваться любым приложением. Данная технология развивалась и была введена в Windows 3 и была известна как связывание и внедрение объектов (OLE), ActiveX и Component Object Model (COM). Компоненты, установленные на компьютере, которые зарегистрированы в реестре, так что другие программы знают, что они существуют и могут использовать их. Примером этого является браузер Internet Explorer, компоненты которого могут быть использованы любой программой, которая должна отображать веб-страницы или другие HTML-форматированные данные.
HKEY_CLASSES_ROOT содержит информацию о типах файлов, и действиях, которые могут быть выполнены над ними (Open, печать и так далее), а также информация об установленных программных компонентах. В самом деле, это зеркало соответствующее отделению в HKEY_LOCAL_MACHINE которое сделано доступной в качестве корневого ключа из соображений совместимости. Microsoft впервые ввёл это  в реестр 16-разрядных Windows 3, но в нём только хранилась эта информация. HKEY_CLASSES_ROOT позволяет программе получить код, написанный для Windows 3 и работать без изменений, но и предоставляет удобный способ для современного программного обеспечения для доступа к часто используемым классам данных реестра.

Продолжение статьи Реестр Windows читайте  в следующих статьях — Реестр Windows часть II ,Реестр Windows часть III.

Решебником или гдз называется книга, которая выпущена для конкретного учебника и содержит решения предлагаемых в нём задач. Наш сайт представляет для всех желающих бесплатные онлайн гдз — готовые домашние задания. Мы верим в то, что решебники в онлайне или скачанные на ПК во всех случаях окажут помощь при подготовке к занятиям.

P.P.S. Если у Вас есть вопросы, желание прокомментировать или поделиться опытом, напишите, пожалуйста, в комментариях ниже.

  • Распечатать

Оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(0 голосов, среднее: 0 из 5)

Поделитесь с друзьями!

Понравилась статья? Поделить с друзьями:
  • Какой размер рабочего стола в windows 10 в пикселях
  • Какой файл отвечает за обновление windows 10
  • Какой размер поставить файл подкачки на windows 10
  • Какой файл отвечает за запуск windows xp
  • Какой размер кластера для ssd windows 10