+7 (495) 229-0436 | shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 |
|
|
Архитектура системного реестра Windows. Часть 217.02.2014 16:27
Dmitry Bulanov
КустыКак уже говорилось ранее, компонент исполнительной системы, который и реализует сам реестр операционных систем Windows, располагается на диске не одним файлом, а в виде набора нескольких файлов, которые называются кустами (в некоторой документации вы можете увидеть название "улей", что является синонимом. Сам термин hive переводится как "куст" или "улей"). В каждом кусте размещена группа разделов, называемая деревом реестра, где начальная точка дерева имеет название корня, под которым уже находятся прочие подразделы с их параметрами. Причем, корень дерева реестра не стоит путать с корневыми разделами, так как это разные вещи. Диспетчером конфигурации (исполнительная система, реализующая реестр) определяются пути с полными именами файлов всех кустов на локальных компьютерах. Вспомогательные файлы для всех кустов за исключением HKEY_CURRENT_USER в операционных системах Windows находятся в папке %SystemRoot%System32Config. Во время загрузки операционной системы диспетчер конфигурации в разделе HKLMSYSTEMCurrentControlSetControlHivelist определяет путь к каждому из существующих кусов и удаляет пути к кустам, выгруженным из памяти. Затем, для формирования привычной древовидной структуры системного реестра, диспетчер конфигурации создает корневые разделы реестра и связывает друг с другом существующие кусты. Как вы увидите немного ниже, кусты HKEY_LOCAL_MACHINEHARDWARE и HKLMSYSTEMClone (который вы сможете найти только в Windows 2000) являются изменяемыми и не имеют сопоставимых файлов, то есть такие кусты существуют временно и операционная система манипулирует ими только в памяти. Все кусты реестров с их местоположениями указаны в следующей таблице:
Таблица 1. Файлы, соответствующие кустам реестра Для того чтобы в самом начале загрузки операционной системы, пока еще нет поддержки виртуальной памяти библиотека системного ядра Ntldr.dll могла считывать все кусты (например, HKLMSYSTEM) в физическую память, Windows ограничивает размеры кустов реестра. В отличие от операционных систем Windows XP и Windows Server 2003, где лимит на размер куста составлял 200 МБ или до четверти физической памяти, установленной в системе, начиная с операционных систем Windows Vista и Windows Server 2008 размер увеличен до 400 МБ или половины физической памяти, установленной в системе (в операционной системе Windows 2000 размер куста не мог превышать 12 МБ). В 64-разрядных операционных системах предельным размером куста является 1,5 ГБ. Общий размер загружаемых данных реестра ограничен в связи с тем, что для хранения кустов реестра операционная система использует пул подкачиваемой памяти, который определяется диспетчером памяти при инициализации на основании многих факторов. Причем, данные системного реестра не могут занимать более 80% этого пула. В связи с установленными операционной системой лимитами на размер кустов реестра, количество одновременно входящих пользователей в операционную систему Windows при помощи служб терминалов может быть ограничено, так как каждый профиль пользователя увеличивает размер загруженных кустов. Для того чтобы избежать перерасхода виртуальной памяти для кустов реестра, в 32-разрядных версиях операционной системы Windows, диспетчер конфигурации использует не пул подкачиваемой памяти, а функции проецирования в системную память, предоставляемые диспетчером памяти, что позволяет проецироваться только тем частям кустов реестра, к которым происходят обращения только в данный момент. При помощи этого, ограничений на общий размер реестра нет, и общий размер загруженных кустов не сказывается на масштабируемости служб терминалов. В 64-разрядных системах в связи с тем, что виртуальное адресное пространство довольно велико, вместо пула подкачиваемой памяти используются дополнительные требования проецирования в системную память. Специфическим типом разделов является символьная ссылка, позволяющая диспетчеру конфигурации связывать кусты для организации реестра. Символьная ссылка - это раздел, который переадресует диспетчер конфигурации к другому разделу. Если вкратце рассмотреть структуру кустов системного реестра, то кусты делятся диспетчером конфигурации на несколько логических единиц, размером по 4096 байт, которые называются блоками, кратно размеру которых, увеличивается и сам размер куста. Первый блок куста, который включает в себя глобальную информацию о самом кусте, а также сигнатуру, идентифицирующую файл как куст, порядковые номера, номер версии формата, внутреннее имя файла куста, метку времени последней записи в куст, а также контрольную сумму, называется базовым. Данные, содержащиеся в кусте реестра, упорядочиваются при помощи специальных контейнеров, которые называются ячейками. В этих ячейках могут храниться разделы, параметры, список подразделов, дескриптор защиты или список параметров раздела. При присоединении ячеек к кусту, сам куст увеличивается и для этого операционная система создает такой блок, который называется приемником, размер которого равен размеру самой ячейки. На следующей иллюстрации вы увидите схематическое изображение внутренней структуры куста реестра: Изменение данных реестраНа данный момент существует множество приложений (включая программное обеспечение сторонних разработчиков), которые предназначены для внесения изменений системного реестра. Для редактирования реестра программа должна использовать функции, с которыми, возможно, вы уже знакомы по утилите Process Monitor (такие функции как RegCreateKeyEx, RegQueryValueEx, RegSetValueEx и RegDeleteKeyEx). К основным средствам, предназначенным для редактирования реестра, относятся редактор реестра, групповые политики, файлы реестра, утилита командной строки REG, а также сценарии, написанные на языках сценариев VBScript или JScript, которые будут вкратце рассмотрены в следующих подразделах. Редактор реестраУтилита "Редактор реестра" (Regedit.exe) - это средство, которое, по меньшей мере, хотя бы один раз открывал каждый пользователь операционных систем Windows. Редактор реестра предназначен для просмотра и редактирования разделов и параметров реестра, поддерживает настройку параметров безопасности, позволяет восстанавливать реестр из резервной копии, а также сохранять и загружать файлы куста. Помимо этого, при помощи данного средства вы можете управлять системным реестром компьютеров, расположенных в вашей сети. Для того чтобы открыть данную утилиту, достаточно в диалоговом окне "Выполнить" ввести Regedit.exe . Редактор реестра имеет удобный пользовательский интерфейс, где слева, в области переходов, вы можете увидеть набор разделов реестра локального или удаленного компьютера, которые отображаются в виде папок, а справа, в области сведений вы можете найти параметры, которые входят в состав выбранного вами раздела. При просмотре системного реестра удаленного компьютера для вас будут доступны только два корневых раздела - HKEY_USERS и HKEY_LOCAL_MACHINE. Несмотря на то, что редактор реестра позволяет изменять большинство параметров, изменения стоит вносить очень осторожно, так как неправильное изменение параметров может привести к серьезным неисправностям. На следующей иллюстрации вы можете увидеть редактор реестра. Групповые политикиГрупповые политики - это компонент операционной системы, позволяющий управлять большинством конфигурационных параметров пользователей и компьютеров. Основана групповая политика на конкретных параметрах политики, которые обычно называются политиками, определяющими определенную настройку для применения. В большинстве случаев, этими политиками можно управлять непосредственно из оснастки "Редактор локальной групповой политики" на локальных компьютерах или компьютерах, расположенных в рабочей группе, а в доменной среде для управления конфигурацией групповых политик применяется оснастка "Управление групповой политикой". В данной оснастке, в узле "Административные шаблоны", политики конфигурации пользователя модифицируют значения параметров реестра в разделе HKEY_CURRENT_USER, а политики конфигурации компьютера - в разделе HKEY_LOCAL_MACHINE. Сам по себе, административный шаблон является текстовым файлом, указывающим на изменение конкретных параметров системного реестра, а также генерирующий пользовательский интерфейс для настройки параметра административных шаблонов непосредственно в оснастке редактора групповых политик. В большинстве случаев, административные шаблоны, предназначенные для конфигурации компьютера, модифицируют значения параметров в разделах HKLMSoftwarePolicies и HKLMSoftwareMicrosoftWindowsCurrentVersionPolicies, а административные шаблоны конфигурации пользователя - HKCUSoftwarePolicies и HKCUSoftwareMicrosoftWindowsCurrentVersionPolicies. При необходимости, помимо предустановленных административных шаблонов вы можете добавлять новые административные шаблоны, которые состоят из двух файлов - .admx и .adml. Файлы реестраДобавлять, изменять, а также удалять подразделы и значения параметров реестра вы можете не только при помощи утилиты "Редактор реестра". Редактор реестра использует REG-файлы, предназначенные для импорта и экспорта подразделов и значения параметров. Вы можете использовать такие файлы для распространения изменений параметров реестра на компьютеры, расположенные в локальной сети. В связи с тем, что после выполнения REG-файлов, их содержимое сливается с системным реестром локального компьютера, при создании таких файлов будьте внимательными, так как при неправильном использовании REG-файлов у вас могут возникнуть серьезные неполадки. При создании REG-файла необходимо соблюдать следующий синтаксис: Версия_редактора_реестра Пустая строка [Путь_реестра1] "Наименование_параметра1"="Тип_данных1:Значение_данных1" "Наименование_параметра2"="Тип_данных2:Значение_данных2" Пустая строка [Путь_реестра2] "Наименование_параметра3"="Тип_данных3:Значение_данных3" Рассмотрим каждую из составляющих REG-файла: Версия_редактора_реестра - это заголовок данного файла, без которого параметры, указанные в REG-файле не будут импортироваться в системный реестр. В качестве такого заголовка должна быть указана строка с текстом Windows Registry Editor Version 5.00. иногда вместо данного заголовка вы можете встретить REGEDIT4, который является форматом устаревших версий Windows 98/NT 4.0 Пустая строка определяет начало нового раздела реестра, тем самым упрощая возможность анализировать содержимое, который в таких файлах называется путем реестра. Путь_реестраХ представляет собой раздел или подраздел реестра, включающий первое импортируемое значение. При указании пути реестра, вы должны отделять каждый уровень косой чертой и заключать весь путь в квадратные скобки. В том случае, если последний уровень в реестре отсутствует - при импорте REG-файла будет создан такой подраздел. Наименование_параметраХ является названием импортируемого параметра реестра. Название параметра всегда должно быть заключено в кавычки и перед указанием его значения должен быть указан знак равенства. В том случае, если параметр с таким именем существует, его значение будет изменено согласно тому, которое указано в REG-файле, а если такого параметра не существует, то он автоматически будет создан с указанным вами значением. Тип_данныхХ определяет тип данных параметра реестра и всегда указывается после знака равенства. После типа данных перед значением данного параметра должно стоять двоеточие. Все типы данных были перечислены в одном из предыдущих разделов данной статьи. Значение_данныхХ следует сразу после двоеточия и должно иметь формат, соответствующий модифицируемому типу данных параметра. Помимо этих основных составляющих, для предоставления более удобного анализа REF-файла, вы можете добавлять комментарии. Все строки, начинающиеся с точки с запятой являются комментариями. Пример REG-файла: Windows Registry Editor Version 5.00 ;Отключить удаленный доступ к реестру [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRemoteRegistry] "Start"=dword:00000004 Утилита командной строки REGУтилита командной строки REG предназначена для просмотра разделов и параметров реестра, а также разнообразных манипуляций над ними. Данная утилита поддерживает определенный набор подкоманд, при помощи которых можно выводить список элементов раздела, сравнивать подразделы или их параметры, импортировать в реестр заданные кусты, сохранять копию указанных подразделов, а также выполнять множество различных действий. Для этой утилиты доступны следующие подкоманды:
Каждая подкоманда включает в себя определенные параметры, позволяющие выполнять конкретные действия. Например, параметр /s подкоманды REG add указывает символ, используемый в качестве разделителя данных для параметров типа REG_MULTI_SZ, а одноименный параметр подкоманды REG copy используется для копирования всех подразделов и параметров. Для примера, добавим в контекстное меню ярлыка "Компьютер" команду "Программы и компоненты", просмотрим внесенные изменения, а затем удалим эту команду непосредственно из командной строки. Для этого необходимо выполнить следующие команды: REG add HKLMSOFTWAREClassesCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}shell66 /ve /t REG_SZ /d "Программы и компоненты" REG add HKLMSOFTWAREClassesCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}shell66command /ve /t REG_SZ /d "control appwiz.cpl" REG query HKLMSOFTWAREClassesCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}shell66command /s /ve REG delete HKLMSOFTWAREClassesCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}shell66command REG query HKLMSOFTWAREClassesCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}shell66command где в командах REG add параметр /ve указывает на то, что модифицироваться должен параметр с пустым именем (по умолчанию), параметр /t отвечает за используемый тип данных, а параметр /d определяет реальное значение, помещаемое в реестр. Параметр /s команды REG query позволяет вывести все вложенные подразделы, а при помощи параметра /ve можно увидеть значения параметров по умолчанию. Все вышеперечисленные действия можно увидеть на следующей иллюстрации: Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |