Як завантажується твоя Windows XP (частина 2), Windows, Операційні системи, статті

Отже, в минулій статті ми розглянули практично всю частину “залізну” частина завантаження операційної системи. Закінчили ми на тому, що 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_MACHINESYSTEMServices. Якщо значення 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 стартує мережеву службу.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*