29.01.2005., 21:54
|
#1
|
Premium
Datum registracije: Dec 2004
Lokacija: Constantinopolis
Postovi: 1,002
|
Windows XP boot process
vrlo je popularno tweakati sve i svašta kako bi se boot proces XPa ubrzao za par sekundi. na netu ima tone tweakova, ali nisam vidio da je itko ikada opisao Windows XP boot process. so, ako vas je oduvijek zanimalo što se sve događa od trenutka kada pritisnete power button do logon sounda tekst ispod je za vas.
<hr align="left" width="400" color="darkblue">XP boot process se sastoji od 5 faza. to su redom:- 1. preboot sekvenca
. . . a)Power On Self Test
. . . b) boot device i MBR
. . . c) boot sektor
. . . d) NTLDR
2. boot sekvenca
- . . . a) inicijalna boot loader faza
. . . b) faza selekcije operativnog sistema
. . . c) faza detekcije hardvera
. . . d) faza odabira hardware profila/konfiguracije
3. sekvenca loadanja kernela
. . . a) loadanje ntoskrnl.exe
. . . b) loadanje hal.dll
. . . c) loadanje HKEY\LOCAL_MACHINE\SYSTEM
. . . d) selekcija control seta
. . . e) loadanje device drivera
4. sekvenca inicijacije kernela
. . . a) kreiranje hardware keya
. . . b) kreiranje clone control seta
. . . c) pokretanje device drivera
. . . d) startanje servisa
5. logon sekvenca
. . . a) local security authority
. . . b) loadanje servisa
. . . c) zapisivanje clone control set i last known good configuration
<hr align="left" width="400" color="darkblue">
. . . 1. preboot sekvenca: započinje u trenutku kada pritisnete power gumb. računalo zatim u POST fazi traži osnovne hardverske komponente (RAM, CPU, tipkovnica, ...). BIOS zatim traži boot device. kada ga pronađe - locira i pokreće Master Boot Record, čija je zadaća lociranje i inicijalizacija Boot sektora na aktivnoj, odnosno sistemskoj, particiji. stvar preuzima NTLDR koji se nalazi na boot sektoru i započinje
. . . 2. boot sekvenca: nakon što je NTLDR pokrenut, on u initial boot loader fazi prikuplja informacije o hardveru i driverima, a također pokreće i mini file system drivere kako bi kasnije mogao koristiti FAT, FAT32 ili NTFS particije za loadanje OSa. kada je to napravio, NTLDR u fazi selekcije operativnog sustava gleda u boot.ini datoteku i ako u njoj nađe da postoji dual-boot konfiguracija prikazuje meni za odabir operativnog sustava. meni se po defaultu prikazuje 30 sekundi, a zatim se pokreće defaultni OS. ukoliko ne postoji dual boot, ne prikazuje se ništa već se pokreće jedini OS. u fazi detekcije hardvera ntdetect.com detektira com i paralell portove, floating-point koprocesor, floppy disk, tipkovnicu, miša, SCSI i video adaptere. prikupljene podatke tada šalje NTLDRu koji će ih kasnije predati Kernelu kako bi ih ovaj mogao zapisati u registry. slijedeća na redu je faza odabira hardware profila/konfiguracije. ukoliko postoji više hardverskih profila NTLDR prikazuje ekran za odabir. u slučaju da postoji samo jedan profil, podizanje sustava se nastavlja korištenjem defaultnog profila. nakon završetka boot sekvence, započinje
. . . 3. sekvenca loadanja kernela.. u ovoj sekvenci NTLDR loada ntoskrnl.exe, no ne pokreće ga. zatim loada hal.dll, HKEY\LOCAL_MACHINE\SYSTEM, odabire koji Control Set pokrenuti, te loada sve device drivere čija je Start vrijednost 0x0. točan redoslijed po koje NTLDR pokreće drivere nalazi se u HKEY\LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder. kada su svi driveri loadani, počinje
. . . 4. sekvenca inicijacije kernela - NTLDR koji je obavio sav posao do sada konačno inicijalizira ntoskrnl.exe, daje mu podatke o hardveru koje je prikupio ntdetect.com i prepušta mu kontrolu. ntoskrnl.exe koji je kernel operativnog sistema konačno dolazi na svoje i odmah pohranjuje te podatke u HKEY\LOCAL_MACHINE\HARDWARE - kreiranje hardware keya. kada već prčka po registryju, kreira clone control set. a kreira ga tako da napravi kopiju control seta koji je zapisan u podključu HKLM\SYSTEM\Select\Current. kada je gotov s tim, ntoskrnl.exe zatim prelazi na pokretanje device drivera koje je u prijašnjoj sekvenci (3) loadao NTLDR. zatim loada i odmah pokreće drivere čija je Start vrijednost 0x1. ako nema nikakvih errora započinje zadnja faza inicijalizacije kernela. ako kojim slučajem ipak dođe do greške, kernel u registryju - HKLM\SYSTEM\CurrenTControlSet\Services\naziv drivera ili servisa\ErrorControl - pogleda o kakvoj je grešci riječ i kako se ponašati (vidi slijedeći post). zadnja faza je startanje servisa u kojoj ntoskrnl.exe predaje kontrolu Session Manageru (Smss.exe) koji zatim pokreće instrukcije iz HKLM\SYSTEM\CurrentControlSet\SessionManager. ovo uključuje pokretanje programa i naredbi prije pokretanja servisa, kreiranje informacija o Paging Fileu, podrške za DOS aplikacije i pokretanje Win32 subsistema koji kontrolira I/O uređaje i video display. Win32 pokreće i WinLogon proces.
. . . 5. logon sekvenca započinje kada winlogon.exe pokrene local security authority (lsass.exe) koji prikaže logon dijaloški okvir. dok vi utipkavate lozinku service controller pogleda kaj ima u HKLM\SYSTEM\CurrentControlSet i pokreće sve servise čija je Start vrijednost 0x2. ovo traje* i nakon što opalite <enter> i dok gledate Heidi Klum ili kojeg već wallpaper komada imate. nakon što se svi servisi loadaju, vi dobijete komada i sve ikonice, pun tray koječega - login se smatra uspješnim i CloneControlSet se kopira u LastKnownGoodRecovery konfiguraciju unutar registrya.
<hr align="left" width="200" color="darkblue" size="1">*ovo traje pun kooratz i ovdje se može skinuti par sekundi jer XP po defaultu loada gomilu većini nepotrebnih servisa.
na http://www.blackviper.com/ možete naći sve o servisima i kako ih podesiti, uz gomilu korisnih stvari o XPu.
materijal korišten u pisanju: osobne bilješke s MOCa.
|
|
|