Reklama

Процес завантаження ОС

Включається тумблер живлення.

Блок живлення проводить самодіагностику. Коли всі електричні параметри в нормі БП посилає сигнал Power Good процесора.

Таймер мікропроцесора отримує сигнал Power Good.

З отриманням цього сигналу таймер перестає посилати сигнал Reset процесора, дозволяючи тому включитися.

CPU починає виконувати код ROM BIOS

Процесор завантажує ROM BIOS починаючи з адреси FFFF: 0000.

Система виконує початковий тест заліза.

Кожна помилка, що зустрічається на цьому етапі повідомляється певними звуковими кодами (голосом), так як відео система ще не ініціалізована.

 BIOS шукає адаптери, які можуть вимагати завантаження свого BIOS-а.

Найбільш типовим випадком в цьому випадку є відеокарта. Завантажувальна процедура сканує пам’ять з адреси C000: 0000 по C780: 0000 для пошуку відео ROM. Таким чином завантажуються системи всіх адаптерів.

ROM BIOS перевіряє вимкнення це чи перезавантаження.

Процедура два байти за адресом 0000:0472. Будь-яке значення, відмінне від 1234h є свідченням “холодного” старту.

Якщо це включення ROM BIOS запускає повний POST. Якщо це перезавантаження, то з POST процедури виключається перевірка пам’яті. Процедуру POST можна розділити на три компоненти:

Відео тест ініціалізує відеоадаптер, тестує карту і відеопам’ять. Ідентифікація BIOS-а показує версію прошивки, виробника і дату. Тест пам’яті перевіряє чіпи пам’яті і підраховує розмір встановленої пам’яті. Помилки, які можуть виникнути в ході POST перевірки можна розділити на смертельні і не дуже. У другому випадку вони показуються на екрані, але дозволяють продовжити процес завантаження. Ясно, що в першому випадку процес завантаження зупиняється, що зазвичай супроводжується серією бип-кодів.

BIOS читає конфігураційну інформацію з CMOS.

Невелика область пам’яті (64 байт) живиться від батарейки на материнської плати. Найголовніше для завантаження в ній – порядок, в якому мають опитуватися приводи, який з них має бути першим – дисковод, CD-ROM або вінчестер.

Якщо перша є жорсткий диск, BIOS перевіряє найперший сектор диска на наявність Master Boot Record. Для дисковода перевіряється Boot Record в першому секторі.

Master Boot Record – Перший сектор на циліндрі 0, 0 голівці, 512 байт розміром. Якщо вона знаходиться, то завантажується в пам’ять, потім перевіряється на правильну сигнатуру – два останні байти повинні бути 55AAh. Відсутність MBR або цих перевірочних байт зупиняє процес завантаження і видає попередження. Сама MBR складається з двох частин – системного завантажувача, програми, яка отримує управління при завантаженні з цього жорсткого диска; таблиці розділів, яка містить інформацію про логічних дисках, що є на жорсткому диску.

Операційна система

Управління передається операційній системі.

Boot Record перевіряється на правильність і якщо код визнається правильним то код завантажувального сектора виконується як програма. Завантажити Windows XP контролюється файлом NTLDR, що знаходиться в кореневій директорії системного розділу. NTLDR працює в чотири прийоми:

1.      Початкова фаза завантаження

2.      Вибір системи

3.      Визначення заліза

4.      Вибір конфігурації

У початковій фазі NTLDR перемикає процесор у захищений режим. Потім завантажує відповідний драйвер файлової системи для роботи з файлами будь-якої файлової системи, яку підтримує XP.

Якщо в кореневій директорії є BOOT.INI, то його вміст завантажується в пам’ять. Якщо в ньому є записи більш ніж про одну операційній системі, NTLDR зупиняє роботу – показує меню з вибором і чекає вводу від користувача певний період часу. Якщо в процесі вибору користувач вибрав 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 SYSTEMServices.

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), який і показує діалог входу в систему. 

Reklama