Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Системные процессы
Показать сообщение отдельно


Moderator


Сообщения: 53180
Благодарности: 15431

Профиль | Отправить PM | Цитировать


Котяра, об этом можно почитать в книге "Внутреннее устройство Microsoft Windows 2000", авторы: Соломон Д., Руссинович М.

Из книги:
Цитата о Smss:
Запуск подсистемы Win32 является одной из его первых задач.

Затем Smss вызывает диспетчер конфигурации, который завершает инициализацию реестра, заполняя все его разделы. Диспетчер конфигурации запрограммирован так, что ему известно местонахождение всех кустов реестра на диске, кроме содержащих пользовательские параметры. Список всех загружаемых им кустов реестра хранится в разделе HKLM\SYSTEM\CurrentControlSet\Control\Hivelist.

Основной поток Smss выполняет следующие инициализирующие операции:
  1. Создает объект "порт LPC" (\SmApiPort) и два потока, ожидающие клиентские запросы (например, на загрузку новой подсистемы или на создание сеанса).
  2. Определяет символьные ссылки на имена устройств MS-DOS (вроде СОМ1 и LPT1).
  3. Если установлены Terminal Services, создает в пространстве имен диспетчера объектов каталог \Sessions (для нескольких сеансов).
  4. Запускает программы, указанные в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute. Как правило, в нем содержится одна команда на запуск Autochk (версия Chkdsk, работающая на этапе загрузки).
  5. Выполняет отложенные действия по переименованию файлов, указанные в разделе HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations. Отложенные операции по удалению файлов указываются в подразделе PendingFileRenameOperations2.
  6. Открывает известные DLL.
  7. Создает дополнительные страничные файлы.
  8. Инициализирует реестр. Диспетчер конфигурации заполняет реестр, загружая кусты HKLM\SAM, HKLM\SECURITY и HKLM\SOFTWARE. Хотя информация о местонахождении файлов кустов содержится в разделе HKLM\SYSTEM\CurrentControlSet\Control\Hivelist, диспетчер конфигурации ищет эти файлы в каталоге \Winnt\System32\Config.
  9. Создает системные переменные окружения.
  10. Загружает часть подсистемы Win32, работающую в режиме ядра (Win32k.sys). Smss определяет местонахождение Win32k.sys и других загружаемых им компонентов по путям, хранящимся в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager. Инициализирующий код в Win32k.sys использует видеодрайвер для переключения экрана в разрешение, определенное в профиле по умолчанию. Таким образом, в этот момент видеоадаптер переключается с VGA-режима, используемого загрузочным видеодрайвером, в выбранное для данной системы разрешение.
  11. Запускает процессы подсистем, в том числе Csrss. (Как говорилось в главе 2, подсистемы POSIX и OS/2 запускаются по требованию.)
  12. Запускает процесс Winlogon. Этапы запуска Winlogon кратко описываются ниже.
  13. Создает порты LPC для отладочных сообщений (DbgSsApiPort и DbgUiApiPort) и потоки, прослушивающие эти порты.
После выполнения вышеперечисленных операций основной поток Smss переходит к бесконечному ожиданию описателей процессов Csrss и Winlogon. Поскольку от этих процессов зависит функционирование Windows 2000, в случае их неожиданного завершения Smss вызывает крах системы.
Цитата о Csrss:
Процесс подсистемы Win32 (Csrss.exe) предоставляет:
  • поддержку консольных (текстовых) окон;
  • поддержку создания и удаления процессов и потоков;
  • частичную поддержку процессов 16-разрядной виртуальной DOS-машины (VDM);
  • множество других функций, например GetTempFile, DefineDosDevice, ExitWindowsEx, а также несколько функций поддержки естественных языков.
Цитата о Winlogon:
Winlogon является доверяемым процессом, отвечающим за управление взаимодействием с пользователем в связи с защитой. Он координирует регистрацию, запускает пользовательскую оболочку для входа в систему, обрабатывает выход из системы и управляет множеством других операций, имеющих отношение к защите, - вводом паролей при регистрации, сменой паролей, блокированием и разблокированием рабочих станций и т. д. Процесс Winlogon должен обеспечить невидимость операций, связанных с защитой, другим активным процессам. Так, Winlogon гарантирует, что в ходе этих операций недоверяемый процесс не сможет перехватить управление рабочим столом и таким образом получить доступ к паролю.

Winlogon получает имя и пароль пользователя через Graphical Identification and Authentication (GINA) DLL Стандартная GINA - \Winnt\System32\Msgina.dll. Msgina выводит диалоговое окно для входа в систему. Позволяя заменять Msgina другими GINA-библиотеками, Windows 2000 дает возможность менять механизмы идентификации пользователей, Например, сторонний разработчик может создать GINA для поддержки устройства распознавания отпечатков пальцев и для выборки паролей пользователей из зашифрованной базы данных.

Winlogon - единственный процесс, который перехватывает запросы на регистрацию с клавиатуры. Получив имя и пароль пользователя от GINA, Winlogon вызывает Lsass для аутентификации этого пользователя. Если аутентификация прошла успешно, процесс Winlogon активизирует оболочку.
Цитата о Lsass:
Серверный процесс локальной аутентификации (local security authentication server process) (\Winnt\System32\Lsass.exe) получает от Winlogon запросы на аутентификацию и вызывает соответствующую функциональность (реализованную в виде DLL) для проверки соответствия введенного пароля с тем, что хранится в активном каталоге или SAM (части реестра, содержащей определения пользователей и групп).

После успешной аутентификации Lsass генерирует объект "маркер доступа" (access token object), содержащий профиль безопасности пользователя. Впоследствии Winlogon использует его для создания начального процесса оболочки.
Цитата о Userinit:
Winlogon извлекает значение параметра Userinit из раздела реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon и создает процесс для выполнения каждого файла, указанного в этом параметре. По умолчанию запускается процесс Userinit.exe.

Этот процесс выполняет некоторые действия по инициализации пользовательской среды (восстанавливает подключения к сетевым дискам, запускает сценарии регистрации и активизирует групповые политики), а затем ищет в реестре параметр Shell (в указанном выше разделе Winlogon) и создает процесс для запуска определенной системной оболочки (по умолчанию - Ехрlorer.exe). После этого процесс Userinit завершается.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:24, 20-04-2008 | #2

Название темы: Системные процессы