Windows NT-startproces

Windows NT-startprocessen  er processen med initialisering af operativsystemerne Microsoft Windows NT , Windows 2000 , Windows XP og Windows Server 2003 . I Windows Vista har processen ændret sig meget.

Opstartsfase

Opstartsfasen varierer afhængigt af hardwareplatformen. Startende fra den tidlige ikke-OS-fase er starten af ​​opstartsprocessen:

Fra dette tidspunkt fortsætter opstartsprocessen med at gøre følgende:

NTLDR-filen, der findes i rodmappen på bootdisken, består af to dele. Den første er StartUp-modulet, efterfulgt af OS-indlæseren (osloader.exe), begge dele er gemt i NTLDR-filen. Når NTLDR indlæses i hukommelsen, overføres styringen til StartUp-modulet, hvor CPU'en kører i real mode . Hovedopgaven for StartUp er at overføre processoren til beskyttet tilstand , som tillader brug af 32-bit hukommelsesadressering, samt oprettelse af en interrupt descriptor tabel , en global descriptor tabel , en sidetabel og aktivere hukommelsessøgning. Dette gøres ved at bruge funktionerne i det primære operativsystem, hvor operativsystemet er installeret. StartUp-modulet downloader og starter derefter OS-indlæseren.

OS-indlæseren i NTLDR indeholder grundlæggende funktionalitet til at få adgang til IDE -drev formateret med NTFS , FAT , CDFS ( ISO 9660 ), ETFS eller UDFS filsystemer på de nyeste operativsystemer. Der er adgang til diske via BIOS gennem det indbyggede ARC-program på systemer med ARC eller via netværket ved hjælp af TFTP -protokollen . Ud over dette punkt går alle opkald til BIOS'en gennem den virtuelle 8086-tilstand , da der ikke er direkte adgang til BIOS'en fra beskyttet tilstand. Hvis opstartsdrevet er SCSI , og SCSI-controlleren ikke bruger den 13. real-mode interrupt, indlæses en ekstra Ntbootdd.sys -fil for at få adgang til drevet . Det er en kopi af den samme SCSI- miniport -driver , som bruges, når Windows starter op.

Bootloaderen læser derefter indholdet af boot.ini-filen for at finde information om systemvolumen. Hvis der ikke er en sådan fil, forsøger indlæseren at finde information fra standardinstallationsmappen. For Windows NT-maskiner er dette mappen C:\WINNT. For Windows XP- og 2003-maskiner indlæses det fra C:\WINDOWS.

Skærmen ryddes på dette tidspunkt, og i Windows 2000 og nyere versioner af NTLDR og IA64ldr, der understøtter systemdvale , er standardvolumen-rodmappen defineret i boot.ini for at søge efter dvalefilen hiberfil.sys . Hvis denne fil findes, og aktiv hukommelse kører, indlæses indholdet af filen (som har samme størrelse som den fysiske hukommelse i maskinen) i hukommelsen og overfører kontrol til Windows-kernen fra det punkt, hvor dvaletilstanden blev gendannet. Filen markeres derefter straks som inaktiv, så korruption eller andre fejl ikke kan forårsage, at denne (allerede forældede) hukommelsestilstand genindlæses. Hvis statusreturn mislykkes, spørger NTLDR næste gang brugeren, om de skal prøve igen at gendanne eller annullere behandlingen af ​​filen og udføre en normal download.

Hvis boot.ini indeholder en post for mere end ét operativsystem, så får brugeren vist en opstartsmenu, der giver dem mulighed for at vælge hvilket operativsystem der skal startes. Hvis et ikke-NT-baseret operativsystem som Windows 98 er valgt, indlæser NTLDR den relevante opstartssektorfil, der er angivet i boot.ini (standarden er bootsect.dos , hvis intet andet filnavn er angivet), og udførelseskontrollen overføres til ham. Hvis et NT-baseret operativsystem vælges, starter NTLDR ntdetect.com , som indsamler grundlæggende oplysninger om computerens hardware som rapporteret af BIOS .

På dette tidspunkt i opstartsprocessen rydder NTLDR skærmen og viser en pseudo - grafisk statusindikator (som ofte ikke er synlig under XP- eller 2003-systemer på grund af deres initialiseringshastighed); Windows 2000 viser også teksten "Starter Windows...". Hvis brugeren trykker på F8 i denne fase, vises en udvidet opstartsmenu, der indeholder forskellige specielle opstartstilstande, inklusive sikker tilstand med sidste vellykkede opstartskonfiguration, fejlfinding aktiveret og (i tilfælde af serverudgaver) gendannelsestilstand for bibliotekstjenester .

Downloaden fortsætter, så snart et af punkterne er valgt, eller hvis der trykkes på F8 igen.

Kernel boot fase

  1. ntoskrnl.exe (kerne)
  2. hal.dll (hardware abstrakt lagtype)
  3. kdcom.dll (Hardware Debugger Kernel Extension Library)
  4. bootvid.dll (til Windows-logo og opstartsstatusindikator)
  5. config\system - registreringsdatabasen
    1. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
    2. serviceprocesser i rækkefølge efter beredskab
    3. *HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder

Initialiseringen af ​​kerneundersystemet og Windows-udførelsesundersystemet udføres i to faser.

I den første fase oprettes de grundlæggende interne hukommelsesstrukturer, og hver processors interruptcontroller initialiseres. Hukommelseshåndteringen initialiseres, områder oprettes til filsystemets cache, sideordnede og ikke-sidede hukommelsesafstemninger. Objektmanageren [1] initialiserer det sikkerhedstoken, der skal tildeles den første proces i systemet, og procesmanageren initialiserer sig selv. På dette tidspunkt, ligesom en systemproces, oprettes en System Idle Process .

Det andet trin involverer initialisering af enhedsdrivere, som er blevet identificeret af NTLDR som systemdrivere.

Under processen med at indlæse enhedsdrivere er en statusindikator synlig nederst på systemskærmen under Windows 2000; i Windows XP og Windows Server 2003 er dette blevet erstattet med en animeret bjælke, der ikke afspejler procedurens realtid. Før Windows 2000 tog denne del af opstartsprocessen væsentlig længere tid, fordi driverne blev initialiseret én ad gangen. I Windows XP og Windows Server 2003 initialiseres alle drivere asynkront.

Se også

Noter

  1. Windows NT Object Manager . Hentet 20. august 2008. Arkiveret fra originalen 21. april 2008.

Links