Fra power-on til login.

Den første del af en Intel x86-kompatibel computers opstart foregår i PC-arkitekturens 16-bit ”real” mode, som den oprindeligt blev introduceret i
IBMs PCer med de første Intel 8086/8088-processorer.

Derfor er alle opslag i hukommelsen ”mærket” af de begrænsninger, som er
i den oprindelige PC-arkitektur. F.eks. kan de registre i processoren, som i
real-mode bliver brugt til at pege på den programkode, der skal eksekveres,
kun indeholde 16 bits. Men den adresserbare hukommelse på en 8086/8088-processor er 20 bits. For at løse det problem benytter man sig af hukommelsessegmentering. Der er i processoren nogle registre, hvori man
angiver hhv. segment- og off-set-adresse. På den måde kan man kombinere
to 16-bit-registre, så de kan repræsentere en 20-bit hukommelsesadresse.

For at gøre en meget lang historie meget kort, ynder man i teknisk
dokumentation (herunder Microsofts egen) gerne at opgive 20-bit hukommelsesadresserne i real-mode på normaliseret segment:offset-form,
som i ”C1FF:000Fh”, hvilket bliver tolket som adressen ”C1FFFh”, idet
man ”låner” de sidste 4 bits i off-set-adressen til at tilføje de manglende 4
bits til de 16 bits i segment-adressen. Yderligere diskussion om segment:
offset-notation og normalisering heraf er langt udenfor dette dokuments emne.

Opstarten i 16-bit real-mode, og dermed brug af 16-bits registre til hukommelsesadressering, gælder alle Intel og -kompatible processorer fra
8086 og frem til og med AMDs 64-bit Opteron., og det er derfor vigtigt at
have en forståelse af brugen herfor, da det har implikationer for alle PCer
leveret de sidste 25 år, og vil formentligen holde ved også nye systemer
nogle år endnu, indtil nogen får taget sig sammen til at lave og få udbredt
en 64-bit BIOS ROM.

Strømmen slås til
Strøm tilsluttes strømforsyningen

Bruger tænder for computeren ved, via tænd/sluk-knappen på
computerens front, at jorde PS_ON-signalet (som konstant ellers
holdes på enten +3,3V
eller +5V, sålænge der er 230V spænding til strømforsyningen) på ATX-strømstikkets pin 14, så det kommer ned under +0,8V, hvilket aktiverer elektronikken i strømforsyningen.

Strømforsyningen laver intern POST (tjekker om der kan etableres de
forskellige strømme indenfor en acceptabel margin)

Hvis strømforsyningens interne POST gennemføres uden fejl, sendes”
Power_Good”-signalet til bundkortet (nominelt +5V, men normalt er
+2,4V- +6V accepteret via pin 8 på det 20-pins ATX-strømstik eller pin
1 på det ældre P8 AT-strømstik).

It’s ALIVE!
Processoren får ”Power_Good”-signal, og starter – i 16 bit ”real” mode,
som alle Intel- og kompatible processorer starter op i - eksekvering af
programkode på adressen FFFF:0000h, som via en JMP-instruktion sender processorens eksekvering videre til BIOS’en, normalt placeret på enten
adresse E000:0000h eller F000:0000h (alt efter om det er en 128 kB eller
64 kB BIOS ROM)

Plug’n’Play-BIOS
Hvis systemet indeholder en Plug’n’Play BIOS, eksekveres denne:

CMOS NVRAM gennemlæses for at finde I/O-porte, IRQ og DMA-
kanaler og andre indstilinger, der skal bruges for at konfigurere
Plug’n’Play-enhederne i systemet.

Alle fundne Plug’n’Play-enheder-enheder bliver slået fra

Plug’n’Play-BIOS’en danner en oversigt over hvilke ressourcer, der
bliver brugt.

Alle Plug’n’Play-enheder bliver konfigureret igen, én efter én

Hvis en computer ikke har en Plug’n’Play-BIOS, vil Plug’n’Play-
enheder initieres med deres standard-værdier. De bliver så
omkonfigureret dynamisk når Windows starter, da Windows da vil
bruge sine egne Plug’n’Play-faciliteter til at initiere Plug’n’Play-
enhederne

Grafikkortet findes og slås til
BIOS-programmet leder efter en video ROM mellem adresserne
C000:0000h og C780:0000h. Hvis en sådan findes, testes den først
ved at validere en checksum. Såfremt checksum-testen lykkes, afvikles
video ROM’en.

Koden i Video-ROM’en initierer grafikkortet, og cursoren dukker op
på skærmen.

Andre enheder findes og slås til
For at finde evt. andre ROM’er, der skal afvikles inden systemet går
videre med bootstrap (f.eks. SCSI-controller eller netkort, der skal
bruges til at boot’e via netværk med f.eks. PXE), undersøges
adresseområdet C800:0000h – DF80:0000h for yderligere ROM’er,
og hvis en sådan findes, eksekveres den efter at der er blevet udført en
checksum-test af ROM’ens kode.

Kold- eller varmstart?
BIOS-programmet undersøger nu adressen 0000:0472h for at finde ud af
om der er tale om en kold- eller varmstart.

Hvis indholdet er 0x1234, betyder det, at der er tale om en varmstart, og
når man kommer til Power On Self Test (POST)-proceduren, vil den
tidskrævende test af hukommelsen ikke blive udført.

Hvis indholdet ikke er 0x1234, vil POST køre den fulde hukommelsestest,
såfremt denne ikke er slået fra i BIOS’ens opsætning.

Power On Self Test (P.O.S.T.)
Programmet i ROM BIOS udfører en grundlæggende test, kaldet Power
On Self Test (POST), af hardwaren. Alt efter hvilket mærke og hvilken
model BIOS ROM, som systemet benytter, kan en fejl i en test her enten
signaleres via systemets højttaler eller på skærmen, såfremt at denne er
initieret. Ikke alle fejl meddeles dog på denne måde – eller også forsøges
de vist på skærmen, før skærmkortet er initieret. I så fald er det
behjælpeligt at have adgang til et ”POST”-indstikskort, som kan vise en
tocifret hexadecimal kode for hver funktion og test, som BIOS ROM’en gennemløber. Hvis en test fejler, vil POST-indstikskortet vise hvilken test,
der er fejlet. Disse test-koder er forskellig for hver BIOS-producent, men
kan som regel findes på disses hjemmesider eller andre steder på Internettet.

Bootstrapping
Hvis alt indtil nu er gået godt, vil BIOS’en forsøge at læse en boot record
fra det drev, systemet i BIOS setup er sat til at starte op fra. Normalt vil
en praktisk rækkefølge være f loppy-drev, så CD-ROM-drev, og til slut
den primære harddisk.

Harddiskens allerførste sektor, spor 0, hoved 0, sektor 1, kopieres ind i
systemets hukommelse på adressen 07C0:0000h, og dens signatur, de
sidste to bytes, sammenlignes med værdien 0x55AA.

Hvis de sidste to bytes i MBR IKKE er 0x55AA, genereres et kald til
software interrupt 0x18 (Int 18h), som indeholder en underrutine, der
viser en leverandør-specifik fejlmeddelelse på skærmen: MBR indeholder
ikke en gyldig boot record, og systemet kan derfor ikke starte fra det
valgte drev.

Hvis MBR kan indlæses, eksekveres den indeholdte programkode, som
finder den aktive partition fra den indeholdte partitionstabel. Hvis ingen
partition er sat aktiv, sendes der også her en fejlmeddelelse via Int 18h.

Når master boot-koden har læst partitionstabellen (boot sektorens
offset-adresse 0x01BE – 0x01FD) igennem og har fundet den aktive
partition, indlæses partitionens bootsektor (partition boot record eller
PBR, nogle gange også refereret til som volume boot record).
Ligesom ved MBR testes PBR’ens sidste 2 bytes for værdien 0x55AA.
Hvis de ikke er 0x55AA, får man en ”missing operating system”-
besked fra MBR-koden, og systemet standses. Eftersom at partitionens
boot record er operativsystem-afhængig, er resten af boot-processen
beskrevet under næste punkt, Windows 2000 Professional boot.

Windows 2000 Professional boot
Når en Windows 2000 Professional starter, skal den have adgang til
visse systemfiler. Herunder er en tabel over filernes navne, placering
og beskrivelse, taget fra Microsofts ”Windows 2000 Professional
Resource Kit / Deployment and Installation / Setup and startup”,
som kan læses på http://www.microsoft.com/resources/documentation/Windows/2000
/server/reskit/en-us/Default.asp?url=/resources/documentation/Windows/2000/server
/reskit/en-us/prork/prbd_std_nfkh.asp


Ntldr Roden af start-disken (f.eks. C:\) Boot-loader

Boot.ini Roden af start-disken Boot-loaderens konfigurationsfil

Bootsect.dos Roden af start-disken. Bruges kun, hvis man benytter Windows 2000s mulighed for dual-boot mellem Windows 2000 og et tidligere operativsystem som DOS eller Windows 98. Bootsect.dos indeholder den bootsektor, som det tidligere operativsystem skal bruge for at kunne starte.

Ntdetect.com Roden af start-disken Program til detektion af tilgængelig hardware ved opstart

Hiberfil.sys %systemdrive% (f.eks. C:) Dvale-fil – bruges kun under opstart, hvis computeren skal fortsætte fra en dvale-tilstand. Størrelsen er lig mængden af fysisk RAM i computeren.

Ntbootdd.sys Roden af start-disken Kun for SCSI-diske og for visse EIDE-diske. Indeholder en kopi af device-driveren for den givne enhed

Ntoskrnl.exe %systemroot%\System32 Operativsystemets kerne

Hal.dll %systemroot%\System32 Hardware abstraktions-laget

System key %systemroot%\System32\Config Systemets konfiguration, som da systemet sidst blev lukket korrekt ned.

Device drivers %systemroot%\System32\Drivers Drivere til diverse enheder og filsystemer

Cdldr Roden af start-disken


Partition Boot Record indlæses og eksekveres
Hvad der ikke fremgår her, er at bootstrap-koden i den første sektor indlæser de efterfølgende 15 sektorer, som indeholder NTLDR-bootstrappen, som så indlæser meta-data-filen master file tabellen (MFT), og finder og eksekverer udfra denne filen NTLDR.

NTLDR indlæses og eksekveres
Når filen NTLDR startes, er systemets processor stadig i 16-bit real mode. For at kunne fortsætte eksekveringen af et 32-bit operativsystem som Windows 2000, skifter NTLDR processoren fra 16-bit real til 32-bit flat memory-mode

NTLDR indeholder kode, der muliggør at yderlige filer kan indlæses fra NTFS, FAT16 og FAT32-partitioner.

Boot.ini – valg af operativsystem
NTLDR indlæser Boot.ini konfigurationsfilen, og udfra oplysningerne deri vises der en boot loader-menu. Hvis der er tale om et dual-boot-system, og man vælger at boot’e en tidligere version af Windows eller DOS, overdrager NTLDR styringen til den bootsektor, som Windows 2000 har gemt i Bootsect.dos-filen, og det tidligere operativsystem starter i stedet for Windows 2000.

Ntdetect.com – detektion af tilsluttet hardware
Hvis man vælger at starte Windows 2000, eksekverer NTLDR filen Ntdetect.com, som står for at finde den hardware, som er til rådighed for systemet, og sender disse oplysninger tilbage til NTLDR.

Ntdetect.com er i stand til at finde følgende enheder:

Computer ID

Bus/adaptortype

Grafikkort

Tastatur

Serielporte

Floppydrev

Mus eller andre pegeredskaber

Parallelporte

Ntdetect.com står også for at præsentere brugeren for flere forskellige hardware-konfigurationer, hvis man benytter sig af denne facilitet i Windows 2000 Professional.
Når ntdetect.com er færdig med at finde enheder, fører den kontrollen af systemet tilbage til Ntldr

Ntoskrnl.exe og hal.dll
Ntldr indlæser nu Windows 2000 Professionals kerne, ntoskrnl.exe, samt hardware abstraktions-laget, hal.dll, ind i hukommelsen, og eksekverer koden fra ntoskrnl.exe.


HKEY_LOCAL_MACHINE\SYSTEM indlæses
Derefter henter ntldr den sidst gemte konfiguration fra registreringsdatabasens HKEY_LOCAL_MACHINE\SYSTEM-nøgle fra %systemroot%\system32\Config\System, og ntldr danner i RAM den konfiguration (”control set”), som ntoskrnl.exe og hal.dll bruger til at initialisere computeren.

”Windows 2000 Professional”-boot-skærmen vises
Mens at ”Windows 2000 Professional”-skærmen vises, indlæser kernen de forskellige drivere fra %systemroot%\system32\Drivers.

”Windows startes” og ”Forbereder netværksforbindelser” vises
Når skærmbilledet ændres fra ”Windows 2000 Professional”-billedet, er netværksdelen (herunder TCP/IP) ved at blive initieret, parallelt med en masse andre drivere og serviceprogrammer, der bliver startet på dette punkt i boot-processen.

HKEY_LOCAL_MACHINE\HARDWARE dannes
Kernen bruger den indsamlede information fra Ntdetect.com og Ntldr til at danne HKEY_LOCAL_MACHINE\HARDWARE-nøglen i registreringsdatabasen. Denne nøgle indeholder oplysninger om den hardware, der er til rådighed ved systemets opstart. Den indeholder oplysninger om bla. bundkortets komponenter, og hvilken hardware der bruger hvilke ressourcer (som f.eks. interrupts).

Oprettelse af ”Clone control set”
Der oprettes en kopi af den nuværende konfiguration (”Current control set”), kaldet ”Clone control set”.

Winlogon.exe
Windows starter automatisk Winlogon.exe, som starter servicen Local Security Administration, og viser “Log på Windows”-dialogboksen:
Windows fortsætter med at indlæse drivere og services i baggrunden.

Brugeren logger ind
Når brugeren logger ind, starter Windows 2000 Professional de services, der er defineret for den pågældende bruger. Ved succesfuld login kopieres den tidligere dannede ”Clone control set” til ”LastKnownGood control set”, som så kan vælges under opstart, hvis man ved efterfølgende gennemløb af boot-processen skulle støde på problemer, f.eks. forårsaget af programmers eller brugeres hærgen

Ny hardware installeres
Hvis der er fundet ny hardware under opstarten via Ntdetect.com, installeres driverne til denne. Hvis Windows 2000 Professional ikke selv har nogen driver til den nye hardware (i filen %windir%\Driver Cache\<platform>\driver.cab), spørges brugeren om en placering af drivere til den nye enhed

Og således slutter en ganske almindelig boot-proces for Windows 2000 Professional.


skrevet af Nikolai lyngbye Rasmussen

Mac OS Xtra

Hvad er en Startside? mac


  1. *    en personlig start til Internettet      

  2. *    den side der kommer frem, når du starter dit internet

  3. *    ligesom google, bare bedre

  4. *    verdens bedste startside, fordi du har fundet på den

  5. *    optimeret til dig og det behov du har lige nu

  6. *    -Og det vigtigste af alt, det er altså helt gratis

Computerens opstart fra punkt til prikke.