Windows registry

Windows registry

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

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

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

Содержание

История возникновения и развития реестра

В развитии реестра следует разделить «технологический» и «идеологический» шаги.

Реестр Windows 3.1

Технологический шаг был сделан в Windows 3.1.

Сам реестр, как древовидная иерархическая база данных (registration database — регистрационная база) впервые появился в Windows 3.1 (апрель 1992). Это был всего один двоичный файл, который назывался REG.DAT и хранился в каталоге C:\Windows\. Реестр Windows 3.1 имел только одну ветку HKEY_CLASSES_ROOT. Он служил для связи DDE, а позднее и OLE объектов.

Одновременно c появлением реестра в Windows 3.1 появилась программа REGEDIT.EXE для просмотра и редактирования реестра.

Первый реестр уже имел возможность импорта данных из . В базовой поставке шел файл SETUP.REG, содержащий данные по основным расширениям и типам файлов.

Реестр Windows 3.1 имел ограничение на максимальный размер файла REG.DAT — 64 Кбайт. Если вдруг реестр превышал этот размер — то файл реестра (REG.DAT) приходилось удалять и собирать заново либо из , либо вводить данные вручную.

Реестр Windows NT 3.1

Идеологический шаг был сделан в Windows NT 3.1 (июль 1993). Произошел отказ от файлов CONFIG.SYS, а также от INI-файлов, как от основных файлов конфигурации. На «регистрационную базу» (реестр) была переведена вся конфигурация системы. Основой конфигурации системы стал реестр. Он имел 4 корневых раздела: HKEY_ LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT и HKEY_USERS.
Реестр стал «сборным»: на диске он хранился в файлах: DEFAULT, SOFTWARE, SYSTEM, а при запуске системы из этих файлов собиралась единая БД.
В комплекте поставки оставался файл REGEDIT.EXE, который по прежнему позволял просматривать и редактировать только ветку HKEY_CLASSES_ROOT, и появился файл REGEDT32.EXE, который позволял редактировать все ветки реестра.

Далее технология и идеология (назначение) реестра уже не менялись. Все последующие версии Windows (NT 3.5, 95, NT 4.0, 98, 2000, XP, Vista) использовали реестр как основную БД, содержащую все основные данные по конфигурации как самой ОС, так и прикладных программ. Далее менялось только расположение и название файлов реестра, и название и назначение ключей.

Современный реестр Windows

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

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

Затем, в процессе каждой загрузки системы, а так же в процессе каждого входа и выхода каждого из пользователей, формируется некая виртуальная сущность, называемая «реестром» - объект REGISTRY\. Данные для формирования «реестра» частично берутся из тех самых файлов (Software, System ...), частично из информации, собранной ntdetect при загрузке (HKLM\Hardware\Description).

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

Для редактирования, просмотра и изучения реестра стандартными средствами Windows (программы regedit.exe и regedt32.exe) доступны именно ветки реестра. После редактирования реестра и/или внесения в него изменений эти изменения сразу записываются в файлы.

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

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

Файлы реестра (Хранение данных реестра)

Windows 95/98

  • User.dat
  • System.dat

Windows ME

  • Classes.dat
  • User.dat
  • System.dat

Windows 2000

Windows XP

После установки Windows на диске в каталоге %SystemRoot%\System32\Config\ (например, C:\Windows\System32\Config\) хранятся следующие файлы:

  • system
  • software
  • sam
  • security
  • default

(Все файлы (имена файлов) без расширений. Копия этих файлов хранится в каталоге C:\Windows\Repair\)

Кроме того, файлы, используемые при построении «рабочей версии» реестра, могут храниться в каталогах:

  • %SystemDrive%\Documents and Settings\<Username>\ — файл «Ntuser.dat»
  • %SystemDrive%\Documents and Settings\<Username>\Local Settings\Application Data\Microsoft\Windows\ — файл «UsrClass.dat»

Кроме этого, могут появляться и другие файлы реестра: userdiff (и userdiff.LOG), TempKey.LOG, и, возможно, другие

Можно провести некое примерное соответствие файлов и веток реестра, но оно не такое простое, полное и однозначное. Однако примерно можно сказать следующее:

  • Ветка реестра «HKEY_LOCAL_MACHINE\Software\» формируется из файла «software».
  • Ветка реестра «HKEY_LOCAL_MACHINE\System\» формируется из файла «system».
  • Ветка реестра «HKEY_USERS\» формируется из файлов «default» и других.

Команды сброса:

  1. Скинуть сетевые настройки:
    -netsh interface ip reset c:\log.txt
  2. Если в Диспетчере устройств не отображается список устройств:
    regsvr32 jscript.dll
    regsvr32 vbscript.dll
  3. Пример команды сброса параметров безопасности:
    secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose

Параметры реестра:

  1. Отключает автозагрузку съёмных дисков (USB и т. д.):
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
    "NoDriveTypeAutoRun"=dword:000000ff

Windows Vista

В Windows Vista файлы реестра хранятся там же, где и в Windows XP.

Пример команды сброса параметров безопасности:

secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose

Windows CE/Mobile

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

HKEY_CURRENT_USER

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

HKEY_USERS

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

HKEY_LOCAL_MACHINE

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

HKEY_CLASSES_ROOT

Является подразделом HKEY_LOCAL_MACHINE\Software\Classes. В основном, содержит информацию о зарегистрированных типах файлов и объектах ActiveX. Вместо полного имени раздела иногда используется аббревиатура HKCR. Начиная с Windows 2000, эти сведения хранятся как в HKEY_LOCAL_MACHINE, так и в HKEY_CURRENT_USER. Раздел HKEY_LOCAL_MACHINE\Software\Classes содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USER\Software\Classes, переопределяют принятые по умолчанию и относятся только к текущему пользователю. Раздел HKEY_CLASSES_ROOT включает в себя данные из обоих источников. Кроме того, раздел HKEY_CLASSES_ROOT предоставляет объединённые данные программам, написанным под ранние версии Windows. Изменения настроек текущего пользователя выполняются в разделе HKEY_CURRENT_USER\Software\Classes. Модификация параметров по умолчанию должна производиться в разделе HKEY_LOCAL_MACHINE\Software\Classes. Данные из разделов, добавленных в HKEY_CLASSES_ROOT, будут сохранены системой в разделе HKEY_LOCAL_MACHINE\Software\Classes. Если изменяется параметр в одном из подразделов раздела HKEY_CLASSES_ROOT и такой подраздел уже существует в HKEY_CURRENT_USER\Software\Classes, то для хранения информации будет использован раздел HKEY_CURRENT_USER\Software\Classes, а не HKEY_LOCAL_MACHINE\Software\Classes.[4]

HKEY_CURRENT_CONFIG

Данный раздел содержит сведения о профиле оборудования, используемом локальным компьютером при запуске системы.[5] Является ссылкой на HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current

HKEY_DYN_DATA

Данный раздел имеется только в реестре ОС семейства Windows 9x/ME. Содержит динамически изменяемые данные о компьютере (загрузка процессора, размер файла подкачки и т. п.).[6]

Критика

Способ хранения параметров и настроек операционной системы при помощи реестра Windows часто подвергается критике по следующим причинам:

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

Критики приводят в пример

Программы для работы с реестром

Терминология

В описании реестра в английской литературе, среди прочих, используется термин Hive. В некоторых работах его переводят на русский как «улей». Microsoft в своих документах переводит это как куст. Например:
Registry hive HKEY_LOCAL_MACHINE\SAM == Куст реестра HKEY_LOCAL_MACHINE\SAM (см. тут и тут)
Куст реестра — это подмножество разделов, подразделов и параметров реестра, которому сопоставлен набор вспомогательных файлов, содержащих резервные копии этих данных (там же

Примечания

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Windows registry" в других словарях:

  • Windows Registry — The Windows Registry is a hierarchical database that stores configuration settings and options on Microsoft Windows operating systems. It contains settings for low level operating system components as well as the applications running on the… …   Wikipedia

  • Windows-Registry — Die Windows Registrierungsdatenbank (auch: Windows Registry oder Windows Registrierdatenbank) ist seit der ersten Version von Windows NT die zentrale hierarchische Konfigurationsdatenbank des Betriebssystems Microsoft Windows. Hier werden sowohl… …   Deutsch Wikipedia

  • Windows Registry — Die Windows Registrierungsdatenbank (auch: Windows Registry oder Windows Registrierdatenbank) ist seit der ersten Version von Windows NT die zentrale hierarchische Konfigurationsdatenbank des Betriebssystems Microsoft Windows. Hier werden sowohl… …   Deutsch Wikipedia

  • Windows 9x — Windows 4.x redirects here. For the operating system in the NT family, see Windows NT 4.0. Windows 9x Screenshot of Windows 95, the first version of Windows in the 9x series Company / developer …   Wikipedia

  • Windows 2000 — Part of the Microsoft Windows family Screenshot of Windows 2000 Professional …   Wikipedia

  • Windows Me — Part of the Microsoft Windows family …   Wikipedia

  • Windows 98 — Part of the Microsoft Windows family …   Wikipedia

  • Registry — may refer to:In animal breeding: * Breed registry, a record of the ancestry and ownership of purebred animalsIn computing: * Windows Registry, a database of configuration settings in Microsoft Windows operating systems * Domain name registry, an… …   Wikipedia

  • Registry — (engl. für „Register“) steht für: Domain Name Registry, eine Organisation, die Internet Domains verwaltet Eine allgemeine Bezeichnung für eine Datenbank oder andere Speicherform in der Computertechnik, die Registrierungszwecken dient, wobei diese …   Deutsch Wikipedia

  • Windows.h — is a Windows specific header file for the C programming language which contains all the function declarations in the API, as well as declarations for all the common macros used by windows programmers, and all the data types used by the various… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»