Реестр, загрузка системы и предотвращение сбоев

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

Примечание

Как уже отмечалось, процесс загрузки Windows XP очень напоминает загрузку Windows NT/2000. И это неудивительно, поскольку система Windows XP была создана на основе ядра Windows NT/2000. Однако в этой области имеется несколько усовершенствований, которые будут отмечены в этой главе. К ним относятся использование логического упреждения (logical prefetching) для ускорения загрузки, модернизация загрузчика, а также усовершенствование процесса загрузки системы в целом.

Важность роли системного реестра невозможно переоценить, поскольку он нужен уже на этапе работы загрузчика. Так, если на этапе работы загрузчика улей SYSTEM, необходимый в том числе и для загрузки драйверов, не будет обнаружен (или окажется поврежденным), то на экране появится то самое сообщение об ошибке:

Windows Could not start because the following file is missing or corrupt: WINNTSYSTEM32CONFIGSYSTEM You can attempt to repair this file by Starting Windows 2000 Setup using the original Setup floppy disk of CD-ROM. Select 'r' at the first screen to repair.

Улей реестра SYSTEM в работающей системе видим для пользователей в составе дерева HKEY_LOCAL_MACHINE. Этот улей определяет порядок загрузки всех драйверов системы, и доступ к нему получают как загрузчик операционной системы (NTLDR), так и Диспетчер ввода/вывода (I/O Manager).

Каждый драйвер, существующий в системе, имеет свой ключ в составе ключа реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices. Любой из таких ключей, в свою очередь, имеет в своем составе параметр start. Значение, присвоенное параметру start, имеющемуся в составе ключа каждого конкретного драйвера, определяет, на каком этапе загрузки системы производятся загрузка и инициализация данного драйвера.