Как се стартира Windows
Разбирането на процеса на стартиране на една операционна сиситема (в случая Windows) е изключително важно при разрешаване на проблеми, свързани със зареждането й. В последно време ми се налага по-често да дебъгвам проблеми на “Джам” ОС и затова ползвам нещо като план с елементарните ми познания по въпроса. Пускам го без редакция. Предварително се извинявам за вида, в който го публикувам.
1. mbr
2. boot sector
3. boot loader (ntldr)
*преминава от 16-bit към 32-bit режим и включва paging
*ако съществува зарежда Ntbootldd.sys
-използва се, ако е от SCSI disk
*чете boot.ini
– точки за достъп до зареждащи дялове
– ако има повече от един избор се появява меню с отброяване на време
*ако се избере 64-bit ОС, превключва в 64 битов режим
*F8 за специално меню за зареждане
*Ntdetect.com осъществява BIOS хардуерно откриване
– след това записва (по-късно) в: HKLM\Hardware\Description
*SYSTEM регистрите се зареждат
– зарежда драйвери: критично важни за зареждащия процес (например драйвера за файловата система)
*Ntoskrnl.exe и неговите dll`s
*прехвърля контрола на Ntoskrnl.exe
4. ОС
*splash screen се визуализира
*2 фази на инициализация на ядрото
*зарежда стартиращите драйвери (boot-start drivers)
* чете регистрите и зарежда system-start drivers
* създава процеса за управление на сесиите [Session Manager(Smss.exe)]
??ред на зареждане на драйвеи и сервизи
-дефинирани са с уникални ключове в регистрите
-HKLM\System\CurrentControlSet\Services
type 1 -драйвер
type [друго] – сервиз
0=boot
1=system
2=auto
3=manual
4=disable
повечето plug and play драйвери са на manual
5. Мениджър на сесиите
*стартира BootExecute програмите
-Autochk.exe (проверка на диска)
-тук е мястото, където най-често се стартира malware
*започва процес на отложени премествания и преименувания на файлове (например при updates)
*отваря paging файловете
*инициализира останалите регистри
!!!=>до този момент, ако се получи срив, той няма да се отрази в dump
*зарежда Win32k.sys драйвера
– kernel mode на прозоръчната система (windowing system)
*стартира Csrss.exe процеса
– user mode на прозоръчната система
*стартира Winlogon.exe
-интерактивен процес на влизане в системата (logon)
6. Прозоръчната система
*Csrss.exe инициализира прозоръчната система
*системата преминава към GUI режим
*показва се курсора
7. Идентификация и сървър за сигурност
*Winlogon.exe стартира Lsass.exe
– Local Security Authority
– осъществява идентифициране
*старира GINA.dll
-по подразбиране е Msgina.dll
-показва logon полето
*стартира Services.exe (Servece Control Manager)
??процес на влизане в системата
-Winlogon.exe изпраща потребителското име и парола на Lsass.exe
-създава инициализиращ(и) процес(и)
-по подразбиране Userinit.exe
HKLM\Software\Microsoft\WindowsNT\CurrentVersion\WinLogon\Userinit
8. Стартиране на сервизите
*Services.exe стартира сервизите, които са auto
*повечето user mode процеси
*тук могат да се заредят и някои kernel mode драйвери (за записване на дискове софт.,антивирус.)
*продължава асинхронно зареждане
Това е. При проявен интерес, ще форматирам текста в разбираем вид. В различните версии на операционната система има леки разлики. Например след NT 6.0 (Windows Vista, 7, server 2008 и т.н.) ntldr се заменя от Windows Boot Manager (BOOTMGR) и winload.
Публикувано на | December 28, 2009 | 3 Коментара