» Hardware » Software » Windows » Internet » Humor » Other

Реестр

Argon On-Line » Windows » FAQ
 

Что это такое

Первоначально в Windows вместо реестра использовались *.ini файлы, но при работе с ними возникало много проблем — ограничения размеров, отсутствие стандартного формата, медленный доступ, отсутствие поддержки сети и т.д. В Windows 3.1 (именно Windows, а не Windows NT) уже существовал реестр, который хранился в reg.dat и мог быть просмотрен, используя regedit.exe. Он использовался для интеграции DDE, OLE и File Manager. В Windows NT реестр — сердце NT, в котором хранится почти вся информация, разделенная на несколько подразделов, каждый из которых начинается с HKEY_.

Каждый раздел может иметь несколько подразделов, а каждый подраздел может иметь несколько собственных подразделов . Каждый раздел/подраздел может иметь несколько значений, состоящих из трех частей:

Имя параметра, например Wallpaper
Тип параметра, например REG_SZ (текстовая строка)

Фактическое значение параметра, например "c:\winnt\winfaq.bmp" Редактировать реестр можно с помощью двух инструментов: regedt32.exe и regedit.exe. Regedit.exe обладает лучшими средствами поиска, но не поддерживает все типы парметров Windows NT. Если Вы хотите просто посмотреть, что из себя представляет реестр, выполните следующее:

  1. Откройте редактор реестра (regedit.exe или regedt32.exe)
  2. В Regedt32.exe Вы можете установить на реестр режим "только чтение", что не позволит Вам в нем что-нибудь сломать :-) (Options — Read Only Mode)
  3. Выделите подраздел HKEY_USERS .
  4. Перейдите в .default — Control Panel — Desktop и Вы увидите множество параметров в правой части панели.
  5. Один из них — обои (это фон, который отображается до Вашего входа в систему).

Из каких файлов состоит реестр и где они находятся?

Файлы, составляющие реестр, хранятся в папке %systemroot%/system32/config и состоят из:

  • SAM — HKEY_LOCAL_MACHINE\SAM
  • SECURITY — HKEY_LOCAL_MACHINE\Security
  • software — HKEY_LOCAL_MACHINE\Software
  • system — HKEY_LOCAL_MACHINE\System & HKEY_CURRENT_CONFIG
  • default — HKEY_USERS\.DEFAULT
  • Ntuser.dat — HKEY_CURRENT_USER (этот файл хранится в %SystemRoot%\Profiles\%username%).

Также имеются файлы с другими расширениями:

  • .alt — Содержит резервную копию раздела HKEY_LOCAL_MACHINE\System. Только у System есть .alt файлы.
  • .log — Файл регистрации изменений значений параметров в разделе.
  • .sav — Копия раздела, создаваемая в конце text mode stage установки.
Какие есть клавиши управления в редакторе реестра Regedit?
Комбинация клавишДействие
стрелка, направленная внизПереход к следующему разделу, отображенному на экране
стрелка, направленная вверхПереход к предыдущему разделу, отображенному на экране
стрелка, направленная влевоРаскрытие выделенного раздела
стрелка, направленная вправоСвертывание раскрытого раздела или переход к разделу на уровень выше
Alt+HomeПереход к значку Мой компьютер
Alt+Home+стрелка влевоПереход к значку Мой компьютер и свертывание всех ветвей
TabПереход между левой и правой панелью Редактора реестра
F1Вызов справки
F2Переименование выделенного раздела
F3Открытие окна Поиск или вызов команды Найти далее
Alt+F4Закрытие Редактора реестра
F5Обновление содержимого панелей Редактора реестра
F6Переход между левой и правой панелью Редактора реестра
F10Переход к меню управления
Shift+F10Открытие \ закрытие контекстного меню
Любой символПереход к следующему доступному подразделу, чье название начинается с выбранного символа

Как ограничить доступ к редакторам реестра?

Воспользуйтесь редактором реестра (regedt32.exe).

  1. Выделите HKEY_USERS и затем, Load Hive из меню Registry.
  2. Перейдите в папку с Profile пользователя, которому Вы хотите ограничить доступ к редакторам реестра, и выберите NTUser.dat.
  3. После вывода подсказки для ввода Key Name, введите его UserID.
  4. Перейдите в \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies.
  5. Если не существует параметра System, нажмите Add Key.
  6. Потом Add Value и введите: DisableRegistryTools (в System key). Тип REG_DWORD, значение установите в 1.
  7. Unload Hive из меню Registry.

Каков максимальный размер реестра?

Максимальный размер реестра — 102MB, но тем не менее, это можно изменить.

Максимальный размер реестра контролируется параметром HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ RegistrySizeLimit. По умолчанию его не существует, поэтому необходимо его создать:

  1. Откройте редактор реестра (regedit.exe)
  2. Перейдите в HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control
  3. Из меню Edit выберите New, тип Dword. Введите имя RegistrySizeLimit
  4. Двойным щелчком откройте новый параметр и введите значение в байтах (выберите десятичный тип исчислений)

Минимальное размер — 4MB, и даже если фактически меньше, значение будет принудительно увеличено до 4MB. Максимальный размер — 80% от "paged pool" (если его максимальный размер 128MB, следовательно, 102MB — это 80% от 128MB). Когда значение не установлено, то максимальный размер ограничен 25% от "paged pool". "Paged pool" — область физической памяти, используемая для данных системы, которые могут быть перемещены из оперативной памяти на винчестер во время их простоя.

Важно знать, что RegistrySizeLimit — это максимум, а не выделение. И установка более высокого значения не резервирует свободное пространство и не гарантирует достижения такого размера. Это можно сделать, воспользовавшись апплетом System в Control Panel. Нажмите вкладку Performance и установите максимальный размер реестра. Перезагрузитесь.

Есть и другие проблемы: в начале загрузки NTLDR загружает некий программный код, распределяет рабочую память и читает части реестра. Все это должно быть загружено в первые 16MB памяти, независимо от того, сколько ее у Вас установлено. Считываемые системные файлы загружаются в память полностью, независимо от того, на сколько они используются :(

Некоторые другие проблемы:

Реестр содержит много пустого пространства (иногда очень много). Попробуйте сохранить SYSTEM key из REGEDT32 и сравните с тем что хранится в \%systemroot%\system32\config\
Создание LastKnownGood ControlSet (обычно #2) после загрузки почти удваивает размер файла. В зависимости от обстоятельств, добавление в реестр может потребовать создания нового пустого пространства, которое добавляется к объединенным разделам Current и LastKnownGood SYSTEM. Далее, после очередной перезагрузки, еще один LastKnownGood добавляется в реестр, что утраивает первоначальный размер и грозит крахом системы.

Способы избавления от вышеописанной проблемы:

  • На FAT просто загрузитесь с загрузочной дискеты DOS и замените файл SYSTEM.
  • На NTFS загрузитесь с другого NT раздела и замените файл SYSTEM.
  • Используйте утилиту REGBACK /REGREST из NT reskit (самый легкий способ).
  • Выполните RDISK, перезагрузитесь и восстановите систему. Используете только RDISK /s. При этом сохраняется и база данных пользователей.
  • Воспользуйтесь ERD Commander (Winternals Software)
  • Предотвратить данную проблему можно. Используя REGEDT32, вставьте параметр "ReportBootOk:REG_SZ:0" [ноль] в HKEY_Local_Machine \ SOFTWARE \ Microsoft \ WindowsNT \ CurrentVersion \ Winlogon. Это предотвратит создание LastKnownGood ControlSet. Если ошибки при загрузке вызваны превышением 16MB при работе NTLDR, то dump не производится и MS не сможет решить эту проблему. Проблема 16 MB не решена и в NT5.
 
Еще
Оглавление раздела
Содержание / Новости

Карта сайта
О сайте
Ссылки

Форум
Обратная связь
Если ты нашел ошибку, хочешь что-то посоветовать либо поругать меня, не посчитай за труд написать об этом в следующем поле...







К началу страницы© 2002—2008 Argon