NTLDR и инициализация ядра - Загрузка - Статьи о работе Windows - Каталог статей - Windows Web Wizard
 Windows  Web  Wizard
 

Привет Гость

Меню сайта

Время
Суббота
31.07.2010
11:50

 
Категории каталога
Загрузка [10]
BSOD [62]
Статьи и BSOD
Компоненты системы [3]
Статьи , посвящённые работе компонентов системы .
Настройка [7]
Некоторые хитрости системы

Форма входа
E-mail:
Пароль:

Поиск

Друзья сайта

Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Мини-чат

Наш опрос
Как вы узнали об этом сайте ?
1. Через Yandex
2. От знакомых
3. Другое
4. По ссылке с других сайтов
5. Через Google
6. Через другие поисковые системы
7. По ссылке с Technet
8. Через рейтинги сайтов
9. Через каталог сайтов
Всего ответов: 36

Главная » Статьи » Статьи о работе Windows » Загрузка

NTLDR и инициализация ядра
Основные этапы загрузки :
1)POST этап
2)
MBR - главная загрузочная запись
3)Boot record - загрузочный сектор раздела
4)ntldr - загрузчик Windows
5) Инициализация  ядра
5) Диспетчер  сеансов
6) Запуск  подсистемы  Win32
7) Вход  в  систему
8) Автозагрузка

Эта  статья  о  ntldr и  ядре .
(НАСТОЯТЕЛЬНО  РЕКОМЕНДУЮ  ЭТУ  ИНФОРМАЦИЮ  НЕ  БРАТЬ  В  ГОЛОВУ ;))
NTLDR  первым  делом  переключается  в  защищёный  режим , чтобы  использовать  всю  доступную  память  для  работы . Далее  он  читает  файл  boot.ini .
Если  выбор  только  один , то  он  игнорирует  timeout  и  сразу  загружает  единственный  вариант . Если  вариантов  несколько  и  таймаут  не  равен 0 , то  он  ждёт указания  пользователя .
В  загрузочном  меню  может  присутсвовать  и  не WindowsNt  строка . При  таком  выборе  osloader откатываёт  всё  назад : переключается  обратно  в  реальный  режим  работы и  запускает  br  выбранной  системы .
если  выбрана  NT-система , то  osloader  запускает  распознаватель  оборудования ( ntdetect.com ), который собирает  всю  информацию  об  установленном  оборудовании , используя  стандартный  вызовы  BIOS . После  окончания  своей  работы  он  передаёт  собранные  данные  загрузчику ; позднее  эта  информация  окажется  в  HKLM\Description . Osloader загружает  kernel  , hal.dll , драйверы со  статусом SERVICE_BOOT , ntdll.dl , драйвер  файловой  системы  загрузочного  каталога , kdcom.dll  и  bootvid.dll . После  того , как  osloader  запустил  все  требуемые  файлы , он  передаёт  управление  на  kernel .  Начинается  инициализация  ядра .
Существуют  две  стадии  загрузки  ядра : фаза 0 и фаза 1 .
Фаза 0 .
Управление  находится  в KiSystemStartup ( в  ядре 0 . но  для  дальнейшей  работы  требуется  абстрагирование  от  оборудования . Ядро  запрещает  прерывания и вызывает HAL ( hardware abstract layer - уровень абстракции от оборудования ) . HAL приспосабливается к конкретной машине , чтобы ядро могло использовать общесистемные функции . Kernel  вызывает HalInitSystem , KeInitailizeProcessor и KeInitailizeKerenel , ExpInitalizeExecutive  для каждого  установленного  процессора в  системе . Подключается дипетчер обьектов , который создаёт примитивные объекты  для  своей  работы  и  работы  других  компонентов , далее  начинает работу диспетчер процессов . Он создаёт процессы Idle и System и системный поток Phase1 . После  этого  ядро  разрешает  прерывания  и  запускает  системный  поток Phase1 , символизирующий  начало  фазы 1 .
В  фазе 1  проходит  дальнейшая  иницилизация  компонентов Windows . Разрешаются  прерывания . загружается  bootvid.dll . Иницилизируется  диспетчер  электропитания .Запускается  функция HalQueryRealTimeClock . Эта  функция  читает  установленное  время  из  CMOS Setup ( это  время  считается  началом  загрузки ) . Для правильной иницилизации  драйвера  файловой  системы , HAL  считывает  таблицу  разделов ( IoReadpartitionTable ) и  задёт начальную конфигурацию разделов ( IoSetPartitionInformation ) .
Начинается  иницилизация  исполнительной подсистемы ( Executive ) , распологающейся  на  верхнем  уровне . Диспетчер  обьектов  создаёт  пространтсва  имён \Objecttypes\ и \Dos\Devices . Проходит  общая иницилизация Executive . Диспетчер  обьектов  создаёт  пространство  имён \Security . Иницилизируется Диспетчер  памяти . На  системное  адресное  пространтсво  проецируются  таблицы  NLS . Для  дальнейшей  работы  подключается  системная  библиотека  ядра NT ( ntdll.dll , содержит  точки  входа  WinAPI  для  NativeAPI ) . Запускается  диспетчер  кэша и  диспетчер  конфигурации  (  создание  HKLM\System  и  HKLM\Hardware\ ) . Ядро  иницилизирует  драйвер  системного  тома . Подключается  диспетчер PnP и  LPC , создаётся    Bootlog.txt ( если  это  задано  в  boot.ini ) . I/O  Manager  проводит  иницилизацию  всех  остальных  драйверов . Активизируется  подкачка  страниц ( NTCreatepagingFile ) . Последним  подключается  диспетчер  электропитания . Для  Command Server  создаётся  Справочный  монитор  безопастности .
На  этом  иницилизация  ядра  и  исполнительной  подсистемы  заканчивается .
Категория: Загрузка | Добавил: Moder (14.06.2008)
Просмотров: 311
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright FIL CORPORATION © 2010
Сайт управляется системой uCoz