Oppstart av en IBM-kompatibel maskin.

Lagret/oppdatert:  05aug01/17feb02

Kilder: ”The complete PC Upgrade and maintenanse Guide”, “Upgrading and repairing PC’s” og egne notater.

 

Johan Futsæther.

 

Oppstarten av en maskin foregår etter følgende modell:

 

1.        Første fasen er uavhengig av operativsystet som er installert. Dette betyr at i denne fasen opptrer alle maskiner likt under oppstart. 

2.        Andre fasen er avhengig av hvilket operativsystem som er installert. Dette betyr at i denne fasen er oppstarten forskjellig --  avhengig av hvilket operativsystem som er installert.

Jeg skal her ta for meg begge fasene av oppstarten.

 

FASE 1. Operativsystemuavhengig . (Tilbake)

 

Power On Self Test (POST)

 

Når du starter en maskinen (slår på hovedbryteren) vil maskinen kjøre gjennom et program som har til hensikt å  ”sjekke” maskinens status i øyeblikket. Dette programmet kalles ”Power On Self Test” som forkortes til ”POST” i dagligtale. Det er ikke mulig å gi en ”punkt for punkt” beskrivelse av hva maskinen sjekker og hvordan den vil reagere ved feil. Dette p.g.a. at de produsenten av maskinen har lagt inn ulike varianter av POST-programmet i BIOS.

 Punktene nedenfor er en grov skisse på hva et POST-programet utfører ved oppstart:

A.           Utfører program som ligger i ROM BIOS på hovedkortet.

B.            Utfører program som ligger i ROM Bios på adapterkort.

C.            Laster Master partisjon Boot Record-sektor. (MBR)

D.            Laster Volume Boot Record (VBR)

 

Som du ser av punktene A til D, så er ikke operativsystemet inne i bildet i det hele tatt under denne fasen av oppstarten. For å få en bedre forståelse av hva som skjer innenfor det enkelte punkt (A-D), kommer detaljene her:

POST-programmet starter:

1.        Når spenningen blir slått på, får hovedkortet spenning og spenningsforsyningen starter en test på seg selv. Hovedkortet starter ikke opp fordi uprosessor-timeren genererer ”Reset”-signaler til uP. Når spenningsforsyningen har funnet ut at alle spenninger er stabile, indikerer spenningsforsyningen dette ved å sende en ”Power Good” til hovedkortet. Denne sjekken tar fra 0,1 til 0,5 sekunder.

 

2.        uP-timeren mottar ”Power Good”-signalet og stopper å sende ”Reset”-signaler til uProsessoren.

 

3.        uP begynner å uføre program som ligger i ROM-Bios fra adresse FFFF:0000. Denne adressen ligger helt på slutten av det tilgjengelige adresseområdet for ROM-bios, så den inneholder bare en jump (JMP) instruksjon til riktig adresse i ROM-biosen.

 

4.        Rom-biosprogrammet utfører sjekk av systemet. Siden det i denne fasen ikke er mulig å gi noe ut på skjermen, indikeres feil ved ”beep” i systemhøytaleren.

 

5.        Hvis Bios er av typen ”Plug and Play, utføres neste punkt. Hvis ikke, hopp til xx

 

6.        Sjekker RAM for input/output (I/O) portadresser.

 

7.        Sjekker DMA-kretsen(e).

 

8.        Sjekker interuptkontroller og linjer (IRQ).

 

9.        Sjekker annet som er nødvendig for å kunne konfigurere PnP.

 

10.     Alt PnP-utstyr som ble funnet av PnP-biosen, blir koblet ut (”disablet”)

 

11.     Ett register på alle brukte og ubrukte ressursser blir opprettet.

 

12.     Alt PnP-utstyr blir koblet inn igjen (enabled), en etter en etter å ha blitt konfigurert. Hvis maskinen ikke har PnP-bios, blir PnP-enhetene initiert med  deres ”default settings”.  Disse enhetene KAN bli konfigurert på nytt igjen når Windows 9x starter.

 

13.     Bios utfører en scanning av video ROM memory fra C000:0000 til C780:0000 for å lete etter videokortets ROM BIOS-program. Video ROM-BIOS kan enten befinne seg på selve videokortet eller på hovedkortet. Hvis scanningen finner en video ROM-BIOS, blir det foretatt en checksumtest. Hvis sjekksumkontrollen er riktig, blir video ROM-BIOS-programmet utført. Videokortet blir initiert og cursoren kommer frem på skjermen. Hvis sjekksumkontrollen feiler, får vi følgende melding på skjermen:

C000 Rom Error

 

14.     Hvis ikke BIOS finner en en ROM på videokortet, brukes hovedkortets egen Video ROM, og cursoren kommer frem på skjermen.

 

15.     Hovedkortets ROM BIOS skanner nå gjennnom lokasjon C800:0000 til DF80:0000 for å finne andre ROM-BIOS fra andre kort som er tilkoblet. Forekesempel SCSI-kort. Hvis scanningen fører til at andre ROM-BIOS blir funnet, så sjekksumtestes disse og tilhørende program blir utført. Feiler sjekksumtesten, kommer følgende melding frem på skejermen:

 

XXXX Rom Error

 

XXXX indikerer segmentadressen for ROM som feilet.

 

 

16.     ROM BIOS sjekker nå lokasjon 0000:0472 for å se om denne starten er en varm eller kaldstart. Hvis den finner verdien 1234h, så indikerer dette (flagget) at det er en varmsatart. Dette fører til at BIOS hopper over RAM-testen av POST-programmet. Alle andre verdier i denne lokasjonen indikerer at det er en kaldstart som skal utføres.

 

17.     Hvis det er en kaldstart, uføres nå en RAM-test.

 

18.     Alle feil funnet av POST-programmet indikeres med beep i systemhøytalleren eller en errormelding på skjermen.

 

19.     Hvis hele POST-programmet ble utført uten å finne feil, indikeres dette med ETT beep i systemhøytaleren (To på Compaq-maskiner)

 

 

Boot på diskettstasjon

 

20.     ROM BIOS leter nå etter boot record (BR) som befinner seg på sylinder 0, hode 0 og sektor 1 på default bootdrive som er diskettstasjonen (A:). Dette er den aller første sektoren på A. Sektoren blir lest inn i lokasjon 0000:7C00 og sjekket.

 

21.     Hvis ikke disketten er tilstede, eller sektoren ikke kan finnes, hopper Bios til punkt xx

 

22.     Hvis første byte på disketten er mindre enn 06h, eller det første byte er større eller lik 06h og de ni første ordene inneholder det samme datamønsteret, stopper systemet og følgende error-meldng kommer opp på skjermen:

 

602- Diskette Boot Record Error

 

  1. Hvis disketten ble formatert med DOS 3.3 eller tidligere og systemfilene ikke er de to første filene i katalogen, kommer følgende feilmelding:

 

Non-System disk or disk error

Replace and strike any key when ready

 

  1. Hvis disketten ble formatert med DOS 3.3 eller tidligere og boot-sektor er ødelagt kommer følgende feilmelding:

 

A.       Disk boot failure

 

  1. Hvis disketten ble formatert med DOS 4.0 eller senere versjoner og de to første filene ikke er systemfiler eller boot-sektoren  er ødelagt, kommer følgende feilmelding:

 

Non-System disk or disk error

replace and press any key when ready

 

 

.POST-programmet ferdig!!

 

 

Booting fra harddisken: (C:)

 

  1. Hvis det ikke finnes en oppstartsdiskett i A:, leter BIOS etter Master Boot Record (MBR) på C:. (Sylinder 0, hode 0, sektor 1.) Programmet i MBR blir lastet i i lokasjon 0000:7C00 og ”signaturtestet”. Deretter blir riktig partisjon funnet. Hvis MBR er defekt får vi ”heng” på maskinen. Hvis sigaturen ikke er 55AAh som de to siste byte i sektoren vil softwareinterupt 18h genereres. Dette forårsaker følgende feilmelding, avhengig av BIOS-fabrikat:

 

IBM BIOS:

 

The IBM Personal Computer Basic_

Version C1.10 Copyright IBM Corp 1981

62940 Bytes free_

Ok_

 

De fleste IMB-maskiner fra 1987 og utover viser grafisk en diskett og ber deg å sette in en disk og trykke F1

 

AMI BIOS:

 

NO ROM BASIC – SYSTEM HALTED

 

Compaq BIOS:

 

Non-System disk or disk error

Replace and strike any key when ready

 

Award BIOS:

 

DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER

 

Phoenix BIOS:

 

No boot device available –

Strike F1 to retry boot, F2 for setup utility

 

eller:

 

No boot sector on fixed disk –

Strike F1 to retry boot, F2 for setup utility

 

Andre varianter:

 

No boot device available –

strike F1 to retry boot, F2 for setup utility

 

Selv om skjermmeldingen varierer fra BIOS til BIOS, er de forårsaket av en feil signaturen på sylinder 0, head 0 og sector 1 på harddisken. Denne skal være 55AAh.

 

MBR blir laget av DOS-programmet FDISK. FDISK legger også ned signaturen 55AAh i sektoren.

 

  1. MBR-programmet søker nå i sin partisjonstabell etter en systemindikator som indikerer at det finnes en  extended partisjon på harddisken. Hvis den finner en slik partisjon, blir bootsectoren for denne extended partisjonen lastes inn. Denne extended partisjonen inneholder en tabell for flere extended partisjoner som da indikerer logiske partisjoner. Også bootsectoren for den logiske partisjonen blir lastet inn. Slik fortsetter det inntil max 24 logiske partisjoner

 

  1. MBR leter nå i sin partisjonstabell etter hvilken partisjon som er merket aktiv. Hvis ingen partisjon er merket aktiv, vil BIOS gi en feilmelding. Hvis byte som markerer aktiv partisjon er defekt, eller mer enn en partisjon er markert som aktiv, vil hele systemet stoppe opp og følgende feilmeding kommer på skjermen:

 

Invalid partition table

 

  1. Hvis en feilfri aktiv partisjonsmarkering blir funnet i tabellen, blir innholdet lastet opp og testet.

 

  1. Hvis partisjonen ikke lar seg lese etter fem forsøk, får vi følgende feilmelding:

 

Error loading operating system.

 

31.     Harddiskens bootpartisjon blir testet for sin signatur som skal være 55AAh som de to siste byte i sektoren. Hvis denne signaturen ikke stemmer, får vi følgende feilmelding:

Missing operating system

32.     Harddiskens bootpartisjonsprogram blir utført. Programmet ser etter kjernen til ett operativsystem og prøver å laste dette. Hvis den ikke finner opeerativsystemkjernen eller har problemer med å lese den, får vi en av følgende feilmeldinger på skjermen.:

 

Non-System disk or disk error

Replace and strike any key when ready

 

Invalid systemdisk-

Replace the disk, and then press any key

 

 Disk boot failure

Disk I/O Error

 

 

FASE 2. Operativsystemavhengig fase. (Tilbake)

 

Fra nå av vil oppstarten være avhengig av hvilket operativsystem som er installert. Jeg skal nå ta for meg den videre oppstart for følgende operativsystemer.:

A. DOS

B. Windows 9x/Me

C. NT/2000

 

B.       DOS som operativsystem. (Tilbake)

 

  1. IO.SYS (IBMIO.COM) blir lastet inn.

 

  1. IO.SYS kopierer seg selv til øvre del av DOS-memory, og lar kopien få kontroll.

 

  1. MSDOS.SYS blir nå kopiert over deler av IO.SYS som ligger i nedre del av memory. Dette kan gjøres fordi det ikke er behov for hele IO.SYS lenger. (Windows 9x sin IO.SYS kombinerer DOS sin IO.SYS og MSDOS.SYS)

 

  1. MSDOS.SYS initieres og utføres. Drivere for basale utstyrsenheter blir initiert, disksystemet blir resatt, tilkoblet utstyr blir resatt og initiert og system defaults blir satt.

 

  1. Hele DOS-filsystemt er nå aktiv. Kontrollen blir overlevert IO.SYS.

 

  1. IO.SYS sørger for at CONFIG.SYS blir lest flere ganger. (I windows 9x, leter IO.SYS også etter SYSTEM.DAT.)

 

  1. COMMAND.COM lastes

 

  1. Command.COM laster Autoexec.bat.

 

(I windows 9x IO.SYS laster automatisk HIMEM.SYS, IFSHLP.SYS og SETVER.EXE. Til slutt lastes WIN.COM og windows starter.)

 

C.      Windows 95/98/me som operativsystem. (Tilbake)

 

Oppstarten for Windows 95/98/Me kan deles inn i tre deler:

 

Del 1: IO.SYS blir lastes og kjørt.

Del 2: Real-mode konfigurasjon foretaes.

Del 3: WIN.COM lastes og kjøres

 

Første del: IO.SYS lastes og kjøres.

 

  1. IO.SYS lastes og kjøres. Drivere for basale utstyrsenheter blir initiert, disksystemet blir resatt, tilkoblet utstyr blir resatt og initiert og system defaults blir satt.

 

  1. Filsystemet blir aktivert, og kontrollen gitt tilbake til initieringskoden i IO.SYS

 

  1. Melding på skjermen om at Windows starter. Meldingen står på skjermen i n sekunder, eller til du trykker en funksjonstast.

 

  1. IO.SYS initieringskoden leser MSDOS.SYS konfigurasjonsfil. Hvis du har flere hardwarekonfigurasjoner, vil du få følgende melding på skjermen:

 

Windows cannot determine what configuration your computer is in.

 

Du må her velge en hardwarekonfigurasjon.

 

  1. LOGO.SYS bir lastet og utført. Startopp-logoen kommer på skjermen.

 

  1. Hvis filene DRVSPACE.INI eller DBLSPACE.INI finnes, blir filen lastet inn i RAM. IO.SYS starter automatisk HIMEM.SYS, IFSHLP.SYS og SETVER.EXE

 

  1. IO.SYS sjekker om registerfilene SYSTEM.DAT og USER.DAT inneholder korrekte data.

 

  1. IO.SYS åpner SYSTEM.DAT-filen. Hvis SYSTEM.DAT ikke finnes, så lastes SYSTEM.DA0 istedenfor. Hvis maskinen starter korrekt nå, så omdøpes SYSTEM.DA0 til SYSTEM.DAT.

 

  1. DBLBUFF.SYS blir lastet hvis DoubleBuffer=1 i MSDOS.SYS eller hvis dobbelbuffring er ”enabled” i Register Key:

 

HKLM\System\CurrentControlSet\Control\WinBoot\Doublebuffer

 

  1. Hvis du hadde flere hardwareprofiler, så lastes nå den profilen som du valgte.

 

  1. Systemet ser nå inn i registeret med følgende nøkkel:

 

Hkey_Local_Machine\System\CurrentControlSet

 

for å laste utstyrsdrivere og andre parametre som er spesifisert der før utførelsen av CONFIG.SYS

 

Andre del: Real-mode konfigurasjon foretaes.

 

 

  1. En del eldre programmer og eldre utstyrsenheter krever at drivere og filer lastes i Real mode. (16 bits mode) For å sikre bakoverkompabilitet så laster windows 95/98 filene CONFIG.SYS og Autoexec.bat hvis de finnes. Hvis CONFIG.SYS ikke finnes, laster IO.SYS følgende nødvendige drivere:

 

IFSHLP.SYS

HIMEM.SYS

SETVER.SYS

 

IO.SYS holder kontroll med hvor disse filene finnes ved hjelp av linjen  WinBootDir=  i MSDOS.SYS

MSDOS.SYS må ligge på harddisken.

 

  1. Windows reserverer hele upper memory blocks (UMB) til windows 9x operativsystemet eller for expanded memory support. (EMS)

 

  1. Autoexec.bat lastes og kjøres hvis filen finnes. Alle terminate-and stay resistente (TRS) programmer lastes inn i memory. (RAM)

 

 

Tredje del: WIN.COM lastes og kjøres.

55.     WIN.COM lastes og kjøres.

56.     WIN.COM gir tilgang til VMM32.VXD-filen. Hvis det er nok RAM,  vil filen lastes inn i RAM. Er det for lite RAM aksesseres filen fra harddisken. Dette gir en senere oppstart.

57.     VMM32.VXD (Real-mode virutuell memory loader) sjekker for dublikater av virutuelle device drivers (VxD) i WINDOWS\SYSTEM\VMM32 – mappen og VMM32.VXD filen. Hvis en VxD finnes både i WINDOWS\SYSTEM\VMM32 – mappen og i VMM32.VXD filen så vil dublikaten bli ”merket” i VMM32.VXD-filen slik at den ikke blir lastet.

58.     VxD som ikke allerede er lastet av VMM32.VXD blir nå lastet fra [ 386 Enh ] delen av WINDOWS\SYSTEM.INNI-filen.

59.     En rekke helt nødvendige VxD’er blir lastet automatisk. De trenger ikke å ha noen registerinngang. VMM32.VDX sjekker at alle disse VxD’er blir er lastet. Hvis ikke alle er lastet, førsøkes en ny lasting.

60.     Logging av Real-mode virutuelle lastinger. Driverinstalasjoner.

61.     VMM32.VXD svitsjer uprossesoren over fra Real-mode til protected mode.

62.     Når alle VxD er lastet, så lastes KRNL32.DLL, GDI.EXE, USER.EXE og EXPLORER som er standard GUI-shell for Windows.

63.     Hvis det er installert nettverkskomponenter, så lastes disse nå. Brukeren får melding om å logge seg på nettverket.

64.    Programmer i StartUp-gruppen og ”RunOnce”-registry key startes som det siste som gjøres i oppstarten av windows. Etter at hvert program i RunOnce Registry key er startet, så fjernes de fra nøkkelen.

 

C.  Win NT/2000 som operativsystem. (Tilbake)

 

Starten til Windows NT/2000 og DOS/Wiin/98/Me er helt like frem til at systemet skal lese boot record (BR) for den aktive partisjonen. Istendfor å lese IO.SYS og MSDOS.SYS , laster Windows NT/2000 operativsystemloaderen NTLDR. Denne filen gjør det mulig å velge hvilket operativsystem som skal startes viss det er flere operativsystem installert.

 

  1. Laster BR (Boot Record) som inneholder et program som er nødvendig for å starte operativsystemet. En ny BR tilpasset NT blir nå laget og skriver over den gamle BR uavhengig av hvilket operativsystem maskinen startet opp på. Den gamle BR blir lagret i en fil som heter BOOTSECT.DOS.

 

  1. Programmet i den nye BR vil nå laste NTLDR som er den egentlige bootfilen for NT. (NTLDR MÅ være lokalisert i C:)

 

  1. I NTLDR inngår følgene punkter:

 

·          CPU settes til å arbeide i 32-bitsmodus.

 

·         Laster ett minima av de andre filsystem som finnes på systemet,  (FAT, HPFS, NTFS,   LINUX) som nå blir en del av NTLDR og gjør at NTLDR kan få tilgang til filer på boot drive.

 

  1. Starter Boot.ini. Filen inneholder pekere til hvor de forskjellige operativsystem befinner seg.

 

  1. Velg operativsystem. (I dette tilfelle velger vi NT)

 

  1. Kjører NTDETECT.COM, som skal ligge i C:. Progammet samler inn informasjon om hardware som er installert på maskinen. Programmet bygger så en liste for hvilke hardware som er installert, og sender listen til NTLDR.

 

  1. Laster NTOSKRNL.EXE (NT-kjernen), som skal ligge i C:. Skjermen blir nå blå og alle drivere blir nå initiert. NTOSKRNL.EXE tar kontrollen.

 

  1. Laster HAL.DLL (Hardware Abstaction layer ).

 

  1. Laster SMSS.EXE (Session Manager.) SMSS.EXE starter alle program som ligger i ”Session Manager”-seksjonen av registeret. Foreksempel AUTOCHK.EXE som sjekker partisjonene. (CHKDSK)

 

  1. Start WINDOWS

 

  1. Windows NT er nå startet og CTRL+Alt+Del - boksen står nå på skjermen.

 

  1. NT er klar til bruk.