Информатика. Лекции. Краткая история компьютерной техники Первые компьютеры: Z3, Colossus, eniac

Вид материалаЛекции

Содержание


Ты откуда, и зачем пришел?
Плюсы и минусы реестра
Зачем реестру ульи?
Структура реестра: ульи
Hkey_current_config —
Структура реестра: основные типы ключей
Структура реестра: другие типы ключей
Обслуживание и оптимизация реестра
Работа с реестром
Импорт и экспорт
Файлы реестра
Файлы ульев реестра
Текстовые файлы
Сжатие реестра
System State
Резервное копирование и восстановление
Другие программные средства для работы с реестром
Подобный материал:
1   ...   5   6   7   8   9   10   11   12   ...   19
Реестр

Ты откуда, и зачем пришел?

В ранних версиях Windows (Windows 3.1) сведения о конфигурации и параметрах операционной системы, настройки различных приложений и периферийных устройств хранились в ini-файлах.

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

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

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

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

Плюсы и минусы реестра

Как любое нововведение, реестр имеет как свои плюсы, так и свои минусы.

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

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

Кроме того, некоторые качества реестра успешно используют в своей работе различные вирусы. Например, большинство троянов и других вирусов прописывают в реестр инструкцию о собственном запуске еще до входа в систему в раздел HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ или ...\RunOnce\ и …\RunOnceEx\ (отсюда программа загружается всего один раз, а затем параметр удаляется).

Аналогичный параметр есть и для локального пользователя — HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run или …\RunOnce\.

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

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

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

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

Зачем реестру ульи?

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

Конечными элементами дерева реестра являются ключи или параметры, которые делятся на три типа: строковые (string) — например, “c:\winnt”; двоичные (binary) — например, 10 82 A0 8F, максимальная длина такого ключа 16 Кб; dword — этот тип ключа занимает 4 байта и отображается в шестнадцатеричном и десятичном видах, например, 0x00000020 (32). В скобках обычно указано десятичное значение ключа.

Для Windows 95/98 реестр — это файлы user.dat и system.dat, которые располагаются в системной директории, а для Windows ME был добавлен еще один файл classes.dat.

В свою очередь для Windows 2000/NT/XP реестр — это файлы, расположенные в %SystemRoot%\System32\Config, где %SystemRoot% — системная директория. Здесь каждый улей представлен отдельным файлом (default, sam, security, software, system), кроме того личный пользовательский файл ntuser.dat находится в директории %USERPROFILE%, определенной при установке операционной системы.

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

Структура реестра: ульи

Существует шесть главных ульев, каждый из которых содержит определенную информацию, записанную в реестре: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG, HKEY_DYN_DATA.

HKEY_CLASSES_ROOT — раздел содержит информацию о зарегистрированных в Windows типах файлов, что позволяет открывать их двойным щелчком мыши, а также информацию для OLE и операций drag-and-drop. Определенный раздел или параметр существуют в HKEY_CLASSES_ROOT, если соответствующий раздел или параметр существуют в [HKEY_LOCAL_MACHINE\SOFTWARE\Classes] или [HKEY_CURRENT_USER\SOFTWARE\Classes]. Если раздел или параметр имеются в обоих местах, в HKEY_CLASSES_ROOT появится значение из HKEY_CURRENT_USER.

HKEY_CURRENT_USER — здесь содержатся настройки оболочки пользователя, вошедшего в систему локально (в отличие от удаленного пользователя), включая переменные среды, параметры рабочего стола, сетевых подключений, принтеров и приложений. Это поддерево является псевдонимом поддерева HKEY_USERS и указывает на HKEY_USERS\учетный_код_текущего_пользователя. Если на компьютере работает один пользователь и используется обычный вход в Windows, то значения раздела берутся из подраздела HKEY_USERS\.DEFAULT.

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

HKEY_USERS содержит сведения о загруженных профилях пользователя и профиль, используемый по умолчанию. Сюда включены также сведения, появляющиеся в разделе HKEY_CURRENT_USER. Удаленные пользователи не имеют профилей в этом разделе сервера, их профили находятся в реестрах собственных компьютеров. Каждый пользователь представлен подключом S-ID, расположенным под главным разделом.

HKEY_CURRENT_CONFIG — этот раздел содержит информация о конфигурации устройств Plug&Play и сведения о конфигурации компьютера с переменным составом аппаратных средств.

HKEY_DYN_DATA — здесь хранятся динамические данные о состоянии различных устройств, установленных в компьютере. Именно эти сведения отображаются в окне «Свойства: Система» вкладки «Устройства», вызываемой из Панели управления. Данные этого раздела изменяются самой операционной системой, так что редактировать что-либо вручную не рекомендуется.

Структура реестра: основные типы ключей

Каждый из ключей (key) реестра имеет как минимум один параметр (entry), содержащий значение (value), которые бывают следующих типов: REG_BINARY, REG_DWORD, REG_EXPAND_SZ, REG_MULTI_SZ, REG_SZ.

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

REG_DWORD — тип данных, представленных целым числом (4 байта). Используется обычно для значений типа boolean, где 0 переводит параметр в состояние “disabled” — отключено, а 1 — “enabled”, активировано. Также этот тип предоставляет множество параметров для драйверов устройств и служб. Может отображаться в двоичном, шестнадцатеричном и десятичном форматах.

REG_EXPAND_SZ представляет собой тип данных, который содержит некоторые переменные, динамически заменяемые, когда приложение обращается к параметру. Например, переменную “%SystemRoot %” заменит фактическое местоположение директории, в которой находятся системные файлы.

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

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

Структура реестра: другие типы ключей

Помимо основных типов данных, в реестре есть данные еще нескольких типов.

REG_DWORD_LITTLE_ENDIAN — аналогичен REG_DWORD. Представляет 32-битное число. Младший байт хранится в памяти первым. Данный тип очень часто используется для хранения чисел в компьютерах под управлением Windows 2000 и Windows 98.

REG_DWORD_BIG_ENDIAN — 32-битное число, в нем, наоборот, старший байт хранится в памяти первым.

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

REG_NONE — неопределенное значение.

REG_QWORD — 64-битное число.

REG_QWORD_LITTLE_ENDIAN — 64-битное число в “little-endian” формате. Младший байт хранится в памяти первым.

REG_RESOURCE_LIST — последовательность вложенных массивов, разработанная для хранения списка ресурсов аппаратного компонента или драйвера. Используется только в HKEY_LOCAL_MACHINE\HARDWARE.

REG_FULL_RESOURCE_DESCRIPTOR —Дескриптор (описатель) аппаратного ресурса. Применяется только в HKEY_LOCAL_MACHINE\HARDWARE.

REG_RESOURCE_REQUIREMENTS_LIST —Список необходимых аппаратных ресурсов. Используется только в HKEY_LOCAL_MACHINE\HARDWARE.

Обслуживание и оптимизация реестра

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

Чтобы упростить жизнь своему реестру, а значит и себе, достаточно придерживаться нескольких простых правил:
  1. не устанавливайте и не удаляйте слишком часто программное обеспечение, так как это приводит к фрагментации и «засорению» реестра;
  2. после удаления программного обеспечения избавляйтесь от оставшихся ключей вручную или с использованием специализированных программных средства (о них читайте ниже);
  3. избегайте установки пакетов, тесно интегрирующихся с операционной системой (таких как MS Office, Borland, PhotoShop), это программное обеспечение сильно влияет на быстродействие в целом, а также может привести к краху системы в случае удаления;
  4. возьмите за правило деинсталлировать программы с помощью Ashampoo UnInstaller, Professional Uninstaller и других, они помогают полностью избавиться от следов программы после удаления;
  5. время от времени делайте профилактику своего реестра: прогоняйте его «чистильщиками» реестра, программами из пакета Norton Utilities, RegCleaner'ом, GlitchRemover'ом и так далее, сжимайте данные реестра, удаляя в нем пустые строки, оставшиеся после деинсталляции программного обеспечения.

Работа с реестром

Операционная система Microsoft Windows предлагает стандартное средство для работы с реестром — редактор реестра regedit (regedit.exe), который имеется в большинстве версий Microsoft Windows. Редактор позволяет просматривать, редактировать или искать данные в системном реестре. Для его запуска достаточно нажать Пуск, выбрать пункт Выполнить и написать “regedit”.

Альтернативный редактор реестра regedt32 (regedt32.exe) доступен для использования в Windows NT/2000 (в XP для этих целей служит regedit.exe), он имеет дополнительные возможности, которые отсутствуют в стандартном редакторе. В первую очередь, это возможность просматривать и изменять политику безопасности работы с реестром (разрешение редактирования реестра конкретным пользователям), создавать и изменять типы значений REG_EXPAND_SZ и REG_MULTI_SZ (возможность редактирования значений этих типов отсутствует в стандартном редакторе regedit).

Работа с редактором реестра очень проста и напоминает работу с проводником. Для просмотра ключей реестра достаточно раскрыть нужный улей (нажатием на знак [+] или двойным щелчком мыши). Создание и изменение параметров производится с помощью контекстного меню, вызываемого правой кнопкой мыши. Для переименования параметров можно использовать быструю клавишу F2, а для поиска ключей/параметров/значений — F3.

Если Вы в чем-то не уверены, не изменяйте значения, всегда делайте резервные копии файлов реестра и записывайте внесенные изменения. Эти простые методы безопасности помогут избежать множества неприятных моментов.

Импорт и экспорт

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

Существует четыре формата сохраняемых файлов:

Файлы реестра — это формат, появившийся в Windows 2000/XP. Редактор реестра Windows 2000 обладает обратной совместимостью и может обрабатывать файлы, созданные в Windows 9x. Но если Вы экспортировали файл в Windows 2000/XP и перенесли его на Windows 9x, то необходимо вручную изменить первую строку “Windows Registry Editor Version 5.00” на “REGEDIT4” (естественно, без кавычек).

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

Текстовые файлы — обычный текстовый формат, в котором данные разбиты на строки с подробным описанием каждого элемента и его значений.

Файлы реестра Win9X/NT4 — старый формат, знакомый пользователям Windows 95/98/NT. В нем данные представлены в текстовом формате, параметры и значения можно редактировать, добавлять и удалять. Это наиболее удобный формат хранения данных реестра, так как он легко переносится на разные версии операционной системы.

[Параметры командной строки Редактора реестра]

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

Сжатие реестра

В Windows 9x для сжатия реестра достаточно открыть редактор реестра с параметром командной строки /с — regedit.exe /c. После перезагрузки данные реестра будут оптимизированы.

В Windows NT для уплотнения файлов реестра может быть использована следующая процедура. Сделайте резервные копии всех системных файлов, включая реестр. Выполните из командной строки "RDISK /S-" для обновления резервных копий в %systemroot%\repair. Данные реестра при этом будут несколько упорядочены и сжаты. Распакуйте эти файлы во временную директорию:

EXPAND %systemroot%\REPAIR\DEFAULT._ %temp%\DEFAULT

EXPAND %systemroot%\REPAIR\SAM._ %temp%\SAM

EXPAND %systemroot%\REPAIR\SECURITY._ %temp%\SECURITY

EXPAND %systemroot%\REPAIR\SOFTWARE._ %temp%\SOFTWARE

EXPAND %systemroot%\REPAIR\SYSTEM._ %temp%\SYSTEM

Осталось файлы реестра из %systemroot%\system32\config заменить их сжатыми версиями из временной папки %temp%. В зависимости от того, на диске какой файловой системы находятся системный файлы, для этого понадобится перезагрузиться в DOS, или загрузить другую версию Windows NT.

В Windows 2000/XP/2003 для уменьшения размера реестра поможет стандартная утилита «Программа архивации» (%systemroot%\System32\ntbackup.exe), но прежде обязательно создайте резервные копии файлов реестра (%systemroot%\System32\config).

После запуска утилиты по необходимости перейдите в расширенный режим. Выберите закладку «Архивация», в левом окне отметьте System State. Этим выбирается параметр архивирования только системных файлов и ульев реестра, а также классов COM+. Теперь смело жмите кнопку «Архивировать». При этом размер файла архивации с расширением .bkf может быть в пределах ~300 Mb, так что найдите свободное место (после архивации файл не понадобится, и его можно будет удалить). Если все прошло успешно, Вы увидите сообщение о завершении архивации.

Программа архивации создаст в папке %systemroot%\Repair сжатые файлы реестра, которыми необходимо заменить старые. Для этого можно перезагрузиться в DOS, и уже там произвести копирование.

Резервное копирование и восстановление

В Windows 95 есть утилита, которая позволяет создавать резервные копии системного реестра, — Microsoft Configuration Backup (cfgback.exe) С помощью этой утилиты можно создать до девяти различных резервных копий реестра, которые хранятся с расширением .rbk в системной директории Windows. Если система используется несколькими пользователями, cfgback.exe не будет поддерживать файл user.dat. Для восстановления резервной копии файл .rbk должен находиться на момент восстановления в системной директории Windows, а восстановить его может только Microsoft Configuration Backup.

Операционные системы Windows 98/Me автоматически создают резервные копии реестра при каждый загрузке операционной системы, кроме того, резервные копии можно создавать вручную, используя утилиту «Проверка реестра» (ее можно вызвать, выполнив команду scanregw.exe из пункта Выполнить меню Пуск).

В Windows Me также можно пользоваться контрольными точками для восстановления последней успешной конфигурации. Эти контрольные точки создаются в System Restore.

Можно также восстановить данные из MS-DOS. Для этого выберите в разделе Завершение работы меню Пуск пункт «Перезагрузить компьютер в режиме эмуляции MS-DOS» (“Restart The Computer In MS-DOS Mode”). После перезагрузки перейдите в системную директорию Windows. Далее последовательно выполните следующие команды:

attrib -h -r -s system.dat

attrib -h -r -s system.da0

copy system.da0 system.dat

attrib -h -r -s user.dat

attrib -h -r -s user.da0

copy user.da0 user.dat

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

Если и это не помогло в решении проблемы, замените при копировании файл system.da0 на system.1st — он был создан при установке Windows, это поможет уже в операционной системе найти источник проблемы и устранить его.

В Windows NT/2000/XP имеется мощная система восстановления данных в случае возникновении неполадок. Рекомендуется пользоваться именно ею для восстановления реестра в прежнем состоянии. Также возможно восстановление реестра благодаря резервным копиям файлов, которые размещены в %SystemRoot%\System32\Config.

Другие программные средства для работы с реестром

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

Зачем они нужны? Дело в том, что если в Windows XP редактор довольно функционален, работает со всеми типами данных и позволяет давать права на доступ к конкретным ульям, а также поддерживает избранное, то в других операционных системах с regedit больше проблем (достаточно одной — поддерживаются не все типы данных).

RegHance (ссылка скрыта) позволяет использовать закладки, быстрые операции с разделами и имеет более привлекательный вид, чем обычный regedit. Еще более удобен в работе RegWorks (ссылка скрыта). В нем есть все, что необходимо для работы плюс такая необходимая вещь как монитор. Аналогичное средство есть еще и в RegMon (ссылка скрыта). RegWorks позволяет отслеживать обращения к реестру других программ, по фильтру и по маске

Другим интересным приложением является