Глава 1

Обзор реестра Windows XP

Данная книга адресована системным администраторам, специалистам по технической поддержке и опытным пользователям Windows XP, а большинство читателей этого круга наверняка уже знакомы с понятием реестра. Прототип современного реестра существовал еще в Windows 3.1, и многие программисты уже в те времена знали, что конкретно их собеседник имеет в виду, заводя разговор о реестре. Среди пользователей тема реестра стапа популярной после выпуска операционной системы Windows 95. Это не удивительно, поскольку реестр является важнейшей частью любой современной операционной системы семейства Windows. В данной главе приводится обзорная информация по реестру Windows NT/2000/XP, дается описание его структуры и типов данных, а также анализируются методы хранения данных реестра Windows XP. К сожалению, ограниченный объем книги не позволяет подробно остановиться на анализе отличий между реестрами Windows 95/98/ME и Windows NT/2000/XP. Однако, основные отличия будут указаны по ходу изложения материала.

 

Введение

Не приходилось ли вам попадать в ситуацию, когда необходимо срочно выполнить работу, но на экране появляется странное и пугающее сообщение о том, что операционная система не может быть загружена, т. к. ее реестр поврежден? Например, многие пользователи Windows NT 4.0 испытывали этот шок. когда в процессе загрузки получали сообщение следующего вида:

OS Loader V 4.0 

....
 Windows NT could not start because the following file
 is missing or corrupt: 
 \WINNT\SYSTEM32\CONFIG\SYSTEM    
 You can attempt to repair this file by Starting Windows
 NT Setup using 
 the original Setup floppy disk or CD-ROM. 
 Select 'r' at the first screen tc repair. 

Почти такое же сообщение может появиться и в Windows 2000, а также в Windows XP:

Не удается запустить Windows из-за испорченного
 или отсутствующего файла:
 \WIMDOWS'\SYSTEM32\CONFIG\SYSTEM    
 Можно попробовать восстановить    этот файл, 
запустив программу установки
 Windows с оригинального установочного    CD-ROM. 
 Выберите 'r' в первом диалоговом  экране для 
запуска процедуры восстановления. 

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

Реестр довольно сложен для расшифровки и понимания, однако он представляет собой важную часть любой современной операционной системы семейства Windows, без которой она просто не сможет работать. Что же такое реестр? Это централизованная база данных, которая хранит все параметры настройки системы и работающих в ней приложений. В этом смысле реестр аналогичен разнообразным INI-файлам, а также файлам Autoexec.bat и Config.sys, используемых в ранних версиях Windows. Помимо этого, в реестре хранится информация обо всех имеющихся на компьютере аппаратных средствах, включая устройства Plug and Play, системную информацию OLE, а также сведения о связях расширений имен файлов. Реестр содержит все данные о приложениях, поддерживающих Plug and Play и OLE, информацию о конфигурации сетевых параметров, аппаратные профили и профили пользователей.

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

 

Историческая справка по реестру

Сама по себе концепция реестра не нова для Windows. Однако современный реестр — это гигантский шаг вперед в достижении управляемости всей системы в целом из единого источника — регистрационной базы данных (registry database). Эта база данных разрабатывалась как основа всех сетевых, системных и пользовательских параметров настройки Windows. Первой операционной системой семейства Windows, получившей широкое распространение и пользовавшейся коммерческим успехом, была система Microsoft Windows 3.1. В ней применялись три различных типа файлов конфигурации.

 

Рис. 1.1. При удалении приложения из системы производится удаление параметров реестра, соответствующих удаляемому приложению

 

Рис. 1.2. Вкладка Дополнительно в окне Свойства системы

Рис. 1.3. Окно Профили пользователей

Рис. 1.4. Вкладка Оборудование окна Свойства системы

 

Рис. 1.5. Окно Профили оборудования

 

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

Для понимания логической структуры реестра проще всего провести аналогию со структурой файловой системы на диске. Реестр содержит ключи (keys), которые аналогичны каталогам, и параметры (values), которые можно сравнить с файлами, хранящимися на диске. Ключи реестра представляют собой контейнеры, в составе которых могут содержаться как вложенные ключи (subkeys), так и параметры. Параметры реестра (как и файлы) содержат данные. Ключи, находящиеся на верхнем уровне этой иерархической структуры, называются корневыми ключами (root keys).

Рис. 1.6. Иерархическая структура реестра

Схема именования ключей и параметров реестра также заимствуется от схемы именования путей к файлам и каталогам, принятой для файловой системы. Сравните, например, типичный путь к каталогу (WORK\BHV) и типичный путь к вложенному ключу реестра (HKEY_LOCAL_MACHINE\SYSTEM \Current.GontrolSet).

Реестр Windows 2000/XP содержит 5 коревых ключей: HKEY_CLASSES_ROOT, HKEY_GURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS И HKEY_CURREKT_CONFIG. На рис. 1.6 проиллюстрирована иерархическая структура реестра.

Все имена корневых ключей начинаются со строки HKEY_, что указывает разработчикам программного обеспечения на то. что это — дескриптор, который может использоваться программой. Дескриптор (handle) — это значение, применяемое для уникального описания ресурса, к которому программа может получить доступ. Описания корневых ключей реестра Windows NT/2000/XP приведены в табл. 1.1.

Таблица 1.1. Корневые ключи реестра

Имя корневого ключа

Описание

HKEY_LOCAL_MACHINE

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

HKEY_CLASSES_ ROOT, HKEY_CURRENT_CONFIG и HKEY_DYN_ DATA

HKEY_CLASSES_ROOT

Содержит ассоциации между приложениями и типами файлов (по расширениям имени файла). Кроме того, этот ключ хранит информацию OLE, ассоциированную с объектами СОМ, а также данные по ассоциациям файлов и классов (эквивалент реестра ранних версий Windows, служивших настройкой над MS-DOS). Параметры этого ключа совпадают с параметрами, расположенными под ключом HKEY_LOCAL_MACHINE \ Software \Classes.

Подробную информацию о ключе HKEY_CLASSES_ROOT можно найти в руководстве "OLE Programmer's Reference", входящем в состав продукта Windows Platform Software Development Kit (SDK)

HKEY_CURRENT_CONFIG

Содержит конфигурационные данные для текущего аппаратного профиля. Аппаратные профили (Hardware profiles) представляют собой наборы изменений, внесенных в стандартную конфигурацию сервисов и устройств, установленную данными ключей Software и System корневого ключа HKEY_LOCAL_MACHINE. В ключе HKEY_CURRENT CONFIG отражаются только изменения.

Кроме того, параметры этого ключа появляются также под ключом HKEY_LOCAL_ MACHINE \Systern \ CurrentControlSet \HardwareProflies \Current

HKEY_CURRENT_USER

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

Этот ключ представляет собой ссылку на ключ HKEY_ USERS\user_ SID, где user SID — идентификатор безопасности (Security ID) пользователя, зарегистрированного в системе на текущий момент

HKEY_USERS

Содержит все активно загруженные пользовательские профили, включая HKEY_ CURRENT_ USER, а также профиль по умолчанию. Пользователи, получающие удаленный доступ к серверу, не имеют профилей, содержащихся под этим ключом; их профили загружаются в реестры на собственных компьютерах.

Windows NT/2000/XP содержит все активно загруженные пользовательские профили, включая HKEY_ CURRENT_ USER, а также пользовательский профиль по умолчанию (.DEFAULT). Пользователи, получающие удаленный доступ к серверу, не имеют профилей, содержащихся под этим ключом; их профили загружаются в реестры на собственных компьютерах

Примечание 

Как уже говорилось, концепция реестра впервые была введена в первой версии Windows NT— Windows NT 3.1. Реестры Windows 9x/ME берут начало от этой первой версии. Однако на текущий момент между реестрами Windows 9х/МЕ и Windows NT/2000/XP существуют серьезные различия. Наиболее очевидное из них заключается в том, что реестр Windows 95/98/ME имеет еще один ключ верхнего уровня — HKEY_DYN_DATA. Этот ключ содержит информацию о системе, которую операционные системы Windows 9x/ME должны постоянно "держать наготове", поскольку она может потребовать оперативного обновления. Эту информацию реестра Windows 9x/ME хранит в оперативной памяти, не записывая на жесткий диск. Ключ HKEY_DYN_DATA имелся во всех бета-версиях, но при попытке его открыть всегда появлялось сообщение об ошибке. В настоящее время, утилиты Regedit.exe и Regedt32.exe в Windows 2000 и Редактор реестра (Registry Editor) Windows XP (Regedit.exe) не показывают этот ключ.

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

В табл. 1.2 перечислены типы данных, определенные и используемые в системе Windows NT/2000/XP.

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

Тип данных

Описание

REG_BINARY

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

REG_DWORD

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

REG_EXPAND_SZ

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

REG_MULTI_SZ

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

REG_SZ

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

REG_DWORD_LITTLE_ENDIAN

32-разрядное число в формате "остроконечников" (little-endian). Представляет собой эквивалент типа REG_ DWORD. При использовании метода "остроконечников" самый младший байт ("little end") хранится в памяти первым в числе. Например, шестнадцатеричное число А02Вh по методу "остроконечников" сохраняется как 2ВА0.

Метод "остроконечников" используется в микропроцессорах Intel

REG_DWORD_BIG_ENDIAN

32-разрядное число в формате "тупоконечников" (big endian). В противоположность методу "остроконечников", при использовании метода "тупоконечников" первым байтом числа оказывается самый старший байт ("big end")

REG_LINK

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

Тип данных REG_ LINK особенно интересен тем, что он позволяет одному элементу реестра ссылаться на другой ключ или параметр. Например, если элемент реестра \Rootl\Link имеет параметр типа REG_LINK со значением  \Root2\RegKey, а ключ RegKey содержит параметр RegValue, то этот параметр идентифицируется двумя путями: \Rootl\Link\RegValue и \Root2\RegKey \RegValue. Windows NT/2000/XP активно использует этот метод — некоторые из корневых ключей реестра, перечисленных в табл. 1.1, являются ссылками на вложенные ключи других корневых ключей

REG_NONE

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

REG_DWORD

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

REG_QWORD_LITTLE
_ENDIAN
 

64-разрядное число в формате "остроконечников". Эквивалент REG_ QWORD

REG_RESOURCE_LIST

Список аппаратных ресурсов, применяется только в ветви

HKEY_ LOCAL_ MACHINE \HARD WARE

REG_FULL_RESOURCE
_DESCRIPTOR

Дескриптор (описатель) аппаратного ресурса. Применяется только в ветви HKEY_ LOCAL_ MACHINEV HARDWARE

REG_RESOUECE_
 REQUIREMENTS_ LIST

Список необходимых аппаратных ресурсов. Применяется только в ветви HKEY_ LOCAL_ MACHINS\HARDWARE

 

Хранение данных реестра

В Windows NT/2000/XP элементы реестра хранятся в виде атомарной структуры. Реестр подразделяется на составные части, которые разработчики этой операционной системы назвали ульями [ В версиях Windows NT/2000/XP, локализованных на русский язык, эти компоненты были названы "кустами", что не совсем точно отражает их природу. В оригинальных версиях Windows NT/2000/XP атомарные компоненты структуры реестра называются ульями (hives). Этот термин был введен разработчиками Microsoft с тем, чтобы подчеркнуть сходство структуры реестра с ячеистой структурой пчелиного улья. С точки зрения автора, этот термин является более удачным.] (hives) по аналогии с ячеистой структурой пчелиного улья. Улей представляет собой дискретную совокупность ключей, вложенных ключей и параметров, берущую начало в вершине иерархии реестра. Отличие ульев от других групп ключей состоит в том, что они являются постоянными компонентами реестра. Ульи не создаются динамически при загрузке операционной системы и не удаляются при ее остановке. Таким образом, ключ HKEY_LOCAL_MACHINE\HARDWARE, который строится динамически распознавателем аппаратных средств при запуске системы, ульем не является.

Примечание 

Так же, как в Windows 2000, реестр Windows XP размещается на диске в виде набора файлов, именуемых ульями, которые служат хранилищем данных о конфигурации системы. В Windows XP программный код реестра переработан для обеспечения более высокой производительности. Это не повлияло на приложения, поскольку в данной ситуации используются существующие программные интерфейсы программирования (API). Усовершенствования реестра Windows XP направлены главным образом на повышение производительности. Далее в этой главе мы рассмотрим их более подробно.

Данные ульев реестра хранятся в файлах, которые размещаются в каталогах %SystemRoot%\System32\Conug и %SystemRoot9S\Prou\es\Username (Windows NT 4.0) и %SystemRoot%\System32\Conug и % System Drive%\Documents and Settmgs\Usemame (Windows 2000).

Каждый улей реестра Windows NT/2000/XP ассоциирован с набором стандартных файлов. В табл. 1.3 перечислены стандартные ульи реестра Windows NT/2000/XP и поддерживающие их файлы.

Таблица 1.3. Стандартные файлы, обеспечивающие поддержку ульев реестра Windows NT/2000/XP

Улей реестра

Файлы поддержки

HKEY_LOCAL_MACHINE\SAM

Sam, Sam. log, Sam.sav

HKEY_LOCAL_MACHINE\Security

Security, Security.log, Security.sav

HKEY_LOCAL_MACHINEXSoftware

Software, Software.log, Software. sav

HKEY_LOCAL_MACHINE\System

System, System. alt* , System.log, System. sav

HKEY_CURRENT_CONFIG

System, System. alt* , System.log, System. sav

HKEY_USERS\.DEFAULT

Default, Default.log, Default. sav

Файлы, не ассоциированные ни с одним ключом

Userdiff, Userdiff.log, Userdifr**, Userdifr.log**

HKEY_CURRENT_ USER

Ntuser.dat, Ntuser.dat.log

* Файлы, которые были ликвидированы в Windows XP.

** Файлы, которые впервые появились в Windows XP.

Примечание 

Как видно из табл. 1.3, в Windows XP некоторые файлы реестра были ликвидированы, при этом впервые появились другие файлы. Это было сделано с целью ряда усовершенствований реестра в Windows XP, которые будут детально рассмотрены в этой книге.

Все файлы ульев реестра, за исключением HKEY_CURRENT_USER, находятся в подкаталоге %SystemRoot%\System32\Config.

Поддержку улья HKEY_CURRENT_USER выполняют файлы Ntuser.dat и Ntuser.dat.log. В файлах Ntuser.dat хранятся пользовательские профили; файл Ntuser.dat.log отслеживает изменения, которые вносились в файл Ntuser.dat. В Windows NT 4.0 эти файлы располагаются во всех подкаталогах каталога %SyslemRoot%\Profi\es (за исключением подкаталога \А11 Users). Начиная с Windows 2000, упомянутые файлы находятся в каталогах % System Drive% \Documents and Settings\%Username%.

Файлы Ntuser и Userdiff были впервые введены в Windows NT 4.0.

С ульями ассоциируются файлы четырех типов. Все эти типы файлов (с соответствующими расширениями имен файлов) перечислены в табл. 1.4.

Таблица 1.4. Типы файлов, ассоциированных с ульями реестра Windows NT4.0/W/ndows 2000/Windows XP

Тип файла

Описание

Без расширения имени файла

ALT*

Содержит копию улья

Содержит резервную копию жизненно важного улья HKEY_ LOCAL_ MACHINE\System. Только Ключ \System имеет соответствующий файл с расширением ALT. Как уже упоминалось, в Windows XP ALT-файлы ликвидированы, поскольку программный код реестра был переработан для реализации более совершенных алгоритмов, увеличивающих быстродействие при выполнении запросов, а также для повышения надежности и увеличения объема реестра

LOG

Содержит журнал транзакций, в котором регистрируются все изменения, внесенные в ключи и значимые элементы улья

SAV

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

\Software, \Systera, \SAM, \Security и \Default

SAV

Windows NT/2000/XP выполняет резервное копирование содержимого ульев в процессе инсталляции. Процедура инсталляции состоит из двух стадий: стадии текстового режима и стадии графического режима. Когда установка в текстовом режиме завершается, выполняется копирование ульев в файлы с расширением SAV. Это делается для того, чтобы защитить ульи от ошибок, которые могут произойти в случае сбоя на графической стадии установки. Если процедура установки даст сбой на графической стадии, то после перезагрузки компьютера будет производиться повтор только графической стадии установки. SAV-файлы используются для перестройки ульев реестра

* Файлы, которые были исключены из Windows XP.

 

Атомарность и восстановление ульев реестра

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

 

Сброс данных

Windows NT 4.0 и Windows 2000 записывают данные в реестр только после сброса (flush). Сброс происходит после того, как измененные данные "постареют" на несколько секунд. К тому же, сброс может возникнуть и по прямому запросу приложения, которое намеренно сбросило данные на жесткий диск.

Для всех ульев (кроме \system) система выполняет следующую процедуру сброса:

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

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

3. Измененные данные записываются в файл улья.

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

Примечание

Если в процессе выполнения описанной выше процедуры сброса (между шагами 2 и 4) произойдет остановка системы, то при следующей загрузке улья при запуске системы (исключение составляют ульи профилей, которые загружаются при регистрации в системе) система увидит маркер, оставленный на шаге 2, и продолжит восстановление улья на основании измененных данных, которые содержатся в LOG-файле. Таким образом, если улей не находится в переходном состоянии, то при его загрузке LOG-файлы не используются. Если улей находится в переходном состоянии, он не может быть загружен без соответствующего LOG-файла.

Для улья \system в Windows NT/2000 используется другой процесс сброса, т. к. этот улей является жизненно важным элементом, данные которого считываются при запуске системы. Кроме того, при запуске системы его использование начинается гораздо раньше, чем других ульев, поскольку в его состав входит ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSetSControl, содержащий параметры, необходимые при инициализации реестра в процессе загрузки. Так, параметры, расположенные в составе ключа HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist, используются при поиске остальных файлов ульев реестра. Если улей \System поврежден, то он не может быть восстановлен с помощью описанной выше процедуры.

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

Файл System.alt аналогичен LOG-файлу, с тем исключением, что во время загрузки система вместо того, чтобы повторно вносить изменения, зарегистрированные в LOG-файле, просто переключается на использование файла System.alt. Файл System.alt не нужен, если файл System не находится в переходном состоянии.

Примечание 

В Windows XP эта проблема решается за счет перемещения реестра из нерезидентного пула (paged pool) и использования менеджера кэша (cache manager) для выполнения оперативного управления реестром. Поэтому в Windows XP отпадает необходимость в использовании файла System.ait.

 Примечание

Методы, при помощи которых операционные системы Windows 9x/ME и Windows NT/2000/XP хранят данные реестра, также отличаются весьма существенно. Реестр Windows 95/98 использует только два файла: System.dat и User.dat (в Windows ME есть еще один файл реестра— Classes.dat, который был введен для сокращения времени загрузки). В целях упрощения редактирования этих файлов, Редактор реестра (Registry Editor) отображает оба DAT-файла через единый интерфейс. В файле User.dat содержится информация, относящаяся к конкретным пользователям (например, предпочтительная настройка рабочего стола). В файле System.dat хранится информация, характеризующая данную систему, (например, настройка рабочего стола, принятая по умолчанию, аппаратные профили, параметры настройки сети и т. д.). Оба файла— User.dat и System.dat— являются скрытыми и хранятся в каталоге Windows 95/98. Следует отметить, что при установке Windows 95 система автоматически создает не только оба этих файла, но и резервные копии для каждого из них. Эти резервные копии называются, соответственно, USER.ОАО и SYSTEM.ОАО, и также представляют собой скрытые файлы в каталоге Windows 95 (в Windows 98 указанные файлы отсутствуют, т. к. в этой операционной системе применен новый, более прогрессивный метод поддержки целостности реестра). Резервные копии нужны на тот случай, если файлы User.dat и System.dat по той или иной причине будут повреждены. При каждой загрузке персонального компьютера Windows автоматически обновляет эти резервные копии, копируя текущие файлы реестра в файлы ОАО. Теоретически это позволяет всегда иметь на компьютере новейшую и наилучшую загрузочную конфигурацию (Last-best-boot Configuration).

 

Проблема, связанная с размером реестра

При обсуждении в данной главе трудностей использования INI-файлов упоминалось о проблемах, вызванных ограничением допустимого размера файла Win.ini. В реестре Windows NT/2000 эта проблема, казалось бы, была решена, однако ограничение размера реестра все же осталось. В то же самое время со стороны программ наметилась устойчивая тенденция к использованию реестра как базы данных и повышению требований к его объему. Изначально, все файлы реестра хранились в нерезидентном пуле (paged pool), суммарный размер которого в 32-разрядном ядре был фактически ограничен примерно до 160 Мбайт, с учетом виртуального адресного пространства ядра. Проблема возникла в виду того, что с появлением все больших "потребителей" реестра, таких как например Terminal Services и СОМ, значительный объем нерезидентного пула использовался исключительно для реестра, а для других компонентов, функционирующих в режиме ядра, оставалось слишком мало памяти.

 

Ограничение по размеру реестра в Windows NT/2000

В Windows NT 4.0/Windows 2000 существует возможность вручную установить ограничение на размер, до которого может разрастаться реестр. Чтобы установить ограничение на размер реестра Windows 2000, проделайте следующее:

1. Запустите утилиту Система (System) из Панели управления (Control Panel).

2. В появившемся на экране окне Свойства системы (System Properties) перейдите на вкладку Дополнительно (Advanced) и нажмите кнопку Параметры быстродействия (Performance Options). На экране появится одноименное диалоговое окно, показанное на рис. 1.7. Нажмите кнопку Изменить (Change) в группе Виртуальная память (Virtual memory). На экране появится диалоговое окно Виртуальная память (Virtual Memory), показанное на рис. 1.8, где в группе Размер системного реестра (Registry size) имеется поле Максимальный размер (МБ) (Maximum registry size (MB)). В этом поле можно задать максимально допустимый размер реестра.

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

Рис. 1.7. Диалоговое окно Параметры быстродействия

Рис. 1.8. Установка ограничения на размер реестра в Windows 2000

Расширение возможностей реестра в Windows XP

В отличие от Windows NT/2000, в Windows XP было снято ограничение размера реестра. Его программный код был переработан с учетом повышения производительности. В то же время это не отразилось на приложениях, т. к. по-прежнему используется существующий интерфейс программирования реестра (Registry API).

Новая реализация реестра предоставляет два ключевых преимущества: 

Таким образом, в Windows XP вы не найдете опции, позволяющей вам установить ограничение на размер реестра (рис. 1.9).

Рассмотрим указанные усовершенствования реестра Windows XP более подробно.

Рис. 1.9. В Windows XP отсутствует опция установки ограничения размера реестра

В Windows XP усовершенствован способ управления большими данными со стороны реестра. В версиях, предшествующих Windows XP, если какое-либо малоэффективное приложение, наращивало объем незначительными приращениями, при этом "расточительно" создавался файл реестра. В Windows XP эта проблема решается с помощью большой ячейки (big cell), в которой ячейки размером, превышающим 16 Кбайт, разделяются на цепочки ячеек по 16 Кбайт. Это снижает фрагментацию, при увеличении длин данных до определенного порога.

 

Когда следует браться за редактирование реестра?

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

Однако в конце концов может наступить и такой момент, когда, сколько бы вы ни пытались изменить настройки в Панели управления (Control Panel) или переключать значения с помощью Диспетчера устройств (Device Manager), добиться правильной работы устройства или опции будет невозможно. Именно на этот случай вы и должны знать, как обращаться с реестром и как редактировать его.

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

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

 

Альтернативы редактированию реестра

Непосредственное редактирование реестра, даже в тех случаях, когда оно необходимо, может при условии неумелого выполнения привести к большим неприятностям. Например, оно может вызвать ошибки в загрузке драйверов устройств или не позволить пользователю зарегистрироваться в системе. Поэтому, если вы чувствуете себя неуверенно или просто не можете позволить себе затратить значительное время для проведения восстановительных работ, не ставьте смелых экспериментов над реестром своей операционной системы (будь то Windows NT 4.0/Windows 2000 или Windows XP). Вполне возможно, что единственная ошибка приведет к необходимости переустановки операционной системы.

Внимание

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

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

Например, при установке новых устройств не рекомендуется вручную редактировать реестр — причиной этого является способ работы устройств, соответствующих спецификации Plug and Play. Как будет показано в главе 5, устройства этих типов фактически не имеют установочных параметров, задаваемых по умолчанию. Напротив, они разработаны таким образом, что если некоторое устройство запрашивает ресурс, уже используемый другим устройством Plug and Play, то настройка устройства Plug and Play может измениться, чтобы исключить аппаратный конфликт с новым устройством. Изменяя в реестре параметры этих устройств, вы тем самым задаете для них постоянные значения, которые Windows не сможет изменить, если другое устройство запросит тот же самый ресурс.

 

Установка нового устройства

Что происходит с системой при установке в ней нового устройства? Даже если Windows XP встречает новое устройство, на текущий момент не занесенное в реестр, и система не знает, как работать с таким устройством, то она прежде всего пытается идентифицировать его. Если новое устройство было успешно определено и распознано, то вы увидите небольшое всплывающее окно в нижнем правом углу монитора, в котором содержится сообщение о том, что система обнаружила новое устройство (рис. 1.10). Обратите внимание, что в этом случае система автоматически проинсталлирует драйвер устройства, сконфигурирует соответствующие настройки и через несколько секунд отобразит новое всплывающее окно, в котором сообщается, что новое устройство готово к использованию (рис. 1.11).

Рис. 1.10. Windows XP автоматически определяет новое устройство

Рис.1.11. Обнаруженное устройство успешно инсталлировано и сконфигурировано

В отличие от устройств Plug and Play, устройства, разработанные до выпуска Windows 95, имеют фиксированные параметры настройки. В этом случае задачи установки и конфигурирования нового устройства несколько усложняются, но действует одна общая рекомендация — прежде чем пытаться вносить изменения непосредственно в реестр, попробуйте добиться нужного результата с помощью программы Мастер установки оборудования (Hardware Wizard), которая в Windows XP снабжена новыми функциональными возможностями и улучшенным интерфейсом, даже по сравнению с Windows 2000. Для установки нового устройства в Windows XP необходимо выполнить следующее:

1. Откройте окно Панели управления (Control Panel), затем дважды щелкните мышью по значку Установка оборудования (Add Hardware), или же запустите утилиту Система (System) для того, чтобы открыть окно Свойства системы (System Properties), перейдите на вкладку Оборудование (Hardware), а затем нажмите кнопку Установка оборудования (Add Hardware Wizard). В обоих случаях откроется окно Мастер установки оборудования (Add Hardware Wizard), показанное на рис. 1.12. Нажмите кнопку Далее (Next).

Рис. 1.12. Первое окно Мастера установки оборудования в Windows XP

2. Мастер установки оборудования попытается определить новое устройство. Если это не удастся, будет отображено другое окно, предлагающее пользователю указать, подключено ли новое устройство (рис. 1.13). Мастер отобразит все необходимые параметры для настройки и последовательные инструкции. Для установки и конфигурирования нового устройства необходимо лишь следовать этим указаниям, выбрать необходимые опции и нажать кнопку Далее (Next) для продолжения. Кроме установки нового устройства, Мастер установки оборудования (Hardware Wizard) позволяет просмотреть список установленных устройств и устранить неполадки тех из них, которые не работают (рис. 1.14). Для установки нового устройства, которое не приводится в данном списке, выберите вариант Добавление нового устройства (Add a new hardware device) и щелкните по кнопке Далее (Next).

Рис. 1.13. Следующий экран Мастера установки оборудования

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

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

Рис. 1.16. Мастер установки нового оборудования отображает список классов устройств. Выберите значение Показать все устройства, если вы не видите нужную вам категорию устройств

3. Далее Мастер установки нового оборудования (Hardware Wizard) предлагает выбор метода поиска устройства — автоматический или же из списка (рис. 1.15). Поскольку Windows XP обеспечивает усовершенствованную поддержку аппаратного обеспечения, даже по сравнению с Windows 2000, не говоря уже о более ранних версиях, рекомендуется выбрать автоматический поиск. Как правило, система успешно определяет все устройства, правильно подключенные к системе, как Plug and Play, так и унаследованные (legacy devices). Таким образом, выбирать из списка вручную вам потребуется только в крайнем случае (рис. 1.16). Если вы не определите устройство даже в этом списке, установите опцию Показать все устройства (Show all devices) и щелкните по кнопке Далее (Next). В этом случае откроется следующее окно (рис. 1.17), содержащее длинный перечень поддерживаемых устройств.

Рис. 1.17. Список поддерживаемых устройств в стиле Windows NT/2000

Как уже говорилось, Мастер установки оборудования (Hardware Wizard) обнаружит все подключенные и правильно установленные устройства, даже если они не поддерживают Plug and Play. Если на данном этапе возникают затруднения, то в первую очередь рекомендуется убедиться, что устройство включено в список совместимых аппаратных средств (Hardware Compatibility List, HCL) операционной системы Windows XP, а затем проверить, правильно ли оно подключено к компьютеру и не используется ли оно другой программой. После того как на экране появится список обнаруженных устройств, завершите процедуру установки, следуя инструкциям Мастера установки нового оборудования (Hardware Wizard).

Метод установки и конфигурирования аппаратных устройств при помощи Мастера установки нового оборудования (Hardware Wizard) гораздо безопаснее непосредственного редактирования реестра, поскольку исключает риск утраты совместимости или возникновения других проблем. Но время от времени при добавлении новых устройств или изменении параметров уже установленных устройств может возникнуть необходимость в непосредственном редактировании реестра. Для многих пользователей представляет значительный интерес изменение настройки выделяемых устройству ресурсов. Вы уже знаете, что диспетчер конфигурации управляет этими параметрами автоматически при инсталляции нового устройства и загрузке Windows. Однако иногда может возникнуть необходимость в ручной настройке указанных параметров. Такая ситуация возможна, например, в случае аппаратного конфликта, который не может быть разрешен диспетчером конфигурации и реестром. Предположим, к примеру, что конфликтуют настройки IRQ и DMA для двух устройств. В этом случае для редактирования параметров реестра вы также можете использовать Диспетчер устройств (Device Manager).

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

 

Изменение конфигурации в Панели управления

Большая часть полезных установок системы и аппаратного обеспечения может быть изменена в Панели управления (Control Panel). Для выполнения этих задач вам не нужно прибегать к редактированию реестра.

 Примечание 

Не удивляйтесь и не смущайтесь, если вы не можете увидеть всех опций Панели управления (Control Panel) в Windows XP. По умолчанию, когда вы впервые запускаете Windows XP, в окне Панели управления (Control Panel) отображаются лишь базовые опции (рис. 1.18), в которых логически упорядочены системные установки. При этом обеспечиваются ссылки на соответствующие области и доступ к темам системы подсказок. Опытные пользователи Windows вероятно помнят, что подобное свойство было впервые представлено в Windows Millennium Edition. Новое оформление Панели управления (Control Panel), так называемый "вид по категориям" (Category View), предназначено главным образом для начинающих пользователей. Если вы предпочитаете работать с привычным для вас интерфейсом Панели управления (Control Panel), то можете вернуться к классическому виду (Classic View), щелкнув по ссылке Переключение к классическому виду (Switch to Classic View). После этого в окне Панели управления (Control Panel) будут отображены все имеющиеся опции (рис. 1.19).

Рис. 1.18. Новый дизайн Панели управления предоставляет вид по категориям, на котором по умолчанию отображены наиболее общие опции

Рис. 1.19. "Традиционный" вид Панели управления — классический вид-— содержит все имеющиеся опции

Разумеется, тем, кому приходилось устанавливать Windows XP и какое-то время работать с этой системой, удалось обратить внимание на множество внешних изменений и усовершенствований пользовательского графического интерфейса, заключающихся главным образом в двух направлениях. Теперь в Windows XP представлен поистине художественный выбор значков (пиктограмм), цветовых гамм, графических элементов, визуальных эффектов и т. п. В то же самое время, пользовательский интерфейс стал менее нагроможденным и более настраиваемым. Например, рабочий стол (desktop) по умолчанию почти пуст и на нем совершенно отсутствуют значки и ярлыки за исключением Корзины (Recycle Bin).

Рис. 1.20. Вкладка Панель задач в окне Свойства панели задач и меню "Пуск"

Одно из наиболее интересных усовершенствований относится к панели задач и меню Пуск (Start), которое теперь имеет другой вид и множество интересных опций настройки. Для того чтобы получить доступ к панели задач и меню Пуск (Start), нужно просто щелкнуть правой кнопкой мыши по панели задач и выбрать команду Свойства (Properties) из контекстного меню, или же запустить утилиту Панель задач и меню "Пуск" (Taskbar and Start Menu) из Панели управления (Control Panel). При этом появится окно Свойства панели задач и меню "Пуск" (Taskbar and Start Menu Properties) — рис. 1.20.

Как вы вероятно уже заметили, в Windows XP по умолчанию сходные кнопки панели задач объединены (некоторые пользователи приветствуют это свойство, других же оно раздражает). Если вы не принадлежите к числу приверженцев этого свойства, то просто заблокируйте его, сбросив флажок Группировать сходные кнопки панели задач (Group similar taskbar buttons) на вкладке Панель задач (Taskbar) в этом окне.

Также обратите внимание на группу опций Область уведомлений (Notification area) в нижней части окна. Если вас раздражают уведомляющие сообщения, которые вы постоянно видите в правом крайнем углу рабочего стола, щелкните кнопку Настроить (Customize) для того, чтобы открыть окно Настройка уведомлений (Customize Notifications), в котором имеется несколько опций для настройки уведомлений, отображаемых системой (рис. 1.21).

Рис. 1.21. Окно Настройка уведомлений

Меню Пуск (Start) стало обладать более гибкой настройкой. Для того чтобы настроить его по своему усмотрению, откройте окно Свойства панели задач и меню "Пуск" (Taskbar and Start Menu Properties) и перейдите на вкладку Меню "Пуск" (Start Menu) (рис. 1.22). Если вам не нравится новый стиль отображения меню Пуск (Start), вы можете перейти к "традиционному" виду этого меню, выбрав переключатель Классическое меню "Пуск" (Classic Start menu).

Рис. 1.22. Вкладка Меню "Пуск" в окне Свойства панели задач и меню "Пуск"

Вообще говоря, в Windows XP есть множество усовершенствований пользовательского интерфейса, одни из которых являются действительно полезными, а другие носят чисто "косметический характер". Активизация или блокировка этих компонентов может существенно снизить (или наоборот, повысить) производительность вашего компьютера. Именно поэтому в какой-то момент вы, вероятно, захотите заблокировать некоторые из этих элементов интерфейса. Для того чтобы настроить пользовательский интерфейс Windows XP, активизируя или блокируя какие-либо новые свойства системы, выполните следующие действия:

1. Запустите утилиту Система (System) из Панели управления (Control Panel). Откроется окно Свойства системы (System Properties). Перейдите на вкладку Дополнительно (Advanced) (см. рис. 1.2), затем нажмите кнопку Параметры (Settings) в группе Быстродействие (Performance).

2. Откроется окно Параметры быстродействия (Performance Options) на вкладке Визуальные эффекты (Visual Effects) (рис. 1.23). Для того чтобы активизировать все визуальные эффекты, выберите переключатель Обеспечить наилучший вид (Adjust for best appearance), а для того чтобы заблокировать все эффекты, щелкните переключатель Обеспечить наилучшее быстродействие (Adjust for best performance). Если вы хотите восстановить настройки, заданные по умолчанию, установите переключатель Восстановить значения по умолчанию (Let Windows choose what's best for my computer). Также обратите внимание, что вы можете установить любую комбинацию параметров настройки по своему усмотрению, отметив переключатель Особые эффекты (Custom) и установив соответствующие флажки в отображаемом списке.

Рис. 1.23. Вкладка Визуальные эффекты окна Параметры быстродействия

Отображение защищенных файлов операционной системы

Начиная с Windows 2000, разработчики начали реализовывать в пользовательском интерфейсе некоторые меры, направленные на защиту системы от ошибочных действий начинающих пользователей. Среди этих новшеств так называемые сверхскрытые ("super-hidden") файлы. По умолчанию. Проводник (Explorer) не отображает файлы, которые имеют атрибуты "Скрытый" (Hidden) и "Системный" (System). Эти файлы являются защищенными файлами операционной системы, в которые обычному пользователю нельзя внести изменения и даже увидеть их. Очевидно, что по умолчанию в список таких файлов входят все файлы, необходимые для запуска операционной системы. Подобные свойства также имеются в Windows Millennium Edition, и естественно есть в Windows XP.

Рис. 1.24. Вкладка Вид окна Свойства папки

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

Для получения возможности видеть такие файлы в Проводнике (Explorer), запустите утилиту Свойства папки (Folder Options) из Панели управления (Control Panel) и перейдите на вкладку Вид (View) (рис. 1.24). Установите переключатель Показывать скрытые файлы и папки (Show hidden files and folders) и сбросьте флажок Скрывать защищенные системные файлы (рекомендуется) (Hide protected operating system files (Recommended)) в списке Дополнительные параметры (Advanced settings). Теперь в Проводнике (Explorer) и папке Мой компьютер (My Computer) будут показаны все файлы, включая также те, которые защищены операционной системой.

 Примечание

В Windows 2000 вам необходимо зарегистрироваться в локальной системе как Администратор (Administrator) или от имени пользователя, входящего в группу Администраторы (Administrators) (в противном случае вы не получите желаемый результат).

 

Другие инструментальные средства для изменения реестра

Кроме утилит Панели управления (Control Panel) и других инструментальных средств графического пользовательского интерфейса, предоставляемых Windows XP, существуют дополнительные инструментальные средства, предназначенные для изменения реестра. Они перечислены ниже.

 

Резюме

В данной главе приведено общее описание реестра Windows NT/2000/XP, его истории, роли и возможностей, а также рассмотрено его место в общей архитектуре Windows. В последующих главах многие из обсуждавшихся здесь вопросов будут раскрыты более полно и подробно.

Используются технологии uCoz