Установка и настройка Windows 2000

Раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\Select



Рисунок 2.1. Раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\Select

По умолчанию загрузчик использует набор управляющих параметров, определяемый значением "Default". Если пользователь выбрал последнюю удачную конфигурацию, то загрузчик использует набор управляющих параметров, определяемых значением LastKnownGood. На основании сделанного пользователем выбора и значения раздела Select загрузчик определяет, какой из наборов управляющих параметров (ControlSetOOx) будет использоваться. После этого загрузчик устанавливает значение Current раздела Select (Рисунок 2.1) на номер набора управляющих параметров, который он будет использовать.

Далее загрузчик сканирует все сервисы (службы), определенные разделом реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services и ищет драйверы устройств, для которых параметр Start равен 0x0 (такое значение указывает на то, что драйверы должны быть загружены, но не инициализированы). Как правило, драйверы с такими значениями представляют собой низкоуровневые драйверы устройств, например, драйверы дисков. Значение Group для каждого драйвера устройства определяет порядок, в котором загрузчик должен его загружать. Раздел HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\ServiceG roupOrder реестра определяет порядок загрузки.

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

Инициализация ядра

В системах Windows 2000 об инициализации ядра сигнализирует появление графической заставки. Это — чисто "косметическое" отличие от Windows NT 4.0, которое не меняет принципов загрузки Windows 2000 по сравнению с предыдущей версией системы.

Хотите убедиться в справедливости сказанного? Нет ничего проще. Добавив параметр /sos в строку файла Boot.ini, управляющую содержимым меню загрузчика и режимом загрузки операционной системы, перезагрузите компьютер. Использование этой опции позволяет пользователю видеть всю последовательность загрузки драйверов. На фоне красивой графической заставки, сигнализирующей о начале инициализации ядра, вы увидите нечто похожее на приведенное ниже сообщение:

Microsoft ® Windows 2000 Server (TM) (Build 2195)

1 System Processor (64 MB Memory)

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

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

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



Инициализирует низкоуровневые драйверы устройств, загруженные на предыдущей стадии
Загружает и инициализирует остальные драйверы устройств
Запускает программы, например Chkdsk, которые должны отработать прежде, чем будут загружены какие-либо сервисы
Загружает и инициализирует сервисы
Создает файл подкачки pagefile.sys
Запускает подсистемы, необходимые для работы Windows 2000
Загрузка и инициализация драйверов устройств

Теперь ядро инициализирует низкоуровневые драйверы устройств, которые были загружены на стадии загрузки ядра. В случае ошибки при инициализации одного из драйверов система предпринимает корректирующее действие, основываясь на данных, определенных параметром реестра HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\DriverName\ErrorControl.

Далее Ntoskrnl.exe сканирует реестр, на этот раз — в поисках драйверов устройств, для которых значение раздела HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\DriverName\Start установлено в 0x01. Это всегда так: значение Group для каждого драйвера устройства определяет порядок в котором производится их загрузка. Раздел реестра HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\ServiceGroupOrder определяет порядок загрузки.

В отличие от фазы загрузки ядра, драйверы устройств, для которых значение Start установлено на 0x01, загружаются не за счет вызовов BIOS или программ ПЗУ, а с помощью драйверов устройств., загруженных на стадии загрузки ядра и только что инициализированных на этой стадии. Обработка ошибок в процессе инициализации этой группы драйверов устройств также основывается на значении параметра ErrorControl для соответствующих драйверов устройств.

Загрузка сервисов

Диспетчер сеансов (Smss.exe) запускает высокоуровневые подсистемы и сервисы (службы) Windows 2000. Информация, предназначенная для Диспетчеpa сеансов, находится в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\SessionManager. Диспетчер сеансов исполняет инструкции, которые содержатся в следующих элементах реестра:

Параметр BootExecute
Раздел Memory Management
Раздел DOS Devices
Раздел Subsystems
Параметр BootExecute

Параметр BootExecute реестра содержит одну или несколько команд, которые Диспетчер сеансов выполняет перед загрузкой сервисов. Значением по умолчанию для этого элемента является Autochk.exe, т. е. версия Chkdsk.exe для Windows 2000. Приведенный ниже пример показывает установку этого значения, задаваемую по умолчанию:

BootExecute: REG_MULTI_SZ: autochk autochk*

Диспетчер сеансов может запустить несколько программ. Приведенный ниже пример показывает запуск утилиты Convert, которая при следующем запуске системы преобразует том X: из формата FAT в формат NTFS:

BootExeeute: REG_MULTI_SZ: autochk autochk* autoconv \DosDevices\x: /FS:ntfs

После того как Диспетчер сеансов выполнит все указанные команды, ядро осуществит загрузку остальных разделов реестра из %.SystemRoot%\System32 \Config.

Раздел Memory Management

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

PagedPoolSize: REG_DWORD 0

NonPagedPoosSize: REG_DWORD 0

PagingFiles: REG_MULTI_SZ; c:\pagefile.sys 32

Раздел DOS Devices

Затем Диспетчер сеансов создает символические ссылки. Эти ссылки связывают определенные классы команд с соответствующими компонентами файловой системы. Конфигурационная информация для перечисленных ниже устройств DOS содержится в следующих значимых элементах реестра:

PRN: REG_SZ:\DosDevices\LPTl

AUX: REG_SZ:\DosDevices\COMl

NUL: REG_SZ:\Device\NulI

UNC: REG_SZ:\Device\Mup

PIPE:\REG_SZ:\Device\NamedPipe

MAILSLOT:\REG_SZ\Device\MailSlot

Раздел Subsystems

Поскольку архитектура подсистем базируется на сообщениях, необходимо запустить подсистему Windows (Win32). Эта подсистема управляет всем вводом/выводом и доступом к дисплею; ее процесс называется Csrss. Подсистема Win32 запускает процесс WinLogon, который в свою очередь запускает несколько других важных подсистем.

Конфигурационная информация для необходимых подсистем определяется, значением элемента Required в разделе реестра HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\SessionManager\SubSystems.

Регистрация пользователя в системе

Подсистема Win32 автоматически запускает процесс WinLogon.exe, который, в свою очередь, запускает процесс Локального администратора безопасности (Local Security Administration, Lsass.exe). После завершения инициализации ядра необходимо произвести регистрацию пользователя в системе. Процедура регистрации может быть произведена автоматически на основании информации, хранящейся в реестре, или вручную. При ручной регистрации пользователя на экране появляется диалоговое окно с приветствием и текстом "Нажмите Ctrl+Alt+Delete". В любом случае, к этому моменту Windows 2000 может еще продолжать инициализацию сетевых драйверов, однако пользователю уже разрешается зарегистрироваться в системе.

На данном этапе Диспетчер служб выполняет загрузку автоматически стартующих сервисов, для которых значение Start, расположенное в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DriverName, установлено равным 0x2. На этом этапе сервисы загружаются с учетом установленных для них зависимостей, поскольку их загрузка осуществляется параллельно. Зависимости описываются значимыми элементами DependOnGroup и DependOnService, расположенными в разделе реестра HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\DriverName.



Содержание раздела