Windows - A Windows NT alapú rendszerek boot-olásának folyamata

Több cikkünk is foglalkozott már az NT alapú operációs rendszerek indulásának különféle kritikus lépéseivel, hibaelhárításával. Következzék most egy áttekintés arról, hogy milyen lépésekből is áll az NT/2000/XP indulása. Segítségünkre lesz egy apró alkalmazás, amellyel kitűnően tesztelni tudjuk az XP boot folyamatát.
Bevezetés
Az NT boot folyamatának megértése sok segítséget nyújthat, ha rendszerünkben hibát keresünk, hibaelhárítást végzünk. Most az Intel processzorral rendelkező rendszerek indulásának vizsgálatára szorítkozunk.
Boot folyamat
Lássuk pontokba szedve, hogy mi is történik attól a pillanattól kezdve, hogy gépünket bekapcsoljuk:
  • Először a Power On Self Test (POST) folyamat zajlik le. A BIOS, beállításaitól függően próbál operációs rendszert indítani. Tekintsük alapértelmezettnek, hogy a merevlemez a boot eszköz.
  • A Master Boot Record (MBR) indulása következik. Az MBR beolvassa a lemez partíciós tábláját és megkeresi az aktív partíció kezdetét. A Partition Boot Record (PBR) betöltődik, és ha NT/2000/XP van a gépünkön, akkor az elindítja az NT Loader, NTLDR nevű programot.
  • Az Intel processzorok alapértelmezetten 16 bites módban indulnak. Az NTLDR védett - 32 bites memória modellt támogató - módba állítja a processzort, és elindítja a FAT, vagy NTFS fájl rendszert. Betölti a BOOT.INI állományt.
  • A BOOT.INI sokféleképpen paraméterezhető. Segítségével választhatunk az elérhető operációs rendszerek közül, hogy melyiket kívánjuk elindítani.
  • Ha NT rendszer indulását választottuk, az NT Loader az NTDETECT.COM segítségével megvizsgálja, hogy milyen hardvereszközök találhatóak.
  • Az NT Loader ezután elindítja az NT kernelt (NTOSKRNL) és a Hardware Abstraction Layer (HAL) programot. A HAL kezeli a platformfüggő interfészeket.
  • A Registry betöltődik a „%systemroot%\system32\config\” mappában található SAM, SECURITY, SOFTWARE, SYSTEM backup állományokból.
  • Ezen a ponton töltődnek be azok a meghajtók, amelyek boot-time driverek. Pl. merevlemez, képernyő, billentyűzet stb.
  • Következő lépcsőben betöltődik a többi driver. Az előzőleg felismert hardverelemek megjelennek a Registry HKEY_LOCAL_ MACHINE\HARDWARE bejegyzése alatt.
  • Az NT kernel elindítja a Session Manager SubSystem (SMSS) alkalmazást, és a boot-oláskor indítandó egyéb alkalmazásokat, amelyek a Registryben szerepelnek.
  • A kernel futtatja az AUTOCHK lemezvizsgálót, majd a memória management és a swap file indul. Ezután különféle NT alrendszerek, köztük a Win32 alrendszer indul el.
  • A Win32 indítja a WINLOGON alkalmazást, ami a felhasználók beléptetését kezeli.
  • WINLOGON indítja a Local Security Authory Service-t (LSASS), ami a Windows biztonsági funkcióit működteti.
  • Végezetül a kernel futtatja a Service Controller-t (SCREG), ami elindítja az automatikusan indítandó szolgáltatásokat, serviceket
  • Az első belépés után a beállításokról másolat készül a Registry LastKnownGood területére.
Hogyan teszteljük XP gépünk boot-olását?
A Microsoft alábbi weboldaláról letölthető egy egyszerű alkalmazás, amely segítségével tesztelni tudjuk a boot folyamatot, ha Windows XP operációs rendszert használunk.
http://www.microsoft.com/hwdev/platform/performance/fastboot/default.asp
Miután újraindítjuk gépünket, a program figyelemmel kíséri a boot-olást, és elmenti adatait egy állományba, amelyet ezután megtekinthetünk. Nyomon követi a processzor kihasználtságát, a merevlemez olvasás/írás intenzitását, eszközmeghajtók elindulási idejét, és az induló folyamatokat. Mindezt az eltelt idő függvényében táblázatos formában jeleníti meg. Képes a hibernálásból, vagy készenléti állapotból felálló rendszert is figyelemmel kísérni, sőt optimalizációt is végez. Ez a kis alkalmazás hasznos lehet, ha nem tudjuk, hogy miért lassult le indulási folyamatunk.