XP start-up sekvenca, šta se tačno dešava.

freak71

Aktivan član
Poruka
1.571
U ovom tekstu objašnjeno je šta se zapravo dešava od trenutka kada se upali računar pa sve dok se na monitoru ne pojavi "radna površina". Poznavanje procesa koji se odrađuju u nekih 20-tak sekundi pomoćiće u lakšem sagledavanju i rešavanju problema vezanih za butovanje XP-a.
Sekvenca startovanja zove se startup sekvenca ili boot sekvenca.

Startup sekvenca za WindowsXP (za x86 sisteme):
Svaki PC ima malu količinu CMOS (complementary metal oxide semiconductor izgovara se see-mos) memorije, koja se napaja baterijom. Ova memorija, za vreme dok je računar isključen, pamti datum, vreme i sistemske parametre kao npr. redosled butabilnih uređaja, frekvenciju magistrale itd... BIOS (Basic Input Output System) čip snabdeva procesor instrukcijama prilikom uključenja računara pre nego se učita operativni sistem. BIOS je program, a ne uređaj (procesor izvršava instrukcije), a u CMOS-u su pohranjena podešavanja. BIOS je nalik preoperativnom sistemu.

Pre-boot sekvenca
Prvo što procesor uradi nakon uključenja je POST (Power On Self Test) rutina, na osnovu instrukcija koje dobija od BIOS-a. POST je rutina koja proverava da li je pri uključenju "sve na broju" (misli se na neophodne komponente kao što su memorija, grafički adapter itd...). Na osnovu podataka pohranjenih u CMOS-u zna se redosled butabilnih uređaja. Obično je na prvom mestu floppy, sledi CD-ROM, pa tek onda HDD (Hard Disk Drive), ali se najčešće butovanje odvija sa hard diska. Sa hard diska se prvo čita MBR (Master Boot Record) koji se nalazi se na početku prvog sektora i sastoji se od boot koda i boot tabele. Na osnovu boot tabele se zna koja je aktivna particija.

Boot-sekvenca
Prvi sektor aktivne particije sadrži boot kod koji omogućuje da računar locira i pokrene Ntldr - program koji kasnije bira i pokreće operativni sistem. Kad je uspešno lociran i pokrenut Ntldr, BIOS mu prepušta kontrolu. Ntldr učitava startne fajlove sa boot particije i iz real-moda (u kojem se koristi samo 640kB) prelazi u 32-bitni mod čime omogućava procesoru da koristi veću količinu memorije (2GB). Ntldr dalje obrađuje Boot.ini fajl da bi odabrao boot particiju operativnog sistema. Ako se odabere WinXP, WinNT ili Win2000, Ntldr nastavlja sa fazom detekcije hardvera. Ako se odabere Win98, Win95, WinMe ili MS-DOS tada Ntldr prepušta kontrolu Bootsect.dos fajlu, čitajući MBR koji Bootsect.dos sadrži, kao da je taj MBR pročitan sa početnog sektora diska. Pretpostavimo da je izabran Windows XP, onda će Ntldr pokrenuti Ntdetect.com program koji sprovodi osnovnu detekciju hardvera. Ntldr sakuplja informacije o tipu hardvera i uređajima (datum i vreme, tipovi magistrala i adaptera, video adapter, tastatura, komunikacioni portovi, diskovi, flopi diskovi, miš, paralelni portovi, uređaji na ISA magistrali). Ntdetect.com informacije o hardveru prosledjuje Ntldr-u. Nakon detekcije hardvera, Ntldr vrši izbor hardverske konfiguracije tj. hardverskog profila (prenosivi računari mogu imati dva profila docked i undocked, kod desktop računara postoji samo jedan i taj se učitava automatski).

Sekvenca učitavanja Kernel-a
Ntldr dalje učitava Kernel (Ntoskrnl.exe) i HAL (hal.dll) ali ih još uvek ne startuje. HAL (Hardware Abstraction Layer) služi da spreči programe (drajvere) da direktno pristupaju hardveru. (Ovo je razlog zašto mnogi DOS programi ne mogu da rade pod WindowsXP-om) Registry baza je baza podataka svih podešavanja potrebnih za pokretanje Windows-a i programa koji su instalirani. Ntldr iz Registry baze čita ControlSet - skup podataka o drajverima i servisima. Taj skup podataka se nalazi u HKEY_LOCAL_MACHINES\SYSTEM\CurrentControlSet\.
Ntldr učitava drajvere sa startnom vrednošću 0, takozvane low-level drajvere, kao na primer drajver za hard disk kontroler. Low-level drajveri mogu direktno pristupati hardveru. Nakon njihovog učitavanja Ntldr prepušta kontrolu Kernel-u (Ntoskrnl.exe).

Sekvenca inicijalizacije Kernela
Početak ove sekvence praćen je prikazivanjem Windows XP logoa na ekranu. Ntoskrnl.exe upisuje Hardware Key u Registry bazu. Hardware Key se upisuje u HKEY_LOCAL_MACHINE\HARDWARE. Ntoskrnl.exe kreira Clone Control Set, identičan onom koji je učitao Ntldr, a koji se koristi kasnije u boot procesu. Ntoskrnl inicijalizuje low-level drajvere, koje je ranije učitao Ntldr, pretražuje HKEY_LOCAL_MACHINES\SYSTEM\CurrentControlSet\Services u potrazi za drajverima i servisima sa startnom vrednošću 1 (npr.mrežni protokoli) i inicijalizuje ih čim ih učita. Ako pritom dođe do greške startup može da se nastavi bez ikakvog upozorenja ili u najgorem slučaju da se potpuno prekine. Pokreće se Session Manager (Smss.exe), koji prebacuje Windows iz tekst moda u grafički mod, pokreće Logon Manager i kreira dodatnu virtuelnu memoriju (paging files). Session Manager na osnovu podataka iz Registry-ja izvršava komande koje se moraju pokrenuti pre startovanja servisa. Na primer, ako se detektuje problem u fajl sistemu, koji zahteva popravku pre završetka procesa butovanja, Session Manager će pokrenuti Autochk.exe.

Sekvenca logovanja
Windows podsistem pokreće Winlogon.exe. Winlogon pokreće Service Control Manager (Services.exe) i startuje Local Security Authority (Lssas.exe). GINA (Graphic Identification and Authrntication) komponenta sakuplja korisničko ime i lozinku. Sada se na osnovu Clone Control Set-a ažurira Control Set i ažurira se Last Known Good configuration i "stupa na snagu"Group Policy settings. Pokreću se Startup programi. Podaci o njima nalaze na sledećim lokacijama i u sledećim ključevima registra:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run, HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run, HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce, systemdrive\Documents and Settings\All Users\Start Menu\Programs\Startup, systemdrive\Documents and Settings\username\Start Menu\Programs\Startup.

Startup proces je završen tek nakon uspešnog logovanja.
 

Back
Top