Загрузка операционной системы
Важно отметить, что на самом
деле загрузка Windows начинается не с того момента как вы подошли к
персональному компьютеру и включили или перезагрузили его, процесс
загрузки операционной системы на самом деле начинается непосредственно с
ее установки. В ходе выполнения процесса установки, жесткий диск
подготавливается для своего участия в процессе загрузки системы. В это
время создаются компоненты, которые участвуют в загрузке базовой системы
ввода/вывода (BIOS). К этим компонентам можно отнести:
- Winload.exe
– загружает процесс Ntoskrnl.exe и зависимые от него библиотеки, а
также загружает драйвера установленного оборудования;
- Winresume.exe
– позволяет восстанавливать систему после длительного бездействия
(гибернации) и отвечает за файл гибернации (Hiberfil.exe);
- Ntoskrnl.exe
– инициализирует исполнительные подсистемы загрузки и запуск системных
драйверов для устройств, а также подготавливает систему для работы со
штатными приложениями и загружает процесс smss.exe;
- Hal.dll -
является неотъемлемой частью кода, исполняемого в режиме ядра, которая
запускается загрузочным модулем Winload.exe, загружаемым совместно с
ядром;
- Smss.exe (Session Manager Subsystem Service) – подсистема
управления сессиями в Windows. Этот компонент
не входит в ядро Windows, но его работа исключительно важна для системы;
- Wininit.exe
– загружает Service control manager (SCM), Local Security Authority
process (LSASS), и local session manager (LSM). Этот компонент также
инициализирует системный реестр и выполняет определенные задачи в режиме
инициализации;
- Winlogon.exe – управляет безопасным входом
пользователя и запускает LogonUI.exe;
- Logonui.exe – отображает
диалог входа пользователя в систему;
- Services.exe – загружает и
инициализирует системные службы и драйверы, установленные по умолчанию.
Важно
понимать, что драйверы устройств являются важнейшей частью процесса
загрузки. При указании раздела операционной системы, установочная
программа записывает загрузочный сектор. Загрузочный сектор Windows дает
информацию о структуре и формате раздела файлу Bootngr. Bootmgr
выполняет свою работу в то время, когда операционная система
начинает свой жизненный цикл в режиме реального времени. Затем Bootmgr
вычитывает файл BCD из папки \Boot, расположенной в системном разделе.
Если в BCD файле указаны настройки о выходе из режима гибернации, то
Bootmgr запускает процесс Winresume.exe, который будет читать содержимое
файла для возобновления системы из спящего режима.
Если в записи
BCD существует две и более системы, то Bootmgr отображает пользователю
загрузочное меню для выбора операционной системы. После выбора системы
или, в том случае, если у вас установлена только одна операционная система,
загружается процесс Winload.exe. Этот процесс загружает файлы,
расположенные в загрузочном разделе и стартует инициализацию ядра.
Winload.exe выполняет следующие действия:
- Загружает ядро и
образы HAL (Ntoskrnl.exe и Hal.dll), а также все их зависимости. Если у
Winload.exe не получается запустить образы HAL или их зависимости, вы
увидите соответствующее предупреждение;
- Вычитывает файлы VGA
шрифтов (Vgaoem.fon);
- Вычитывает файлы национальных языковых
систем (National Language System - NAL) для использования
интернационализации;
- Вычитывает раздел реестра
\Windows\System32\Config\System для определения драйверов устройств
необходимых для загрузки операционной системы;
- Сканирует раздел
системного реестра SYSTEM и находит все драйверы устройств загрузки. Эти
драйверы указаны в реестре со значением SERVICE_BOOT_START (0) в
разделе HKLM\SYSTEM\CurrentControlSet\Services;
Увеличить рисунок
- Добавляет
драйверы файловой системы, отвечающие за реализацию кода для раздела
NTFS;
- Загружает системные драйверы из загрузочного раздела. В
это время для пользователя отображается текст «Запуск Windows»
с символикой операционной системы;
- Подготавливает регистры
процессора для выполнения Ntoskrnl.exe.
Затем начинается
инициализация ядра и исполнительных подсистем. После того как Windows
вызывает Ntoskrnl, он передает данные параметров блока загрузчиков,
которые содержат системные пути загрузочного раздела сгенерированного
Winload для описания физической памяти в системе. По завершению двух
этапов (Session 0 и Session 1) инициализации ядра стартуют процессы
Smss.exe, Csrss.exe и Wininit. Smss вызывает исполнительный менеджер
конфигурации подсистемы для окончания инициализации системного реестра.
После
этого запускается процесс запуска оболочки системы Winlogon, параметры
которого указаны в разделе реестра HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\WinLogon\Userinit. Winlogon уведомляет систему о
зарегистрированных поставщиках сетевых услуг, прошедших идентификацию
поставщиков сетей Microsoft (Mpr.dll).
Последним этапом загрузки
системы является процесс автоматического запуска приложений при загрузке
и входе в операционную систему.
Управление
автозапуском
Большинство приложений, которые автоматически
запускаются с операционной системой, вы можете увидеть в области
уведомлений. О методах настройки области уведомлений я рассказывал в
статье «Настройка
области уведомлений Windows 7», поэтому в рамках этой статьи
настройка области уведомлений рассматриваться не будет. Для управления
приложениями автозапуска, пользователи операционных систем Windows
обычно используют утилиту «Конфигурация системы».
Утилита «Конфигурация системы»
Программа «Конфигурация
системы» - это утилита операционной системы Windows,
предназначенная для управления автоматически запускаемыми программами и
загрузкой системы, а также определения проблем, которые могут помешать
запуску операционной системы в обычном режиме. При помощи этой утилиты
вы можете изменять параметры загрузки, отключать службы и автоматически
запускаемые программы. Эта утилита впервые появилась в операционной
системе Windows 98, предоставляя удобный интерфейс для выполнения своих
задач. Утилита вызывается файлом MSConfig.exe, который расположен в
папке System32 раздела с установленной операционной системой. Огромным
недостатком этой утилиты является отсутствие возможности добавления
нового элемента в автозапуск. Для того чтобы открыть эту утилиту
выполните любое из следующих действий:
- Нажмите на кнопку «Пуск»
для открытия меню, в поле поиска введите msconfig и в
найденных результатах откройте приложение;
- Воспользуйтесь
комбинацией клавиш +R для открытия диалога «Выполнить».
В диалоговом окне «Выполнить», в поле «Открыть»
введите msconfig и нажмите на кнопку «ОК».
На
следующем скриншоте отображена утилита «Конфигурация системы»:
Увеличить рисунок
В
текущей утилите существует пять вкладок:
- Общие.
На этой вкладке вы можете выбрать вариант загрузки: «Обычный
запуск» – операционная система запускается обычным способом, «Диагностический
запуск» - система загружается только с использованием основных
служб и драйверов, а также «Выборочный запуск» -
помимо основных служб и драйверов, с операционной системой еще
загружаются выбранные службы и автоматически загружаемые программы.
- Загрузка.
На этой вкладке вы можете найти параметры загрузки операционной
системы, а также дополнительные параметры отладки, такие как «Без
GUI» - при загрузке не отображается экран приветствия, «Информация
об ОС» - в процессе загрузки операционной системы отображаются
загружаемые драйвера и прочее.
- Службы. Эта
вкладка содержит список только тех служб, которые запускаются
автоматически вместе с операционной системой, а также текущее состояние
каждой службы. В связи с тем, что установленное программное обеспечение
может устанавливать свои службы, у вас без базовых знаний системных
служб могут возникнуть проблемы с поиском служб, не установленных с
операционной системой по умолчанию. Установив флажок «Не
отображать службы Майкрософт», в списке служб будут
отображаться только приложения сторонних разработчиков. Для того чтобы
отключить службу достаточно снять с нее флажок.
- Автозагрузка.
Вкладка «Автозагрузка» отвечает за загрузку
приложений, а так же определённых служебных утилит, загружаемых не через
службы. Как видно на предыдущем скриншоте данная вкладка разбита на
пять колонок. Эти колонки были созданы для того, чтобы вы могли знать
название автоматически загружаемого приложения, издателя данной
программы, путь, указывающий, откуда загружается та или иная программа,
расположение раздела реестра или ярлыка программы, а также дату, когда
программа была отключена из автозагрузки. Для того чтобы определенный
элемент автозагрузки не запускался во время следующей загрузки, снимите
соответствующий флажок
- Сервис. На этой вкладке
вы можете найти список диагностических средств, позволяющих следить за
работоспособностью вашей системы. Для запуска любого средства,
отображенного в этой вкладке, выделите его и нажмите на кнопку «Запуск».
Более
опытные пользователи, возможно, захотят не только отключать ненужные
программы автозапуска, но и добавлять собственные программы для
автоматического запуска вместе с операционной системой. Для этого нужно
будет воспользоваться средствами системного реестра.
Управление
автозапуском средствами системного реестра
В системном реестре
вы можете найти параметры автозапуска приложений для учетной записи
компьютера и учетной записи текущего пользователя. Приложения, которые
запускаются с учетной записью компьютера, не зависят от того, под какой
записью пользователь выполнил вход в систему. Эти параметры вы можете
найти в разделе HKLM\Software\Microsoft\Windows\CurrentVersion\Run.
Приложения, которые запускаются с учетной записью пользователя, для
каждой учетной записи могут отличаться. Эти параметры вы можете найти в
разделе HKCU\Software\Microsoft\Windows\CurrentVersion\Run.
Для
того чтобы добавить новое приложение (программу «Редактор
реестра») в автозапуск операционной системы Windows для всех
существующих пользователей, выполните следующие действия:
- Откройте
редактор реестра;
- Перейдите в раздел
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run;
Увеличить рисунок
- Создайте
строковый параметр. Название можете указать произвольное, например,
Regedit. В значении параметра укажите полный путь к приложению и, при
необходимости, параметры для запуска, например,
c:\Windows\System32\.regedit32.exe;
- Перезагрузите компьютер.
Но
для более опытных пользователей операционных систем Windows, работы
утилиты «Конфигурация системы» и двух разделов реестра
может быть недостаточно, так как неизвестно что загружалось вместе с
системой помимо программ автозапуска и системных служб. Для того чтобы
узнать обо всех процессах, которые были запущены вместе с вашей
системой, вам поможет утилита Autoruns от Sysinternals.
Работа
с утилитой Autoruns
Программа Autoruns от Марка Руссиновича и
Брайса Когсуэлла помогает проверять максимальное количество размещений
автозапуска на наличие программ, настроенных на запуск в процессе
загрузки или входа в систему, в отличие от любых других программ
мониторинга автозапуска. Сейчас доступна версия 8.61 и ее можно
загрузить по следующей
ссылке. Эта программа абсолютно бесплатна и к одному из ее
преимуществ можно отнести то, что все программы отображаются в том
порядке, в каком операционная система обрабатывает их. На самом деле,
такие программы могут располагаться не только в разделах Run, а также в
RunOnce, ShellExecuteHooks, ContextMenuHandlers и в других разделах
системного реестра. С данной программой можно работать как под
32-разрядными, так и под 64-разрядными операционными системами Windows.
Перед
запуском этой утилиты в первый раз отобразится диалоговое окно с
лицензионным соглашением. Прочитайте его и нажмите на кнопку «Agree».
После загрузки
текущей программы вы увидите приложения, настроенные для автоматического
запуска, где вы можете найти названия приложений и разделы системного
реестра, в которых хранятся сведения об их запуске, краткое описание
приложения, издателя, а также путь к запускаемому файлу или библиотеке.
Элементы,
которые отображает программа Autoruns, принадлежат к нескольким
категориям, которые можно просмотреть на 18-ти вкладках программы. В
данной статье мы не будем рассматривать каждую вкладку, но стоит
отметить, что к категориям программы можно отнести: объекты,
автоматически запускаемые при входе в систему, дополнительные компоненты
проводника, дополнительные компоненты Internet Explorer, задачи
планировщика, библиотеки DLL инициализации приложений, объекты,
исполняемые на ранних стадиях загрузки, службы Windows и многое другое.
Увеличить рисунок
На
каждой вкладке вы можете:
- запустить любое выбранное
приложение, дважды щелкнув на названии программы;
- открыть раздел
реестра, в котором размещены параметры автозапуска приложений, дважды
щелкнув мышкой на строке с разделом реестра или выбрав команду «Jump
to» из контекстного меню;
- открыть диалог свойств
выбранного объекта (для этого из контекстного меню выберите команду «Properties»);
- открыть
Process Explorer с вкладкой «Image» для выбранного
объекта, а также найти информацию об интересующем вас объекте;
- отключить
объект, запускаемый автоматически, сняв соответствующий флажок;
- удалить
объект при помощи команды контекстного меню или кнопки «Delete»;
- просмотреть
автоматически запускаемые элементы для учетных записей других
пользователей, выбрав нужный пункт меню «User».
По
умолчанию, в программе Autoruns отображаются все приложения и
библиотеки, запускаемые автоматически с операционной системой. Для того
чтобы отображались только те приложения, которые прописаны в разделах
реестра \Software\Microsoft\Windows\CurrentVersion\Run, перейдите на
вкладку «Login».
Увеличить рисунок
Помимо
приложений, запускаемых автоматически с операционной системой, вы
можете просмотреть все задания, назначенные планировщиком при загрузке
или входе в систему. Для этого перейдите на вкладку «Scheduled
tasks». На этой вкладке, при выборе команды контекстного меню «Jump
to» или двойному щелку мыши на определенном объекте откроется
оснастка «Планировщик заданий» с указанной задачей.
Увеличить рисунок
Вы
можете сохранить объекты автозапуска по нажатию на кнопку «Save»
на панели инструментов или выбрав данную команду в меню «File».
Отчет будет сохранен с расширением *.arn или *.txt. Для того чтобы
загрузить сохраненные ранее данные программы Autoruns воспользуйтесь
командой «Open» меню «File».
Использование утилиты Autorunsc для управления
объектами автозапуска средствами командной строки
Если вы
предпочитаете работать с консолью, вы также можете воспользоваться
командами утилиты Autorunsc. С ее помощью вы можете выполнять те же
действия, что и с утилитой Autoruns, только при помощи командной строки,
выводя информацию в окно консоли или перенаправляя вывод команды в
текстовый файл. В связи с тем, что данная утилита открывается только
средствами командной строки, для работы с Autorunsc, выполните следующие
действия:
- Откройте командную строку от имени администратора;
- Перейдите
в папку с загруженной утилитой Autorunsc, например «C:\Program
Files\Sysinternals Suite\»;
- Запустите утилиту с необходимым
параметром.
Доступны следующие параметры:
-a –
отображение всех элементов автозапуска;
-b – отображение
информации об объектах, которые загружаются на ранних стадиях загрузки
системы;
-c – экспорт отображаемых данных в CSV-файл;
-d –
отображение библиотек DLL инициализации приложений;
-e –
отображение расширений проводника Windows;
-g – отображение
гаджетов боковой панели Windows и рабочего стола;
-h – отображение
Hijacks элементов;
-i – отображение дополнительных элементов
браузера Internet Explorer;
-k – отображение известных библиотек
DLL;
-l – отображение элементов, запускаемых автоматически при
входе в систему;
-m – не отображать объекты с цифровой подписью
Microsoft;
-n – отображение поставщиков протокола Winsock;
-o
– отображение элементов кодеков;
-p – отображение драйверов
монитора печати;
-r – отображение поставщиков безопасности LSA;
-s
– отображение служб в режиме автоматического запуска и не отключенных
драйверов;
-t – отображение элементов планировщика задач;
-v
– проверка цифровых подписей;
-w – отображение элементов
Winlogon;
-x – экспорт отображаемых данных в XML-файл;
User –
отображение автоматически запускаемых объектов для указанной учетной
записи пользователя.
Например, если вам нужно просмотреть только
элементы, автоматически запускаемые при входе в систему, используйте
утилиту с параметром –l, как показано ниже:
Увеличить рисунок
Заключение
В этой статье рассказывается о
настройке элементов автоматически запускаемых приложений при загрузке и
входе в операционную систему Windows. Вкратце описан процесс загрузки
операционной системы Windows 7, а также рассмотрены методы работы и
мониторинга автозапуска средствами системной утилиты «Конфигурация
системы», изменение элементов автозапуска при помощи
системного реестра, принципы работы с приложениями Autoruns и консольной
версией Autorunsc от Sysinternals. С помощью помещенной в статье
информации, вы сможете грамотно настроить автозагрузки приложений своей
операционной системы.