69768

Завантаження Windows XP

Лекция

Информатика, кибернетика и программирование

Завантаження Windows XP починають стандартним способом — із передавання керування коду завантажувального сектора активного розділу диска. Головне його завдання — визначити місцезнаходження файла ntldr у кореневому каталозі цього розділу, завантажити його...

Украинкский

2014-10-09

40 KB

0 чел.

Тема 16. Завантаження Windows XP

Завантаження Windows XP починають стандартним способом — із передавання керування коду завантажувального сектора активного розділу диска. Головне його завдання — визначити місцезнаходження файла ntldr у кореневому каталозі цього розділу, завантажити його в пам'ять і передати керування на його точку входу. Зазначимо, що код завантажувального сектора залежить від того, яка файлова система встановлена для цього розділу: для FAT виконують один варіант, для NTFS — інший.

Файл ntldr можна розглядати як завантажувач другого етапу. Він починає своє виконання у 16-бітному режимі процесора, передусім переводить процесор у захищений режим і вмикає підтримку сторінкової організації пам'яті, після цього зчитує з кореневого каталогу файл boot.ini і робить його синтаксичний розбір. Ось фрагмент файла boot.ini:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(l)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(l)\WINDOWS="Windows XP"

C:\="Windows 98"

Після тегу [boot loader] задано варіант завантаження за замовчуванням і час, після закінчення якого система автоматично завантажуватиметься відповідно до цього варіанта, після [operating systems] — список можливих варіантів завантаження. Для кожного варіанта може бути задано одну із кількох адрес завантаження:

  •  розділ із кореневим каталогом WINDOWS (для завантаження Windows XP);
  •  літерне позначення тому, на якому перебуває інша ОС;
  •  ім'я файла із зазначенням тому.

У разі зазначення літерного імені розділу (як у прикладі) ntldr знаходить на диску файл bootsec.dos (у якому після встановлення Windows XP зберігають завантажувальний сектор DOS або Consumer Windows, якщо поверх нього записаний завантажувальний сектор Windows XP), перемикає процесор у реальний режим і починає виконувати код цього завантажувального сектора.

Якщо задано ім'я файла, ntldr завантажуватиме файл із таким іменем; отже, якщо у файлі зберегти завантажувальний сектор іншої ОС, наприклад, Linux, ntldr зможе завантажити і його, для цього варіант завантаження має такий вигляд:

С:\bootsec.1nx="Linux"

Далі наведемо випадок завантаження Windows XP. Зазначимо, що розділ з установкою Windows XP у boot.ini не зобов'язаний збігатися із розділом, з якого відбувається завантаження, — таких розділів може бути кілька.

Коли є один варіант завантаження, система відразу починає завантажуватися, коли їх більше — відображають меню завантаження. Після вибору варіанта із меню ntldr запускає програму ntdetect.com, що в реальному режимі визначає базову конфігурацію комп'ютера (подібно до того, як це робила функція setup() для Linux -жодна із сучасних систем не довіряє цей код BIOS). Зібрану інформацію зберігають у системі, пізніше вона буде збережена в реєстрі. Внизу екрана з'являється текстовий індикатор прогресу. У цій ситуації можна натиснути на F8 і перейти в меню додаткових можливостей завантаження (у безпечному режимі тощо).

Потім ntldr завантажує у пам'ять ntoskrnl.exe (що містить ядро і виконавчу підсистему Windows XP), bootvid.dll (відеодрайвер за замовчуванням, що відповідає за відображення інформації під час завантаження), hal.dll (рівень абстрагування від устаткування) та основні файли реєстру. Після цього він визначає із реєстру, які драйвери встановлені в режимі запуску під час завантаження (це, наприклад, драйвер жорсткого диска) і завантажує їх (без ініціалізації). Буде завантажено також драйвер кореневої файлової системи. На цьому роль ntldr у завантаженні завершується, і він викликає головну функцію в ntoskrnl.exe для продовження завантаження.

Ініціалізація ntoskrnl.exe складається із двох етапів: фаз 0 і 1. Багато підсистем виконавчої системи приймають параметр, який показує, у якій фазі ініціалізації зараз перебуває система.

Під час виконання фази 0 переривання заборонені, на екрані нічого не відображається. Основною метою цього етапу є підготовка початкових структур даних, необхідних для розширеної ініціалізації під час виконання фази 1. Зазначимо, що менеджер процесів на цьому етапі ініціалізується майже повністю, за його допомогою створюють початковий об'єкт-процес із назвою Idle, процес System і системний потік для виконання ініціалізації фази 1.

Після завершення фази 0 переривання дозволені, і починає виконуватися системний потік. Під час виконання фази 1 керування екраном здійснює відеодрайвер bootvid.dll, що відображає завантажувальний екран і графічний індикатор прогресу на ньому (цей індикатор змінюватиметься упродовж всієї фази 1). Відбувається остаточна ініціалізація різних підсистем виконавчої системи (менеджера об'єктів, планувальника, служби безпеки, менеджера віртуальної пам'яті, менеджера кеша тощо). Під час ініціалізації підсистеми введення-виведення (яка займає до 50 % часу цієї фази) відбувається підготовка необхідних структур даних, ініціалізація драйверів із запуском під час завантаження (boot-start), завантаження та ініціалізація драйверів із системним запуском (system-start). Фаза 1 завершується запуском менеджера сесій (smss.exe).

Подальше завантаження виконують три системні процеси, розглянуті у розділі 2: менеджер сесій smss.exe, процес реєстрації у системі winlogon.exe і менеджер керування сервісами (SCM, services.exe). Основним завданням менеджера сесій є завантаження та ініціалізація всіх компонентів підсистеми Win32 (як режиму користувача, так і режиму ядра), а також остаточна ініціалізація реєстру і запуск winlogon.exe.

Процес реєстрації у системі запускає менеджер керування сервісами і менеджер аутентифікації, а також організовує реєстрацію користувачів у системі.

Менеджер сервісів (SCM) завантажує та ініціалізує сервіси режиму користувача, встановлені в режимі автоматичного завантаження. Цей процес може тривати вже після початку інтерактивної роботи користувачів. Після ініціалізації сервісів завантаження вважають успішним.

Контрольні питання:

1. Передавання керування коду завантажувального сектора активного розділу диска.

2. Ініціалізація ntoskrnl.exe.


 

А также другие работы, которые могут Вас заинтересовать

15323. Интерфейс программы 3ds max 1.09 MB
  Тема 1: Интерфейс программы 3ds max 1. Интерфейс программы Задание 1. Запустите программу 3d max командой Пуск Программы discreet 3ds max 5 3ds max 5. Командой File Open Файл Открыть Откройте файл Сфера.max из папки dop_material/01. Изучите основные эл...
15324. Создание примитивов в 3D Studio MAX 529.81 KB
  ТЕМА 2: Создание примитивов в 3D Studio MAX 1. Принципы создания и модификации объектов Методы создания объектов В интерактивном режиме Вводом с клавиатуры. Основная часть объектов 3d MAX создается в интерактивном режиме с...
15325. Создание геометрических примитивов. Добавление освещения в сцену 227.08 KB
  Тема 2: Создание геометрических примитивов. Добавление освещения в сцену 1. Принципы создания и модификации объектов Методы создания объектов В интерактивном режиме Вводом с клавиатуры. Основная часть объектов 3d MAX
15327. Клонирование объектов и использование массивов 938.5 KB
  Тема 3: Клонирование объектов и использование массивов 1. Клонирование объектов и использование массивов Клонирование объектов Существует два способа клонирования объектов: первый использование команды EditClone ПравкаКлон
15329. Редактор материалов. Создание текстур материалов 3.9 MB
  Тема 4: Редактор материалов. Создание текстур материалов 1. Создание текстуры древесины Создайте объект типа Box рис. 1.1 Рис. 1.1 Откройте редактор материалов выполнив последовательность команд: Rendering ~Material Editor или нажав кнопку
15330. Создание интерьера бассейна в 3Ds Max 1.96 MB
  Тема 6: Создание интерьера бассейна В результате выполнения этой работы Вы должны получить визуализированную сцену изображенную на рисунке. 1. Двумерные формы. Модификаторы двумерных форм Цель: освоить технологию создания д