• Партнер

  • Итак, в прошлой статье мы рассмотрели
    практически всю часть "железную" часть
    загрузки операционной системы. Закончили
    мы на том, что MBR запись записывается в
    память и управление передается ее коду.

    Дальше Boot Loader проверяет таблицу партиций
    в поисках активной. Загрузчик дальше ищет
    загрузочную запись (Boot Record) на самом первом
    секторе раздела.

    В данном случае Boot Record это еще 512 байт -
    таблица с описанием раздела (количество
    байт в секторе, количество секторов в
    кластере и т.п.) и переход на первый файл
    операционной системы (IO.SYS в DOS).

    Операционная система.

    Управление передается операционной
    системы. Как же она работает, как проходит
    процесс загрузки?

    Boot Record проверяется на правильность и если
    код признается правильным то код
    загрузочного сектора исполняется как
    программа.

    Загрузка Windows XP контролируется файлом NTLDR,
    находящемся в корневой директории
    системного раздела. NTLDR работает в четыре
    приема:

    1. Начальная фаза загрузки
    2. Выбор системы
    3. Определение железа
    4. Выбор конфигурации

    В начальной фазе NTLDR переключает
    процессор в защищенный режим. Затем
    загружает соответствующий драйвер
    файловой системы для работы с файлами любой
    файловой системы, поддерживаемой XP.

    Если кто забыл, то наша любимая ОСь может
    работать с FAT-16, FAT-32 и NTFS.

    Если в корневой директории есть BOOT.INI,
    то его содержание загружается в память.
    Если в нем есть записи более чем об одной
    операционной системе, NTLDR останавливает
    работу - показывает меню с выбором и ожидает
    ввода от пользователя определенный период
    времени.

    Если такого файла нет, то NTLDR продолжает
    загрузку с первой партиции первого диска,
    обычно это C:\.

    Если в процессе выбора пользователь
    выбрал Windows NT, 2000 или XP, то проверяется
    нажатие F8 и показ соответствующего меню с
    опциями загрузки.

    После каждой удачной загрузки XP создает
    копию текущей комбинации драйверов и
    системных настроек известную как Last Known Good
    Configuration. Этот коллекцию можно использовать
    для загрузки в случае если некое новое
    устройство внесло разлад в работу
    операционной системы.

    Если выбранная операционная система XP, то
    NTLDR находит и загружает DOS-овскую программу
    NTDETECT.COM
    для определения железа, установленного в
    компьютере.

    NTDETECT.COM строит список компонентов,
    который потом используется  в ключе HARDWARE
    ветки HKEY_LOCAL_MACHINE реестра.

    Если компьютер имеет более
    одного профиля оборудования программа
    останавливается с меню выбора конфигурации.

    После выбора конфигурации NTLDR
    начинает загрузку ядра XP (NTOSKRNK.EXE).

    В процессе загрузки ядра (но перед
    инициализацией) NTLDR остается главным в
    управлении компьютером. Экран очищается и
    внизу показывается анимация из белых
    прямоугольников. Кроме ядра загружается и
    Hardware Abstraction Layer (HAL.DLL), дабы ядро могло
    абстрагироваться от железа. Оба файла
    находятся в директории System32.

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

    Каждый драйвер имеет ключ в
    HKEY_LOCAL_MACHINE\SYSTEM\Services. Если значение Start равно
    SERVICE_BOOT_START, то устройство считается
    загрузочным. Для кажого такого устройства
    на экране печатается точка.

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

    XP дизейблит прерывания в процессе фазы 0 и
    включает их только перед фазой 1. Вызывается
    HAL для подготовки контроллера прерываний.
    Инициализируются Memory Manager, Object Manager, Security
    Reference Monitor и Process Manager. Фаза 1 начинается когда
    HAL подготавливает систему для обработки
    прерываний устройств. Если на компьютере
    установлено более одного процессор они
    инициализируются. Все исполнительные подсистемы
    реинициализируются в следующем порядке:

    1. Object Manager
    2. Executive
    3. Microkernel
    4. Security Reference Monitor
    5. Memory Manager
    6. Cache Manager
    7. LPCS
    8. I/O Manager
    9. Process Manager

    Инициализация Менеджера ввода/Вывода
    начинает процесс загрузки всех системных
    драйверов. С того момента где остановился
    NTLDR загружаются драйвера по приоритету.
      
    Сбой в загрузке драйвера может заставить XP
    перезагрузиться и попытаться восстановить Last
    Known Good Configuration.

    Последняя задача фазы 1 инициализации
    ядра - запуск Session Manager Subsystem (SMSS).
    Подсистема ответственна за создание
    пользовательского окружения,
    обеспечивающего интерфейс NT.

    SMSS работает в пользовательском режиме, но в
    отличии от других приложений SMSS считается
    доверенной частью операционной системы и
    "родным" приложением (использует
    только исполнительные функции), что
    позволяет ей запустить графическую
    подсистему и login. 

    SMSS загружает win32k.sys - графическую
    подсистему. 

    Драйвер переключает компьютер в
    графический режим, SMSS стартует все сервисы,
    которые должны автоматически запускаться
    при старте. Если все устройства и сервисы
    стартовали удачно процесс загрузки считается
    удачным и создается Last Known Good
    Configuration.

    Процесс загрузки не считается
    завершенным до тех пор, пока пользователь
    не залогинился в систему. Процесс
    инициализируется файлом WINLOGON.EXE,
    запускаемым как сервис и поддерживается Local
    Security Authority (LSASS.EXE), который и показывает
    диалог входа в систему. 

    Это диалоговое окно показывается примерно
    тогда, когда Services Subsystem стартует сетевую
    службу.

    Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии